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 -
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.
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
-
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) soitWHERE Code_Categ = $tmp
et non sous cette forme là, si ton élément $tmp est un élément de type chaîneWHERE Code_Categ = '$tmp'
-
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'
-
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. -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
"ç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. -
Désolée de ne repondre que maintenant. Je vais faire ça se matin même.