Affichage des resultats d'une requete

Fermé
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014 - 18 juil. 2014 à 10:31
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014 - 21 juil. 2014 à 10:06
Bonjour,

je suis en train de programmer en php et je ne comprends pas pourquoi l'une de mes requetes ne fonctionne pas

<?php
$reponse = $bdd->query('SELECT Matricule, Nom, Prenom, Affectation, Categorie, Sorti FROM matricules ORDER BY Nom ASC');
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td> <?php echo $donnees['Matricule'];?> </td>
<td> <?php echo $donnees['Nom']; ?> </td>
<td> <?php echo $donnees['Prenom'];?> </td>
<td> <?php echo $donnees['Affectation'];?> </td>
<?php
$tmp = $donnees['Categorie'];
var_dump($tmp); echo "<hr>";
$reponse2 = $bdd->query('SELECT Categorie FROM categorie WHERE Code_Categ = $tmp');/*Je ne comprends pas pourquoi est ce que ça ne fonctionne pas*/
?>
<td> <?php echo $reponse2;?> </td>

la deuxieme requete ne me renvoit rien la case reste vide.

Si quelqu'un peut m'aider ce serait vraiment bien.

6 réponses

alexdu17200 Messages postés 1282 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 7 mars 2016 834
18 juil. 2014 à 10:47
Salut, essaye de faire un
var_dump($reponse2);
pour voir si çà te renvoie qqch déjà.

Çà peut venir du faire que ta restriction (sur ta seconde requête) soit
WHERE Code_Categ = $tmp

et non sous cette forme là, si ton élément $tmp est un élément de type chaîne
WHERE Code_Categ = '$tmp'
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
18 juil. 2014 à 11:03
j'ai fait un var_dump($reponse2); et ça me renvoie un booléen tout le temps false; et $tmp c'est un int c'est pour ça que j'ai pas fait de '$tmp'
0
alexdu17200 Messages postés 1282 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 7 mars 2016 834
18 juil. 2014 à 11:49
Ok, as-tu essayé d'afficher ton $tmp avec un
var_dump($tmp);
pour vérifier que c'est bien un INT, et de tester directement ta requête n°2 avec la valeur de ton tmp si çà te renvoie bien un résultat? ou une erreur.

Tu utilises une Debian pour çà? Phpmyadmin, Wamp?
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
18 juil. 2014 à 11:54
j'ai essayé tout ça;
- c'est bien un INT.
- ça me renvoie toujours un booléen meme quand je met une valeur.
- j'ai même essayé la requête dans phpmyadmin elle fonctionne bien.
- j'utilises Wamp.
0
alexdu17200 Messages postés 1282 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 7 mars 2016 834
18 juil. 2014 à 14:28
Ok, tu peux essayer çà pour voir?
$row = mysql_fetch_array($reponse2);
var_dump($row);
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
18 juil. 2014 à 15:24
Ca ne fonctionne pas non plus.
Je pense que je ne peux pas utiliser cette syntaxe parce que j'ai utilisé une connexion PDO pour me connecter à ma base
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dan-b Messages postés 80 Date d'inscription samedi 15 septembre 2012 Statut Membre Dernière intervention 20 octobre 2014 7
18 juil. 2014 à 20:26
"ça me renvoie un booléen tout le temps false." $response2 ne correspond pas à la valeur de la catégorie mais au résultat de la méthode query. Ici query renvoie false parce que la méthode échoue

La méthode query échoue parce que la requête sql est mal écrite : la variable php ne doit pas être dans la chaîne sql

Autant utiliser la méthode prepare de PDO. Avec bindvalue, c'est encore mieux. Il y a un exemple ici https://www.php.net/manual/fr/pdostatement.bindvalue.php

Au passage, autant vérifier que $tmp est supérieur à 0 (je suppose qu'aucune catégorie à un identifiant nul) avant de lancer une requête.
0
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014
21 juil. 2014 à 10:06
Désolée de ne repondre que maintenant. Je vais faire ça se matin même.
0