Problème d'affichage sur une requète SQL php
val
-
val -
val -
Bonjour,
Je voudrais afficher ma base de données sous forme de tableau, cependant en effectuant cette requête, mon site ne m'affiche que la première ligne (ref_pdt=1) et s'arrête là.
Auriez-vous une idée sur la cause du problème?
<?php
If($_POST['post_type']=='*' AND $_POST['post_categorie']=='*')
{
$reponse = $bdd->query('SELECT * FROM produit');
}
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td><?php echo $donnees['ref_pdt'];?></td>
<td><?php echo $donnees['nom_pdt'];?></td>
<td><?php echo '<img height="50" width="50" src="'.$donnees['photo'].'"/>';?></td>
<td><?php echo $donnees['description'];?></td>
<td><?php echo $donnees['type_pdt'];?></td>
<td><?php echo $donnees['categorie_pdt'];?></td>
<td><?php echo $donnees['prix'];?></td>
</tr>
<?php
$reponse->closeCursor();
}
?>
Merci pour votre aide.
Je voudrais afficher ma base de données sous forme de tableau, cependant en effectuant cette requête, mon site ne m'affiche que la première ligne (ref_pdt=1) et s'arrête là.
Auriez-vous une idée sur la cause du problème?
<?php
If($_POST['post_type']=='*' AND $_POST['post_categorie']=='*')
{
$reponse = $bdd->query('SELECT * FROM produit');
}
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td><?php echo $donnees['ref_pdt'];?></td>
<td><?php echo $donnees['nom_pdt'];?></td>
<td><?php echo '<img height="50" width="50" src="'.$donnees['photo'].'"/>';?></td>
<td><?php echo $donnees['description'];?></td>
<td><?php echo $donnees['type_pdt'];?></td>
<td><?php echo $donnees['categorie_pdt'];?></td>
<td><?php echo $donnees['prix'];?></td>
</tr>
<?php
$reponse->closeCursor();
}
?>
Merci pour votre aide.
A voir également:
- Problème d'affichage sur une requète SQL php
- Affichage double ecran - Guide
- Easy php - Télécharger - Divers Web & Internet
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Requete sql pix - Forum PHP
3 réponses
Salut,
Je pense que le souci vient tout simplement de ton $reponse->closeCursor(); qui n'est pas placé au bon endroit. Il devrait être après la boucle !
Je pense que le souci vient tout simplement de ton $reponse->closeCursor(); qui n'est pas placé au bon endroit. Il devrait être après la boucle !
Merci beaucoup,
C'était juste ca :)
J'en profite pour poser une deuxième question alors :
J'essaie de filtrer les résultats affichés en utilisant des champs POST:
elseif($_POST['post_type']=='*')
{
$reponse = $bdd->prepare('SELECT * FROM produit WHERE 'categorie_pdt' = :categorie');
$req->execute(array('categorie'=>$_POST['post_categorie']));
}
elseif($_POST['post_categorie']=='*')
{
$reponse = $bdd->prepare('SELECT * FROM produit WHERE 'type_pdt'= :type');
$req->execute(array('type' =>$_POST['post_type']));
}
else
{
$reponse = $bdd->prepare('SELECT * FROM produit WHERE 'type_pdt' = :type AND 'categorie_pdt' = :categorie');
$req->execute(array('type' =>$_POST['post_type'],'categorie' =>$_POST['post_categorie']));
}
Lorsque je m'en sert, aucun résultats ne sort
Les champs POST proviennent d'une liste et son donc normalement conforme à ce que je dois avoir dans ma BDD
C'était juste ca :)
J'en profite pour poser une deuxième question alors :
J'essaie de filtrer les résultats affichés en utilisant des champs POST:
elseif($_POST['post_type']=='*')
{
$reponse = $bdd->prepare('SELECT * FROM produit WHERE 'categorie_pdt' = :categorie');
$req->execute(array('categorie'=>$_POST['post_categorie']));
}
elseif($_POST['post_categorie']=='*')
{
$reponse = $bdd->prepare('SELECT * FROM produit WHERE 'type_pdt'= :type');
$req->execute(array('type' =>$_POST['post_type']));
}
else
{
$reponse = $bdd->prepare('SELECT * FROM produit WHERE 'type_pdt' = :type AND 'categorie_pdt' = :categorie');
$req->execute(array('type' =>$_POST['post_type'],'categorie' =>$_POST['post_categorie']));
}
Lorsque je m'en sert, aucun résultats ne sort
Les champs POST proviennent d'une liste et son donc normalement conforme à ce que je dois avoir dans ma BDD
$reponse = $bdd->prepare('SELECT * FROM produit WHERE 'type_pdt' = :type AND 'categorie_pdt' = :categorie'); $reponse->execute(array(':type' =>$_POST['post_type'],':categorie' =>$_POST['post_categorie']));
essaye comme çà, j'ai ajouté ":" devant type et categorie dans le array de execute
--------------------------
autre chose, tu peux remplacer :
while ($donnees = $reponse->fetch()) { ... }
par
$donnees = $reponse->fetchAll();
$donnees est un tableau des enregistrements que tu peux parcourir avec un foreach