Affichage des resultats d'une requete

F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

6 réponses

alexdu17200 Messages postés 1302 Date d'inscription   Statut Membre Dernière intervention   836
 
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   Statut Membre Dernière intervention  
 
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 1302 Date d'inscription   Statut Membre Dernière intervention   836
 
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   Statut Membre Dernière intervention  
 
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 1302 Date d'inscription   Statut Membre Dernière intervention   836
 
Ok, tu peux essayer çà pour voir?
$row = mysql_fetch_array($reponse2);
var_dump($row);
0
F2C Messages postés 51 Date d'inscription   Statut Membre Dernière intervention  
 
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 79 Date d'inscription   Statut Membre Dernière intervention   7
 
"ç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   Statut Membre Dernière intervention  
 
Désolée de ne repondre que maintenant. Je vais faire ça se matin même.
0