Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2500 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU]probleme de recuperation des lignes d'une requete mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]probleme de recuperation des lignes d'une requete mysql

n°1316072
flow38
Posté le 01-03-2006 à 13:03:59  profilanswer
 

Bonjour, alors voila je fait une requete sur une base de donnée Mysql pour recuperer toutes les lignes ou tuples d'une table news, le probleme c'est que le code suivant que je retrouve pourtant un peu partout ne me retourne sur 3 news existantes que les 2 derniere.....
J'imagine que ça doit etre une erreur assez basique mais j'ai beau comparer mon code avec tout ce que je peut lire pas moyen de deceler l'erreur..
le code suivant est place dans la balise BODY de ma page:
 
/////////////
<?php require_once('Connections/muteV2.php'); ?>
<?php
mysql_select_db($database_muteV2, $muteV2);
$query_getNews = "SELECT * FROM news";
$getNews = mysql_query($query_getNews) or die(mysql_error());
$Tablo_getNews = mysql_fetch_array($getNews);
$NombDeNews = mysql_num_rows($getNews);
echo $NombDeNews ?>
<table width="700" border="1">
  <tr>
    <td>NumeroPage</td>
    <td>Date</td>
    <td>Titre</td>
    <td>Texte</td>
    <td>Photo</td>
    <td>LienOption</td>
    <td>TextLien</td>
  </tr>
  <?php  
  $ligne;
  while($ligne <= mysql_fetch_array($getNews))
  {
  $num = $ligne["num"];
  $titre = $ligne["titre"];
  $date = $ligne["date"];
  $texte = substr($ligne["texte"],0,20);
   $image = $ligne["img"];
$lienOpt = $ligne["lienOption"];
  echo"
  <tr>
    <td>$num</td>
    <td>$date</td>
    <td>$titre</td>
    <td>$texte</td>
    <td>$image</td>
    <td>$lienOpt</td>
    <td>&nbsp;</td>
  </tr>";
  }
?>
</table>
 
//////////////////
 
le nombre de news affiché est bon, cad 3 mais seul le n°2 et 3 sont affichées...
Merci de votre aide et bonne journée ;)


Message édité par flow38 le 01-03-2006 à 13:48:31
mood
Publicité
Posté le 01-03-2006 à 13:03:59  profilanswer
 

n°1316077
newneo2001
Posté le 01-03-2006 à 13:08:02  profilanswer
 

déjà il sert à koi ce $ligne; avant ta boucle while ?
supprimes le il sert à rien
 
2e, elle sert à quoi la ligne : $Tablo_getNews = mysql_fetch_array($getNews);
 
puisque tu refais une boucles fetch_array plus bas ?
 
j'edite pcq j'avais mal vu
 
while($ligne <= mysql_fetch_array($getNews))  
 
t'es sur que c'est <= et pas =
 
enfin qu'est ce que tu cherches à faire. Si c'est pour afficher 20 lignes par exemple que tu comptes dans ta boucle utilise LIMIT 20 dans ta requete SQL plutot


Message édité par newneo2001 le 01-03-2006 à 13:10:32

---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1316097
flow38
Posté le 01-03-2006 à 13:26:56  profilanswer
 

salut, ouai alors ok pour $Tablo_getNews = mysql_fetch_array($getNews);
ça sert  si je l'utilise pas en bas....pour le <= / = c juste qu'avec le seul "=" je n'obtenais que la derniere news...
 
mais en faite ce qui me perturbe c que d'aprés ce que j'ai compris, mysql_fetch_array()  returne plusieur tablo, 1 pour chaque ligne de resultat recupere dans la BD.
Et ce que j'arrive pas a trouver de façon explicite, c'est comment on passe d'un tableau à un autre!!! :)
parceque là dans mon code je vois vraiment pas par quel miracle la variable $Tablo_getNews ($Tablo_getNews = mysql_fetch_array($getNews); ) qui contient donc normalement 3 tableau se mettrai a désigner successivement le premier puis le second et  enfin le 3eme.....
 
j'ai qud meme fait les correction a partir de tes commentaires mais j'obtien une boucle infini:
mon tableau ne cesse d'ajouter des lignes, toujours la meme , celle de la premiere news (c deja ça lol).....
 
///////////:
<?php require_once('Connections/muteV2.php'); ?>
<?php
mysql_select_db($database_muteV2, $muteV2);
$query_getNews = "SELECT * FROM news";
$getNews = mysql_query($query_getNews) or die(mysql_error());
$Tablo_getNews = mysql_fetch_array($getNews);
$NombDeNews = mysql_num_rows($getNews);
echo $NombDeNews ?>
<table width="700" border="1">
  <tr>
    <td>NumeroPage</td>
    <td>Date</td>
    <td>Titre</td>
    <td>Texte</td>
    <td>Photo</td>
    <td>LienOption</td>
    <td>TextLien</td>
  </tr>
  <?php  
   
  while($Tablo_getNews)
  {
  $num = $Tablo_getNews["num"];
  $titre = $Tablo_getNews["titre"];
  $date = $Tablo_getNews["date"];
  $texte = substr($Tablo_getNews["texte"],0,20);
    $image = $Tablo_getNews["img"];
   $lienOpt = $Tablo_getNews["lienOption"];
  echo"
  <tr>
    <td>$num</td>
    <td>$date</td>
    <td>$titre</td>
    <td>$texte</td>
    <td>$image</td>
    <td>$lienOpt</td>
    <td>&nbsp;</td>
  </tr>";
   
  }?>
