Afficher le résultat d'une requête (php) [Résolu/Fermé]

Signaler
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
 3333333333333333333333333333333333333333333332222222222222222222 -
bonjour, j'aimerai savoir comment on fait pour afficher la liste des enregistrements répondant à une requête.
merci

5 réponses

lorsque tu as fait:

$resultat=mysql_query($query);

tu mets une boucle
while ($row=mysql_fetch_array($resultat)){

et tu affiches soit par un echo $row[nom_du_champ]

soit dans une liste déroulante par
<select name="liste">
?>
<option value="<?php echo $row[nom_du_champ]; ?>"><?php echo $row[nom_du_champ]; ?></option>

<?php
}
</select>
7
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60162 internautes nous ont dit merci ce mois-ci


attention monsieur la commande ECHO nécessite des guillemets pour quelles soit exécuter ,
acceptez mon passage :)
@mohamedsamurai : Non pas dans le cas présent, ici l'on cherche à afficher une variable et non une "chaine de caractères"
Exemple avec "" : echo "toto";
Exemple sans "" : $toto = "toto";
echo $toto;

loled irl
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11
c'est ce que j'ai vu après avoir poster.
merci beaucoup.
c'est bien compliqué !
Cela parait compliqué à cause de l'absence d'indentation. Il n'y a rien de réellement plus compliqué là-dedans que ce qui a été suggéré avant ... ah si ... l'usage de array() et foreach ;)
Quand on y a pris goût à cette forme, ça devient une habitude.
Je veux dire pourquoi passer par un array $resultat alors que $row est déja un array on peut le parcourir par une boucle while et $row['nom_du_champ'].

Mais bon chacun sa méthode.

Bon forum
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11
je ne suis pas sure d'avoir tout compris
donc je te donne ma partie php et g laissé les commentaires où je dois rajouter des scripts.

$reponse=0;
if (!empty ($_POST['valider']))
{
$reponse=mysql_query( "SELECT * FROM restaurant where nom = $_POST[nom]");
}
if (empty($reponse))
{
echo" Ce restaurant n'existe pas";

}
elseif($reponse >1)
{
//affichage de la liste de réponses
}
else
{
// affichage du formulaire demandé
}
?>


merci de m'aider.
bien que je sais ce ke je veux écrire mais je me demande comment le formuler.
Messages postés
1259
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
19 février 2016
384
Corriger moi si je me trompe.
mysql_query retourne tous les enregistrements correspondants à ta requête
mysql_fetch_array te permet ensuite de lire chaque ligne, une après l'autre, que ta requête à générée
si par exemple ta requête te retourne 2 enregistrements, tu vas passer 2 fois dans ta boucle, et afficher les infos que tu as choisie d'afficher.


$reponse=0; 
if (!empty ($_POST['valider'])) 
{ 
$reponse=mysql_query( "SELECT * FROM restaurant where nom = $_POST[nom]"); 
} 
if (empty($reponse)) 
{ 
echo" Ce restaurant n'existe pas"; 

} 
elseif($reponse >1) 
{ 
while ($row=mysql_fetch_array($reponse)){ 

echo $row[nom_du_champ1];  //champ de ta table restaurant (ex: nom, adresse, etc...)
echo $row[nom_du_champ2];  //il faut surement mettre le nom des champ entre " "
echo $row[nom_du_champ3]; 
} 
else 
{ 
// affichage du formulaire demandé 
} 


J'espère t'avoir aidé!
Messages postés
186
Date d'inscription
jeudi 21 juin 2007
Statut
Membre
Dernière intervention
26 mai 2008
11 >
Messages postés
1259
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
19 février 2016

oui, merci.
Si je veux que mes résultats soient dans une liste déroulante, comment faire s'il vous plait? d'après mon script?
>
Messages postés
1259
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
19 février 2016

Je t'avais mis la réponse juste au dessus:

après $resultat=mysql_fetch_array(.....);

?>
<select name="liste">
<?php
while ($row=mysql_fetch_array($resultat)){

?>
<option value="<?php echo $row[nom_du_champ]; ?>"><?php echo $row[nom_du_champ]; ?></option>

<?php
}
</select>
Suggestion :
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
<?php
if (!empty ($_POST['valider']))
{
$reponse=mysql_query( 'SELECT * FROM restaurant where nom =\''.addslashes($_POST[nom]).'\'') or die('Erreur');
$resultats = array();
while($row = ùysql_fetch_array($reponse)){
$resultats[] = $row;
}
}
if(count($resultats)>0){
?><select name="restaurant" size="<?php echo min(count($resultats),10); ?>"><?php
foreach($resultats as $restaurant){
?><option value="<?php echo $restaurant['champA']; ?>"><?php echo $restaurant['champB']; ?></option><?php
}
?></select><?php
}else{
if(count($_POST)>0){
echo 'Aucun restaurant';'
}
//affichage du formulaire
}
?>

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^