Bonjour,
Dans la page d'un moteur de recherche (la page se nomme mod_recherche) d'un script annuaire dont voici le code:
<? if ($off==""){$off=0;} $off2=$off*10; $recherche=chop($recherche); $recherche=trim($recherche); $mot=explode(" ",$recherche); $taille=count($mot); if (($taille>0) and ($recherche<>"")){?> <? $i=0;$requete="select * from frac_moteur where ("; $taille--; while ($i<$taille) { $requete=$requete." (commentaire like '%$mot[$i]%' or commentaire like '%$mot[$i]%') or"; $i++; } $requete=$requete." (commentaire like '%$mot[$i]%' or commentaire like '%$mot[$i]%')"; $sql=$requete.") and (id_webmaster='$s_webmaster' and valid=0) order by id_moteur"; $res=mysql_query($sql); $num = mysql_num_rows($res); $i=0;$liste=""; while ($i < $num) { if ($i>0){$liste=$liste.",".mysql_result($res,$i,"id_moteur");} else {$liste=mysql_result($res,$i,"id_moteur");} $i++;} $liste2=$liste; if ($liste<>"") { $sql0="select * from frac_moteur where id_moteur in (".$liste.") and id_webmaster='$s_webmaster' and valid=0 order by id_moteur desc"; $sql1=$sql0." limit $off2,10"; $res=mysql_query($sql1); $num = mysql_num_rows($res); } else {$num=0;} $i=0; while ($i < $num) { $site=mysql_result($res,$i,"site"); $id_moteur=mysql_result($res,$i,"id_moteur"); $categoriepr=mysql_result($res,$i,"categoriepr"); $commentaire=mysql_result($res,$i,"commentaire"); $titre=mysql_result($res,$i,"titre"); $langue=mysql_result($res,$i,"langue"); $date=mysql_result($res,$i,"date"); $date=explode("-",$date); if ($date[1]=="01"){$mois="Janvier";} if ($date[1]=="02"){$mois="Février";} if ($date[1]=="03"){$mois="Mars";} if ($date[1]=="04"){$mois="Avril";} if ($date[1]=="05"){$mois="Mai";} if ($date[1]=="06"){$mois="Juin";} if ($date[1]=="07"){$mois="Juillet";} if ($date[1]=="08"){$mois="Aout";} if ($date[1]=="09"){$mois="Septembre";} if ($date[1]=="10"){$mois="Octobre";} if ($date[1]=="11"){$mois="Novembre";} if ($date[1]=="12"){$mois="Décembre";} ?> <? if ($categoriepr=="site"){?> <?include("mod_affiche_site.php");?> <?;} else {?> <?include("mod_affiche_flux.php");?> <?;}?> <?$i++;}?> <? if ($num==0){$num=(10*($off+1));} else { $q2="select count(*) as num from moteur where id_moteur in (".$liste2.") and id_webmaster='$s_webmaster' and valid=0"; $r2=mysql_query($q2); $n = mysql_num_rows($r2); $j=0; while ($j < $n) { $num=mysql_result($r2,$j,"num"); $j++; } ?> <CENTER> <TABLE> <TR> <!-- traitement de l'affichage des offset (code identique àcelui du haut --> <? # decoupage page $tranche=10; # $nb: nombre d'offset total de tranche $num_image=$num; $nb=$num_image/$tranche; $tampon=(int)($nb); if ($tampon==$nb){$tampon=$tampon-1;} echo" "; # gauche # fleche dizaine if ($dz>0) {$tmp=$dz-1;$offt=($dz-1)*10+9?><TD><IMG SRC="gd.gif" WIDTH="28" HEIGHT="31" BORDER="0"></TD><? ; }?> <? #fleche unite if ($off>0) {if ($off==$dz*10) {$tmp=$dz-1;$offt=($dz-1)*10+9?><TD><IMG SRC="fg.gif" WIDTH="28" HEIGHT="31" BORDER="0"></TD><? ; } else {?><TD><IMG SRC="fg.gif" WIDTH="28" HEIGHT="31" BORDER="0"></TD><?;} } # gauche (fin) ?> <? $debut=$dz*10; $a=$num_image-($tranche*10*($dz+1)); $d=(int)($num_image/$tranche); # test utile pour dessous if ($d*$tranche<>$num_image){$e=$d+1;} else {$e=$d;}; if ($a>0){$cste=10;} else {$cste=$e-10*$dz;} $fin=($dz*10)+$cste; # affichage des pages de l'offset en cours for ($i=$debut;$i<$fin;$i++) { $j=$i+1; if ($i<>$off) { ?><TD><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $dz ?>&off=<?echo $i?>&tranche=<? echo $tranche ?>"><IMG SRC="hulk4.gif" BORDER="0" WIDTH="28" HEIGHT="31"></a></TD> <? ; } else { ?><TD><IMG SRC="hulk5.gif" BORDER="0" WIDTH="28" HEIGHT="31"></TD><?;} ?> <? } # affichage des pages de l'offset en cours (fin) ?> <? #droite #fleche unite if ($off<$tampon) {if ($off==$dz*10+9) { $tmp=$dz+1;$offd=($dz+1)*10;?><TD><IMG SRC="fd.gif" WIDTH="28" HEIGHT="31" BORDER="0"></TD><? ; } else {?><TD><IMG SRC="fd.gif" WIDTH="28" HEIGHT="31" BORDER="0"></TD><?;} }?> <?#fleche dizaine if ($a>0){$tmp=$dz+1;$offd=($dz+1)*10;?><TD><IMG SRC="dd.gif" WIDTH="28" HEIGHT="31" BORDER="0"></TD><? ; } # droite (fin) #decoupage page (fin) ?> <!-- traitement de l'affichage des offset --> </TR> <TR> <!-- traitement de l'affichage des offset (code identique àcelui du haut --> <? # decoupage page $tranche=10; # $nb: nombre d'offset total de tranche $num_image=$num; $nb=$num_image/$tranche; $tampon=(int)($nb); if ($tampon==$nb){$tampon=$tampon-1;} echo" "; # gauche # fleche dizaine if ($dz>0) {$tmp=$dz-1;$offt=($dz-1)*10+9?><TD ALIGN="CENTER"><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $tmp ?>&tranche=<? echo $tranche ?>&off=<? echo $offt?>"><IMG SRC="gd2.gif" WIDTH="15" HEIGHT="12" BORDER="0"></a></TD><? ; }?> <? #fleche unite if ($off>0) {if ($off==$dz*10) {$tmp=$dz-1;$offt=($dz-1)*10+9?><TD ALIGN="CENTER"><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $tmp ?>&tranche=<? echo $tranche ?>&off=<? echo $offt?>"><IMG SRC="fg2.gif" WIDTH="15" HEIGHT="12" BORDER="0"></a></TD><? ; } else {?><TD ALIGN="CENTER"><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $dz ?>&tranche=<? echo $tranche ?>&off=<? echo ($off-1)?>"><IMG SRC="fg2.gif" WIDTH="15" HEIGHT="12" BORDER="0"></a></TD><?;} } # gauche (fin) ?> <? $debut=$dz*10; $a=$num_image-($tranche*10*($dz+1)); $d=(int)($num_image/$tranche); # test utile pour dessous if ($d*$tranche<>$num_image){$e=$d+1;} else {$e=$d;}; if ($a>0){$cste=10;} else {$cste=$e-10*$dz;} $fin=($dz*10)+$cste; # affichage des pages de l'offset en cours for ($i=$debut;$i<$fin;$i++) { $j=$i+1; if ($i<>$off) { ?><TD ALIGN="CENTER"><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $dz ?>&off=<?echo $i?>&tranche=<? echo $tranche ?>"><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2" color="#767676"><B><? echo"$j"; ?></B></FONT></a></TD> <? ; } else { ?><TD ALIGN="CENTER"><FONT FACE="Arial, Helvetica, sans-serif" SIZE="2" color="#000000"><B><?echo $j?></B></FONT></TD><?;} ?> <? } # affichage des pages de l'offset en cours (fin) ?> <? #droite #fleche unite if ($off<$tampon) {if ($off==$dz*10+9) { $tmp=$dz+1;$offd=($dz+1)*10;?><TD ALIGN="CENTER"><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $tmp ?>&tranche=<? echo $tranche ?>&off=<? echo $offd ?>"><IMG SRC="fd2.gif" WIDTH="15" HEIGHT="12" BORDER="0"></a></TD><? ; } else {?><TD ALIGN="CENTER"><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $dz ?>&tranche=<? echo $tranche ?>&off=<? echo ($off+1)?>"><IMG SRC="fd2.gif" WIDTH="15" HEIGHT="12" BORDER="0"></a></TD><?;} }?> <?#fleche dizaine if ($a>0){$tmp=$dz+1;$offd=($dz+1)*10;?><TD ALIGN="CENTER"><a href="recherche.php?kw=<?echo $kw?>&dz=<? echo $tmp ?>&tranche=<? echo $tranche ?>&off=<? echo $offd ?>"><IMG SRC="dd2.gif" WIDTH="15" HEIGHT="12" BORDER="0"></a></TD><? ; } # droite (fin) #decoupage page (fin) } ?> </td> </tr> </table> <?;}?>
Qaund je tape une requete dans le moteur de recherche, il affiche le ou les site(s) correspondant mais en dessous me marque "Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in mod_recherche.php on line 80"
Quand je tape une requete qui ne correspond à aucun site, cela n'affiche pas ça !!
Pourquoi ? que dois-je corriger ? Attention je n'y connais rien du touten php alors soyez indulgent et clairs dans vos réponses !
Merci
Raph
[Edit captain_torche]Merci d'utiliser les balises CODE(pour les codes courts) et CODEBOX(pour les codes longs)