</table>
</body>
 
</html>
<?php
mysql_free_result($getNews);
?>


Message édité par flow38 le 01-03-2006 à 13:27:30
n°1316105
flow38
Posté le 01-03-2006 à 13:33:13  profilanswer
 

"mysql_fetch_array() retourne un tableau qui contient la ligne demandée dans le résultat result  et déplace le pointeur de données interne d'un cran."
je commence a y voir plus clair mais c pas encore ça :)

n°1316114
flow38
Posté le 01-03-2006 à 13:38:47  profilanswer
 

Voila j'ai trouvé!!!
en faite à chaque exe de la fonction mysql_fetch_array() , le pointeur qui designe un des tablo avance d'un cran donc qud je faisait d'abord:
$Tablo_getNews = mysql_fetch_array($getNews);  
//$Tablo_getNews contient le tablo de la news 1
//et ensuite et c là que ça allai pas je faisai:
while($ligne = mysql_fetch_array($getNews))  
//et la $ligne contient le tablo de la news 2!!
C'est pour ça que je ne pouvais afficher que la 2 et 3 :)
 
voici le code qui marche :)
 
<body>
<?php require_once('Connections/muteV2.php'); ?>
<?php
mysql_select_db($database_muteV2, $muteV2);
$query_getNews = "SELECT * FROM news";
$getNews = mysql_query($query_getNews) or die(mysql_error());
 
$NombDeNews = mysql_num_rows($getNews);
echo $NombDeNews ?>
<table width="700" border="1">
  <tr>
    <td>NumeroPage</td>
    <td>Date</td>
    <td>Titre</td>
    <td>Texte</td>
    <td>Photo</td>
    <td>LienOption</td>
    <td>TextLien</td>
  </tr>
  <?php  
  $ligne=mysql_fetch_array($getNews);
//!!$ligne contient le premier tableau!!
  while($ligne)
  {
  $num = $ligne["num"];
  $titre = $ligne["titre"];
  $date = $ligne["date"];
  $texte = substr($ligne["texte"],0,20);
    $image = $ligne["img"];
   $lienOpt = $ligne["lienOption"];
//ici je vais "incrementer", $ligne designe le tablo suivant, qd il n'y aura plus de tablo $ligne vaudra false et on sortira de la boucle //while:):):):)
   $ligne=mysql_fetch_array($getNews);
//  
  echo"
  <tr>
    <td>$num</td>
    <td>$date</td>
    <td>$titre</td>
    <td>$texte</td>
    <td>$image</td>
    <td>$lienOpt</td>
    <td>&nbsp;</td>
  </tr>";
   
  }?>
</table>
</body>


Message édité par flow38 le 01-03-2006 à 13:40:58
n°1316468
newneo2001
Posté le 01-03-2006 à 19:37:29  profilanswer
 

Code :
  1. $ligne=mysql_fetch_array($getNews);
  2. //!!$ligne contient le premier tableau!!
  3.   while($ligne)
  4.   {
  5.   $num = $ligne["num"];
  6.   $titre = $ligne["titre"];
  7.   $date = $ligne["date"];
  8.   $texte = substr($ligne["texte"],0,20);
  9.     $image = $ligne["img"];
  10.    $lienOpt = $ligne["lienOption"];
  11. //ici je vais "incrementer", $ligne designe le tablo suivant, qd il n'y aura plus de tablo $ligne vaudra false et on sortira de la boucle //while:):):):)
  12.    $ligne=mysql_fetch_array($getNews);
  13. //


 
 
y'a un truc super plus simple c'est de faire ca
 

Code :
  1. while($ligne = mysql_fetch_array($getNews)){
  2. }


 
et tu vires le mysql_fetch_array à la fin de ta boucle while.
 


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU]probleme de recuperation des lignes d'une requete mysql

 

Sujets relatifs
[resolu] cadre de sélection sur une imageUpload: variable du dossier de destination [RESOLU]
probleme pour vérifier cochage de cases radioProblème avec Win 2000 et script de config de proxy automatique
[Résolu] Problème sur Dreamweaver pour formulaire[résolu]Ne pas enregistrer les précédents éléments saisis
Le problème vient d'Apache ou de PHP ?[Résolu][Html/Javascript] Liens dans menu déroulant dynamique
[resolu] sdl sous code::blocks 
Plus de sujets relatifs à : [RESOLU]probleme de recuperation des lignes d'une requete mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR