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.
A voir également:
- Affichage des resultats d'une requete
- Resultats foot - Télécharger - Vie quotidienne
- Affichage double ecran - Guide
- Lexer resultats - Télécharger - Sport
- Windows 11 affichage classique - Guide
- Problème affichage fenêtre windows 10 - Guide
6 réponses
Salut, essaye de faire un
Çà peut venir du faire que ta restriction (sur ta seconde requête) soit
et non sous cette forme là, si ton élément $tmp est un élément de type chaîne
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'
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.
- 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
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.
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.