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:
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 ;
Cette requête passe très bien dans phpMyAdmin.
J'essaie donc d'assigner ce que je récupère à mon tableau et l'afficher:
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']
		));
	}
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
Array ( [nom_modele] => 930 G [COUNT(S.id_modele)] => 1 [nom_etat] => En panne )
en revanche je me retrouve quand même avec l'erreur:
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
(ces deux lignes pour chaque boucle effectuée)
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 !