[php-mysql] mysql_fetch_array vide
Résolu
rwen
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
rwen Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
rwen Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous et à toutes,j'espère que vous pourrez m'aider.
Je suis en train de faire un livre d'or pour le site que je crée et j'ai un problème au niveau de l'affichage.
J'ai une BDD MySQL avec une table livredor. Dans cette table , j'ai 4 champs:id , pseudo, message et validation (NULL par défaut, 1 lorsque le message a été validé par l'administrateur du site, 0si il a été refusé).
Mon problème est le suivant: j'arrive à enregistrer des messages, à les valider dans la partie administrateur mais quand je fais le code suivant, ça plante:
<?php
$requete='SELECT COUNT(id) FROM livredor WHERE validation=1';
$result=mysql_query($requete, $connect) or die(mysql_error());
$line=mysql_fetch_row($result);
$nombre=$line[0];
//calcul du nombre de pages de livre d'or en mettant 15 messages par page
$nbpages=ceil($nombre/15);
//liens vers les autres pages de livre d'or
echo "<p>page: ";
for($i=1;$i<=$nbpages;$i++)
echo " <a href=\"index.php?idI=143&page=".$i."\">".$i."</a>";
echo "</p>";
//on récupère le numéro de page s'il existe, sinon on affiche la première page.
$numpage=@$_GET['page']?$_GET['page']:1;
//calcul du numéro du premier message en fonction du numéro de page
$min=0+($numpage-1)*15;
$requete='SELECT * FROM `livredor` WHERE `validation`=1 ORDER BY id DESC LIMIT '.$min.',15';
$result=mysql_query($requete, $connect) or die(mysql_error());
while($line=mysql_fetch_array($result)!=null)
echo "<p class=\"livre\"> <strong> ".$line['pseudo']." </strong><br/> ".$line['message']." </p>";
?>
Lors de l'affichage, la page ne renvoie pas d'erreur et si je fais un echo $nbpages." ".$nombre, ça m'affiche bien le bon nombre de page et de messages validés. Le while fonctionne correctement puisque le bon nombre de paragraphes(avec une bordure pour les voir) sont bien affichés mais il n'y a strictement rien dedans:
code HTML généré:
<p>page: <a href="index.php?idI=143&page=1">1</a></p>
<p class="livre"> <strong> </strong><br/> </p><p class="livre"> <strong> </strong><br/> </p>
Merci d'avance de votre aide
Je suis en train de faire un livre d'or pour le site que je crée et j'ai un problème au niveau de l'affichage.
J'ai une BDD MySQL avec une table livredor. Dans cette table , j'ai 4 champs:id , pseudo, message et validation (NULL par défaut, 1 lorsque le message a été validé par l'administrateur du site, 0si il a été refusé).
Mon problème est le suivant: j'arrive à enregistrer des messages, à les valider dans la partie administrateur mais quand je fais le code suivant, ça plante:
<?php
$requete='SELECT COUNT(id) FROM livredor WHERE validation=1';
$result=mysql_query($requete, $connect) or die(mysql_error());
$line=mysql_fetch_row($result);
$nombre=$line[0];
//calcul du nombre de pages de livre d'or en mettant 15 messages par page
$nbpages=ceil($nombre/15);
//liens vers les autres pages de livre d'or
echo "<p>page: ";
for($i=1;$i<=$nbpages;$i++)
echo " <a href=\"index.php?idI=143&page=".$i."\">".$i."</a>";
echo "</p>";
//on récupère le numéro de page s'il existe, sinon on affiche la première page.
$numpage=@$_GET['page']?$_GET['page']:1;
//calcul du numéro du premier message en fonction du numéro de page
$min=0+($numpage-1)*15;
$requete='SELECT * FROM `livredor` WHERE `validation`=1 ORDER BY id DESC LIMIT '.$min.',15';
$result=mysql_query($requete, $connect) or die(mysql_error());
while($line=mysql_fetch_array($result)!=null)
echo "<p class=\"livre\"> <strong> ".$line['pseudo']." </strong><br/> ".$line['message']." </p>";
?>
Lors de l'affichage, la page ne renvoie pas d'erreur et si je fais un echo $nbpages." ".$nombre, ça m'affiche bien le bon nombre de page et de messages validés. Le while fonctionne correctement puisque le bon nombre de paragraphes(avec une bordure pour les voir) sont bien affichés mais il n'y a strictement rien dedans:
code HTML généré:
<p>page: <a href="index.php?idI=143&page=1">1</a></p>
<p class="livre"> <strong> </strong><br/> </p><p class="livre"> <strong> </strong><br/> </p>
Merci d'avance de votre aide
A voir également:
- [php-mysql] mysql_fetch_array vide
- Supprimer page word vide - Guide
- Caractere vide - Guide
- Formate pour taxer client frigo vide - Forum Vos droits sur internet
- Easy php - Télécharger - Divers Web & Internet
- Formaté mais pas de connexion Internet ? ✓ - Forum Matériel & Système
1 réponse
salut,
je pense que ton problème vient de la manière dont tu extrais les infos de ta réponse :
essaye simplement avec :
Tu n'as pas besoin du '!= null' à la fin, il est là de manière implicite.
et pour ma part, j'écrirais la requete comme suit :
je pense que ton problème vient de la manière dont tu extrais les infos de ta réponse :
while($line=mysql_fetch_array($result)!=null)
essaye simplement avec :
while($line=mysql_fetch_array($result))
Tu n'as pas besoin du '!= null' à la fin, il est là de manière implicite.
et pour ma part, j'écrirais la requete comme suit :
$requete="SELECT * FROM livredor WHERE validation='1' ORDER BY id DESC LIMIT $min,15";
Du coup je pense c'était plus au niveau de la requête que du !=null dans le while vu que, de toute façon, il est sous-entendu.
En tout cas, merci infiniment pour ton aide bbar!