Résultat d'une requete n'apparait pas

[Résolu/Fermé]
Signaler
Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
-
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
-
Bonjour,

Pleasseeee, help me :-D

Je vous pose mon problème. Je souhaite faire afficher les résultats d'une rêquete à l'aide d'une boucle while que voici :

<?php

while ($row_campus = mysql_fetch_assoc ($campus))
{
$infos_unif = $row_campus ['unif'];
echo '<tr>';
echo '<td><a href="universite.php?unif='.$row_campus ['unif'].'"> '.$row_campus ['unif'].'</a></td>';
echo '</tr>';

}

?>

Seulement, voilà, le premier des résultats n'apparait pas. Quelqu'un sait m'aider ?

Merci d'avance


8 réponses

Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
608
Peut tu nous montrer le code a partir de la récupération des données de $campus?
1
Merci

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

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
Salut,

Tu as un d'abords problème de guillemet..

Remplace ton code par celui-ci :

<?php

while ($row_campus = mysql_fetch_assoc ($campus))
{
   $infos_unif = $row_campus ['unif'];
   echo '<tr>';
   echo '<td><a href="universite.php?unif=' . $infos_unif . '">' . $infos_unif . '</a></td>';
   echo '</tr>';
}

?> 


Et redis-nous si ca va pas...
1
Merci

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

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
3
Alors, je viens d'essayer, et malheureusement, le résultat est le même :(
Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
3
Merci pour ta réponse rapide :-)

Je suis débutant alors, parfois je ne comprends pas tjs tout... :$

C'est çà que tu demandes ? :

mysql_select_db ($database_connexion, $connexion);
$query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif ;
$campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
$row_campus = mysql_fetch_assoc ($campus);
1
Merci

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

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
3
Ce que je comprends vraiment pas, c'est que quand je fais

$row_campus_num = mysql_num_rows ($campus);
echo $row_campus_num;


Il m'inscrit qu'il y a 4 résultats mais n'en affiche que 3 :s
1
Merci

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

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
608
C'est bien ce que je pensais:

Si ton code ressemble a ça:

mysql_select_db ($database_connexion, $connexion);
$query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif ;
$campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
$row_campus = mysql_fetch_assoc ($campus);
while ($row_campus = mysql_fetch_assoc ($campus))
{
$infos_unif = $row_campus ['unif'];
echo '<tr>';
echo '<td><a href="universite.php?unif='.$row_campus ['unif'].'"> '.$row_campus ['unif'].'</a></td>';
echo '</tr>';

}

?>

tu as une ligne responsable de l'erreur et c'est celle juste avant le while: supprime la.

Ton code devrait ressembler à ça:


<?php
mysql_select_db ($database_connexion, $connexion);
$query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif";
$campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
while ($row_campus = mysql_fetch_assoc ($campus))
{
   $infos_unif = $row_campus ['unif'];
   echo '<tr>';
   echo '<td><a href="universite.php?unif=' . $infos_unif . '">' . $infos_unif . '</a></td>';
   echo '</tr>';
}
?> 
1
Merci

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

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
Pour t'aider a debugger seul a l'avenir je vais te donner quelques pistes.

Deja, remplace ta requete par :

$query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif";


Il manquait un " a la fin, tu as tu l'enlever ici sinon PHP te jèterai une erreur..

Ensuite, fait un :
echo $query_campus;
die();


juste en dessous. Ca t'affichera la requete et s'arretera sur cette ligne. Copie-colle la requete et execute la sur phpMyAdmin si tu l'utilises..

Si tu vois des resultats, enleve le l'echo et le die(); et continue..

Ensuite juste apres :

$campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ; 


Rajoute

echo "J'ai trouve : " . mysql_num_rows($campus) . "resultats";
die();


Execute et regarde combien il te dit.. Si tu trouves le meme nombre que dans phpMyAdmin c'est bon signe continue ..


Ensuite enleve l'echo et le die() que tu viens de rajouter et

Rajoute apres :

$row_campus = mysql_fetch_assoc ($campus);


Ceci :

var_dump($row_campus);
die();


Ce qui t'affichera ce qu'il y a dans $row_campus..

Et tiens nous au courant ;)
Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
3
Merci pour les conseils ! :)

Alors, je viens de faire tout ça.

Lorsque que je copie colle la requête dans PHPMyAdmin, mes 4 résultats apparaissent et PHPMyAdmin encadre bien la colonne où pays est égal à Royaume-Uni (dans ce cas-ci)

Par contre, avec le var_dump ($row_campus), bah il m'affiche les données qu'il y a dans la ligne qui ne s'affiche pas :-)
Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
3
En fait,

mysql_select_db ($database_connexion, $connexion);
$query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif ;
$campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ;
$row_campus = mysql_fetch_assoc ($campus);

est définit tout au dessus de ma page pcq j'ai besoin d'utiliser des echo $row_campus [''] sur toute ma page. Donc en fait, dans un tableau, j'ai écris ma boucle while comme mentionné ci dessus....
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
Ok alors dans ce cas tu peux faire tout simplement :

<?php 
mysql_select_db ($database_connexion, $connexion); 
$query_campus = "SELECT * FROM campus WHERE pays ='".$_GET['pays']."' ORDER BY unif"; 
$campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ; 
$row_campus = mysql_fetch_assoc ($campus);

// blabla ton code 


while ($row_campus) 
{ 
   $infos_unif = $row_campus ['unif']; 
   echo '<tr>'; 
   echo '<td><a href="universite.php?unif=' . $infos_unif . '">' . $infos_unif . '</a></td>'; 
   echo '</tr>'; 
   $row_campus = mysql_fetch_assoc ($campus); 
} 
?>  

Messages postés
3255
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
608
tu perdait une ligne parce dans ton code:

$campus = mysql_query ($query_campus, $connexion) or die (mysql_error()) ; 
$row_campus = mysql_fetch_assoc ($campus); //recupere la premiere ligne 
while ($row_campus = mysql_fetch_assoc ($campus))  //recupere la seconde ligne 
{ 
//affiche la seconde ligne 
}
Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
3
Oooookkkk :-)

Donc si je comprends bien, dans la boucle, on met le $row_campus mysql_fetch_assoc à la fin pour qu'il récupère les lignes qui suivent, c'est bien ça? C'est possible que ca permette aussi à la boucle de s'arreter ?
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
A chaque fois que tu utilises mysql_fetch_assoc() cela consomme la ligne que tu lis..
Le code que je t'ai donne te fait sortir du while une fois fini puisque dans $row_campus il n'y aura plus rien, donc la condition n'est plus remplie
Messages postés
48
Date d'inscription
samedi 11 octobre 2008
Statut
Membre
Dernière intervention
27 août 2015
3
ok ok ok :-)

Merci pour les explications et pour l'aide en tout cas !

Passez une bonne journée :)
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
146
A toi aussi :)