J jiggan Medlem sedan juni 2003 175 inlägg Frågan 28 feb. 2005 22:10 #1 Jag håller på att koda en sök funktion till ett forum i php och när man har sökt så visas resultaten som en länk till en tråd. Sökningen fungerar bra. Om man som exempel får 2 träffar och där finns 3 trådar totalt och den skall visa 1 träff per sida, funkar detta innan man har valt vilken sida man vill se. Om man t.ex. väljer sida 2 för att se den andra tråden får man se den första igen och sen skrivs där ut att där finns 3 sidor. Alltså skrivs alla trådar ut när man har valt sida.
Jag hoppas att jag har förklarat begripligt nu annars får ni fråga. Här kommer min kod också iaf!
$databas = $_GET['section'];
$link = mysql_connect("XXX", "XXX", "XXX");
mysql_select_db("XXX", $link);
$sql_common = "FROM " . $databas . "_start
WHERE rubrik LIKE '%".$_POST['sok']."%'";
$limit = 1;
if (isset ($_GET['sida']))
{
$sida = ($_GET['sida']);
}
else
{
$sida = 0;
}
$offset = $sida * $limit;
$sql = "SELECT COUNT(*) AS rows_tot " . $sql_common;
$resultat = mysql_query($sql)
or die(mysql_error());
$rad = mysql_fetch_array ($resultat);
if ($rad['rows_tot'] >0 )
{
$sidor_totalt = (ceil($rad['rows_tot'] / $limit) - 1);
}
$sql2 = "SELECT DISTINCT * $sql_common ORDER by id ASC LIMIT $offset, $limit ";
$resultat = mysql_query($sql2) or die(mysql_error());
while ($rad = mysql_fetch_assoc($resultat))
{
$bgcolor = $bgcolor == '#E0E0E0' ? '#FAFAFA' : '#E0E0E0';
echo "<tr>". "<td style=\"background-color:$bgcolor\" width=315 height=60 align=left valign=top>".
"<a href=\"read.php?section=".$_GET['section']."&id=".$rad['id']."\">". $rad['rubrik']."</a> ". "<br>". "</td>";
echo "<td style=\"background-color:$bgcolor\" width=40 height=60 align=left valign=top>";
if ($rad['antal_svar'] == "")
{
echo "<b>". "0". "</b>";
}
else
{
echo "<b>". $rad['antal_svar']. "</b>". "</td>";
}
echo "<td style=\"background-color:$bgcolor\" width=65 height=60 align=left valign=top>".
"<a href=\"user_info.php?uid=".$rad['startad_av_id']."\">". $rad['startad_av_nick']."</a> ". "<br>". "<br>".
"<i>". $rad['startad_datum']. "<br>". "</i>". "</td>";
echo "<td style=\"background-color:$bgcolor\" width=50 height=60 align=left valign=top>";
if ($rad['antal_visningar'] == "")
{
echo "<b>". "0". "</b>";
}
else
{
echo "<b>". $rad['antal_visningar']. "</b>". "</td>";
}
echo "<td style=\"background-color:$bgcolor\" width=93 height=60 align=left valign=top>";
if ($rad['antal_svar'] != "")
{
echo "<a href=\"user_info.php?uid=".$rad['svar_senast_id']."\">". $rad['svar_senast_nick']."</a>". "<br>". "<br>".
"<i>". $rad['svar_senast_datum']. "<br>". "</i>". "</td>". "</tr>";
}
"</table>";
}
if((mysql_num_rows($resultat)==0))
{
echo "<tr>". "<td bgcolor=#E0E0E0 width=315 height=60 align=left valign=top>". "<b>". "Detta forumet är tomt. ". "</b>".
"</td>". "</tr>";
}
echo "</table>". "<tr>". "<td align=right valign=top>". "<b>". "Sida ". ($sida + 1) . " / " . ($sidor_totalt + 1) . "</b>". "<br>";
if ($sida > 0)
{
echo "<a href=\"forum.php?sok=".$_GET['sok']."§ion=".$_GET['section']."&sida=" . ($sida - 1) . "\">« Förra</a> ";
}
else
{
echo "";
}
if($sidor_totalt > 0)
{
for($i = 0; $i <= $sidor_totalt; $i++)
{
if($i == $sida)
{
echo " " . ($i + 1) . " ";
}
else
{
echo " <a href=\"forum.php?sok=".$_GET['sok']."§ion=".$_GET['section']."&sida=$i\">" . ($i + 1) . "</a> ";
}
}
}
else
{
echo "";
}
if ($sida < $sidor_totalt)
{
echo "<a href=\"forum.php?sok=".$_GET['sok']."§ion=".$_GET['section']."&sida=" . ($sida + 1) . "\">Nästa »</a> ";
}
else
{
echo "";
}
echo "</td>". "</tr>";
}
?>
Peeer Medlem sedan mars 2002 5 907 inlägg $sql_common = "FROM " . $databas . "_start WHERE rubrik LIKE '%".$_POST['sok']."%'";
Där har du ditt fel skulle jag tro. $_POST['sok'] innehåller inget värde när du valt sida. Därmed kommer den plocka ut alla värden som uppfyller villkoret "rubrik LIKE '%%'", vilket jag antar att de flesta värden gör :)