Problème moteur de recherche
Kristoff
-
Kristoff -
Kristoff -
Salut.
Voila, j'ai un formulaire de recherche php (10, 15, ou 20 résultats par page) et une page de résultat, toujours en php.
Le problème c'est que lorsque je lance une recherche, les résultats ne s'affiche que par multiple de 10. Pour exemple, impossible d'afficher 32, 54, ou 88 résultats d'une recherche. C'est 30, 50 ou 80.
Je pense que le prb vient de ce bout de code dans ma page de résultat :
$batchSize = $FormDict['bs'];
if ($batchSize < 2) {
$batchSize = 10;
}
$batchNum = $FormDict['bn'];
$maxBatches = 20;
$curRowNum = 0;
Mais je n'arrive pas à corriger ça...
Pouvez vous m'aider ?
Merci. A+
K
http://teletubes@jexiste.fr
Voila, j'ai un formulaire de recherche php (10, 15, ou 20 résultats par page) et une page de résultat, toujours en php.
Le problème c'est que lorsque je lance une recherche, les résultats ne s'affiche que par multiple de 10. Pour exemple, impossible d'afficher 32, 54, ou 88 résultats d'une recherche. C'est 30, 50 ou 80.
Je pense que le prb vient de ce bout de code dans ma page de résultat :
$batchSize = $FormDict['bs'];
if ($batchSize < 2) {
$batchSize = 10;
}
$batchNum = $FormDict['bn'];
$maxBatches = 20;
$curRowNum = 0;
Mais je n'arrive pas à corriger ça...
Pouvez vous m'aider ?
Merci. A+
K
http://teletubes@jexiste.fr
A voir également:
- Problème moteur de recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Copernic moteur de recherche - Télécharger - Navigateurs
- Copernic Desktop Search - Télécharger - Utilitaires
- Recherche de pairs utorrent ✓ - Forum Téléchargement
2 réponses
bonjour
peut-être, mais là on ne voit que des chargement
de valeur dans des variables.
on ne peut donc rien dire.
il faudrait plus d'infos, de code.
cordialement.
peut-être, mais là on ne voit que des chargement
de valeur dans des variables.
on ne peut donc rien dire.
il faudrait plus d'infos, de code.
cordialement.
Voila le code entier :
<?PHP function buildCondition($fld, $op, $val) { $val = AddSlashes($val); $cond = ""; $flds = preg_split("/,/", $fld); for ($i=0; $i < count($flds); $i++) { if ($i > 0) { $cond .= " or "; } if (preg_match("/^s/", $op)) { $cond .= "$flds[$i] like '$val%'"; } else if (preg_match("/^c/", $op)) { $cond .= "$flds[$i] like '%$val%'"; } else if (preg_match("/^e/", $op)) { $cond .= "$flds[$i] like '%$val'"; } else if (preg_match("/^i/", $op)) { $cond .= "$flds[$i] = '$val'"; } else { $cond .= "$flds[$i] $op $val"; } } return " $cond "; } $FormDict = $HTTP_GET_VARS; if ($HTTP_POST_VARS['fs0']) { $FormDict = $HTTP_POST_VARS; } $fields = array("artiste","titre"); $prettyFields = array("artiste","titre"); $fieldTypes = array(1,1); $haveResults = -1; $batchSize = $FormDict['bs']; if ($batchSize < 2) { $batchSize = 10; } $batchNum = $FormDict['bn']; $maxBatches = 20; $curRowNum = 0; if($FormDict['_ds']) { $haveResults = 0; mysql_pconnect("sql.jexiste.fr", "teletubes","lolita"); mysql_select_db("teletubes"); $query = "select id, artiste,titre from liste where "; $query .= buildCondition($FormDict['sf0'], $FormDict['so0'], $FormDict['ss0']); if ($FormDict['ss1']) { $query .= $FormDict['sc0'] . buildCondition($FormDict['sf1'], $FormDict['so1'], $FormDict['ss1']); } if ($rs = mysql_query($query)) { $rowCount = mysql_num_rows($rs); if ($maxBatches > ($rowCount / $batchSize)) { $maxBatches = (int)($rowCount / $batchSize); } for ($b=0; $b < $batchSize * $batchNum; $b++) { mysql_fetch_row($rs); $curRowNum++; } if (($curRowNum < $rowCount) && ($row = mysql_fetch_row($rs))) { $haveResults = 1; } else { $haveResults = 0; } } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <HTML> <HEAD> <TITLE>RÈsultat</TITLE><meta name="GENERATOR" content="Freeway 3.5.5"><style type="text/css"> <!-- .style95 { font-family: Arial,Helvetica,sans-serif; font-weight: bold; font-size: 13px; } .style96 { font-family: Arial,Helvetica,sans-serif; font-size: 13px; } --> </style> </head><body topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 bgcolor="#ffcc00"><div id="LayoutTable"><table border=0 cellspacing=0 cellpadding=0 width=443><tr valign=top><td colspan=4></td><td height=16></td></tr><tr valign=top><td rowspan=3></td><td rowspan=3><img src="Resources/logob.gif" border=0 width=182 height=94 alt=""></td><td colspan=2></td><td height=64></td></tr><tr valign=top><td></td><td><p><span class="style95">Voici les résultats de votre recherche :</span></p></td><td height=19></td></tr><tr valign=top><td colspan=2></td><td height=14></td></tr><tr><td width=15><img src="Resources/_clear.gif" border=0 width=15 height=1 alt=""></td><td width=189><img src="Resources/_clear.gif" border=0 width=189 height=1 alt=""></td><td width=7><img src="Resources/_clear.gif" border=0 width=7 height=1 alt=""></td><td width=230><img src="Resources/_clear.gif" border=0 width=230 height=1 alt=""></td><td width=2 height=1><img src="Resources/_clear.gif" border=0 width=2 height=1 alt=""></td></td></tr> <?PHP if ($haveResults == 0) { ?> <P><span class="style96">Pas de rÈponse. Essayez encore, en simplifiant votre recherche (ex : "Moulin" au lieu d'"INSPECTEUR Moulin"</P> <?PHP } ?> <?PHP if ($haveResults == 1) { ?> <TABLE BORDER = "0" CELLPADDING="2"><span class="style96"> <TR VALIGN="center"> <TH>artiste ou auteur</TH> <TH>titre</TH> </TR> <?PHP $numShown = 0; do { ?> <TR VALIGN="center"> <TD><?PHP echo $row[1] ?></TD> <TD><?PHP echo $row[2] ?></TD> </TR> <?PHP $curRowNum++; $numShown++; } while (($curRowNum < $rowCount) && ($row = mysql_fetch_row($rs)) && ($numShown < $batchSize)); ?> <TR ALIGN="center"><TD COLSPAN=2><?PHP $bcode = ''; if ($maxBatches > 1) { $url = getenv("SCRIPT_NAME") . '?' . getenv("QUERY_STRING"); if (preg_match("/bs=\d/", $url)) { $bn=(int)$FormDict['bn']; for ($b=0; $b < $maxBatches; $b++) { if($b > 0) { $bcode .= ' | '; } if ($b == $bn) { $bcode .= "<B>" . ($b+1) . "</B>"; } else { $url = preg_replace("/bn=\d+/", "bn=$b", $url); $bcode .= "<A HREF=\"$url\">" . ($b+1) . "</A>"; } } } } echo $bcode; ?></TD></TR> </TABLE> <?PHP } ?> </BODY> </HTML>