Résultat manquant à la requête

Eléphanteau du PHP | 15 Messages

24 mai 2006, 23:42

Salut tout le monde!

Voilà j'ai un petit souci :

J'effectue une requete SQL pour faire un tableau avec 2 colonnes
mais il manque un résultat à cette requete : le 1er de la liste qui devrait logiquement apparaitre!

Voici le code PHP :
<?
$sql = "SELECT nom, lien FROM partenaires WHERE categpart='".$categpart."' order by nom";  
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$result = mysql_fetch_array($req);


while( $data = mysql_fetch_array( $req)) 
   {
   $tablo[]=$data;
   }   
$nbcol=2;
   echo '<table align="center">';
   for($i=0;$i<count($tablo);$i++)
	{ 
        if($i%$nbcol==0)   
        echo '<tr>';   
echo '<td  class="txt" align="center" width="160"><a href="'.$tablo[$i]['lien'].'" target="_blank"><img src="logos/'.$tablo[$i]['nom'].'.jpg" border=0><br><b>'.$tablo[$i]['nom'].'</b></a><br><br></td>';   
        if($i%$nbcol==($nbcol-1) or $i==(count($tablo)-1)) 
        echo '</tr>';   
	}   
echo '</table>';


?>
Si je crée une nouvelle entrée dans l'interet de la mettre 1ere de la liste, elle n'apparait pas également, mais l'autre devient visible du coup... Ce n'est donc pas une erreur de ma part sur la base!
Voilà, si vous avez une idée car là je suis vraiment perdu (la solution d'une nouvelle entrée à chaque fois m'a pas l'air fiable, je veux bien faire les choses! ;) )

Merci à tous!

ViPHP
ViPHP | 649 Messages

25 mai 2006, 02:37

Ouin, faudrait que tu traînes le pointeur dans ton while aussi ... :
<?
$sql = "SELECT nom, lien FROM partenaires WHERE categpart='".$categpart."' order by nom";  
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$result = mysql_fetch_array($req);

$j = 0;
while( $data = mysql_fetch_array( $req))
   {
   $tablo[$j]=$data;
   $j++;
   }   
$nbcol=2;
   echo '<table align="center">';
   for($i=0;$i<count($tablo);$i++)
    {
        if($i%$nbcol==0)   
        echo '<tr>';   
echo '<td  class="txt" align="center" width="160"><a href="'.$tablo[$i]['lien'].'" target="_blank"><img src="logos/'.$tablo[$i]['nom'].'.jpg" border=0><br><b>'.$tablo[$i]['nom'].'</b></a><br><br></td>';   
        if($i%$nbcol==($nbcol-1) or $i==(count($tablo)-1))
        echo '</tr>';   
    }   
echo '</table>';


?>
Image

Eléphanteau du PHP | 15 Messages

27 mai 2006, 14:58

ca change rien... Je n'ai toujours pas le 1er résultat de la liste. Merci quand même!
Sur EasyPHP il me le sort et pas là... :cry:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 mai 2006, 15:25

Quand tu fais le
$result = mysql_fetch_array($req); 
Il lit la premiere ligne resultat de ta requête et place son pointeur sur la suivante, du coup dans le while il t'en manque une :)

Tu peux donc virer la ligne vu que tu n'utilises pas $result :)

Eléphanteau du PHP | 15 Messages

27 mai 2006, 15:57

Clap Clap ;)
Merci à toi!