Bonsoir tout le monde
Pour fixer le décor, je suis un pur débutant en PHP et SQL, et j'ai besoin d'un script pour gérer un stock pour mon taf (doit être accessible depuis un navigateur mobile)
Je me suis donc lancé avec PhpLib/phpBB2 et j'apprend au fur et à mesure. Il se peut donc que j'écrive ou dise une bêtise et je suis là pour qu'on me corrige
J'effectue une requête avec jointure sur trois tables dans ma base (MySQL), voilà la requête:
Cette requête passe très bien dans phpMyAdmin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT M.nom_modele, COUNT(S.id_modele), E.nom_etat FROM stock S LEFT JOIN modeles M ON S.id_modele = M.id LEFT JOIN etat E ON S.id_etat = E.id WHERE S.id_societe = 1 GROUP BY S.id_modele, S.id_etat ;
J'essaie donc d'assigner ce que je récupère à mon tableau et l'afficher:
Le print_r() m'affiche bien ce à quoi je m'attend, des valeurs tirées de la base de données et jointes sur plusieurs tables:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $template->assign_block_vars('liste_stock',array()); while ($resultat = mysql_fetch_assoc($statement)) { print_r($resultat); //debug $quantite = $resultat['COUNT(S.id_modele)']; $template->assign_block_vars('liste_stock',array( 'MODELE'=>$resultat['M.nom_modele'], 'QUANTITE'=>$quantite, 'ETAT'=>$resultat['E.nom_etat'] )); }
en revanche je me retrouve quand même avec l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Array ( [nom_modele] => 930 G [COUNT(S.id_modele)] => 1 [nom_etat] => En panne )
(ces deux lignes pour chaque boucle effectuée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Notice: Undefined index: M.nom_modele in /home/epy/Web/stocks/afficher.php on line 32 Notice: Undefined index: E.nom_etat in /home/epy/Web/stocks/afficher.php on line 34
Bon c'est une notification mais ça m'arrange bien puisqu'effectivement mon tableau affiché sur la page web est vide alors qu'il ne devrait pas l'être.
(Tout cela fonctionnait avec la requête simple sur une seule table sans faire de jointure)
Cela fait un bon moment que je cherche et je ne trouve rien d'intéressant, auriez vous des pistes ?
Est-ce qu'il y a mieux/plus simple ?
J'ai pensé à créer une vue, mais ça fait faire deux opérations alors qu'une seule devrait suffire je crois.
Merci !
Partager