je suis en train de développer un petit script php de gestion de stock pour mon boulot et je suis bloqué sur quelque chose de bien bête.
J'utilise les templates phpLib
J'ai une requête SQL comme ceci:
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
AND S.id_societe = ".$societe."
GROUP BY S.id_modele, S.id_etat ;
La variable $societé est définie dans le code au cas où elle ne serait pas définie en GET
Cette requête passe très bien dans phpmyadmin directement, il me retourne un tableau de 2 lignes sur trois colonnes contenant ce que je souhaite des tables en question.
Mais quand je tente de le faire avec le PHP comme ceci:
$statement = requete_sql($sql);
$template->assign_block_vars("liste_stock",array());
while ($resultat=mysql_fetch_array($statement))
{
$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"]
));
}
J'ai des erreurs:
Notice: Undefined index: M.nom_modele in /home/epy/Web/stocks/afficher.php on line 41
Notice: Undefined index: E.nom_etat in /home/epy/Web/stocks/afficher.php on line 43
Notice: Undefined index: M.nom_modele in /home/epy/Web/stocks/afficher.php on line 41
Notice: Undefined index: E.nom_etat in /home/epy/Web/stocks/afficher.php on line 43
Cette façon d'assigner les variables fonctionne avec la requête SELECT sans jointures, est-ce que PhpLib bloque à cause des jointures ? Est-ce que j'ai écrit une bêtise dans mon code ?
Merci !
# mysql_fetch_assoc
Posté par mathgl . Évalué à 2.
[http://www.php.net/manual/en/function.mysql-fetch-assoc.php]
Sinon utilise print_r() pour afficher le contenu de la variable $row et vérifier quel est le problème.
[http://fr2.php.net/manual/en/function.print-r.php]
[^] # Re: mysql_fetch_assoc
Posté par Epy . Évalué à 1.
(Je débute totalement avec php, donc j'ai réutilisé du code que j'avais déjà vu fonctionner)
[^] # Re: mysql_fetch_assoc
Posté par Epy . Évalué à 1.
Il continue de me dire index non défini, je ne comprend pas
[^] # Re: mysql_fetch_assoc
Posté par mathgl . Évalué à 2.
Tu peux copier/coller le résultat d'un print_r($resultat); mis avant l'assignation de la variable $quantite.
Sinon une autre piste pour résoudre le problème, tu peux essayer d'utiliser AS dans ton SELECT...
Par exemple:
SELECT M.nom_modele AS nom_modele, [...]
[^] # Re: mysql_fetch_assoc
Posté par Epy . Évalué à 2.
Array ( [nom_modele] => 930 G [COUNT(S.id_modele)] => 1 [nom_etat] => R�serv� )
[^] # Re: mysql_fetch_assoc
Posté par axel_xDev . Évalué à 2.
* nom_modele
* COUNT(S.id_modele)
* nom_etat
En fait, dans les résultats des requêtes de base de données, il n'y a pas les alias des tables que tu aurais pu définir. C'est pourquoi tu ne peux accéder à M.nom_modele, mais à non_modele.
La solution proposée par mathgl est aussi valide, mais tu dois utiliser le nom de l'alias pour accéder à la donnée. Par exemple, si tu mets:
SELECT M.nom_modele as modele, COUNT(S.id_modele) as count, E.nom_etat as etat
tu pourras accéder aux données via les clés modele, count et etat.
[^] # Re: mysql_fetch_assoc
Posté par Epy . Évalué à 2.
Bon, en revanche, je n'ai plus l'erreur, mais je n'ai toujours pas de résultat affiché :(
J'ai fait afficher les valeurs avec l'aide des clés modele, count et etat, elles sont bonnes, mais le tableau reste vide malgré la boucle et l'assignation des valeurs à un array du template
[le code est le même en remplaçant mes clés par celles définies par les AS]
étrange ..
[^] # Re: mysql_fetch_assoc
Posté par Epy . Évalué à 2.
[^] # Re: mysql_fetch_assoc
Posté par Raphaël G. (site web personnel) . Évalué à 1.
# Pourquoi refaire la roue
Posté par GG (site web personnel) . Évalué à 2.
il existe plusieurs logiciels pour gérer des stock, je t'en propose 2:
- Dolibarr
- Thélia
Bonne journée
Grégoire
Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html
[^] # Re: Pourquoi refaire la roue
Posté par Epy . Évalué à 2.
Ils ne me conviennent pas car trop lourds et trop chargés (niveau interface) par rapport à mon besoin (c'est un peu le 30 Tonnes pour transporter un matelas gonflable) et je ne pense pas vu leurs interfaces qu'ils soient accessibles proprement depuis un blackberry (y'a ptet des css alternatives cela dit, mais ça reste trop lourd)
Je gère des stocks dans un coffre de voiture, pas un hangar :)
Mais merci ;)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.