Page 1 sur 1

Résultat manquant à la requête

Posté : 24 mai 2006, 23:42
par corky_du_php
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!

Posté : 25 mai 2006, 02:37
par alexbad
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>';


?>

Posté : 27 mai 2006, 14:58
par corky_du_php
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:

Posté : 27 mai 2006, 15:25
par Ryle
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 :)

Posté : 27 mai 2006, 15:57
par corky_du_php
Clap Clap ;)
Merci à toi!