webForumDet fria alternativet

Paging-problem

2 svar · 297 visningar · startad av Sambaapa

SambaapaMedlem sedan juli 200728 inlägg
#1

Hej!

Jag har ett väldigt frustrerande problem när det gäller min paging-funktion. Att söka utan att välja något alternativ i rullgardinsmenyn går det alldeles utmärkt med att trycka nästa sida osv. Men väljer jag något sökningsalternativ eller fritext-söker går allting bra på första sidan men när jag ska vidare till nästa sida försvinner variabeln "$search" som har med sökningsalternativen att göra och sidan 2 blir precis som om jag har sökt igen utan mina förvalda sökningsalternativ. Hoppas ni förstår vad jag menar. Är väldigt tacksam för din hjälp!
Här ser ni koden i det första svaret, den här gången i färg, tack för tipset:

TulorkMedlem sedan aug. 2004903 inlägg
#2

ett tips. Omslut din PHP kod med php taggarna. blir lättare att läsa om det ser ut så här

<?php include("head.php"); ?> 
</div>

<?php
include("meny.php");
?>
<?php
include("dbconnect.php");

//nedan behövs för att man ska kunna välja sökning i rullgardin-menyn och dessutom fritextsökning ($search- funktionen) ";

{
$fritext=$_POST['fritext'];

$search="";
if ($_POST['Select1'] != "")
$search = " where Butiksplats.Stad ='".$_POST['Select1']."'";

if ($_POST['Select2'] != "")
if($search == "")
$search = " where Marknadsforingskalla.Medium = '" . $_POST['Select2']."'";
else 
$search = $search . " and Marknadsforingskalla.Medium = '" . $_POST['Select2']."'";

if ($_POST['Select3'] != "")
if($search == "")
$search = " where Erbjudande.Rabattyp = '" . $_POST['Select3']."'";
else 
$search = $search . " and Erbjudande.Rabattyp = '" . $_POST['Select3']."'";

if ($_POST['Select4'] != "")
if($search == "")
$search = " where Kategori.Kategorinamn = '" . $_POST['Select4']."'";
else 
$search = $search . " and Kategori.Kategorinamn = '" . $_POST['Select4']."'";

if ($fritext != "")
if($search == "")
$search = " where Erbjudande.Erbjudandenamn like '%$fritext%' or Produkt.Produktnamn like '%$fritext%'";
else 
$search = $search . " and Erbjudande.Erbjudandenamn like '%$fritext%' or Produkt.Produktnamn like '%$fritext%'";

//ovan behövs för att man ska kunna välja sökning i rullgardin-menyn och dessutom fritextsökning ";

//Sidvisning
// how many rows to show per page
$rowsPerPage = 6;

// by default we show first page
$pageNum = 1;

// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}

// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;

$query = "Select * from Bilder inner join Erbjudande on Bilder.Visar=Erbjudande.ErbjID inner join Produkt on Erbjudande.Har=Produkt.ProdID
inner join Kategori on Produkt.Finnsi=Kategori.KatID inner join Marknadsforsi
on Marknadsforsi.Produkt=Produkt.ProdID inner join Marknadsforingskalla 
on Marknadsforsi.Marknadsforingskalla=Marknadsforingskalla.Kall ID inner join 
Saljsav on Saljsav.Produkt=Produkt.ProdID inner join Leverantor on 
Saljsav.Leverantor=Leverantor.LevID inner join Butiksplats on Butiksplats.Har
=Leverantor.LevID" . $search . " order by Erbjudande.ErbjID desc LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error 1, query failed');

//Sidvisning
//$search behövs här!!!!!
// how many rows we have in database
$query2 = "SELECT COUNT(ErbjID) AS numrows FROM Erbjudande 
inner join Produkt on Erbjudande.Har=Produkt.ProdID inner join Kategori 
on Produkt.Finnsi=Kategori.KatID inner join Marknadsforsi
on Marknadsforsi.Produkt=Produkt.ProdID inner join Marknadsforingskalla 
on Marknadsforsi.Marknadsforingskalla=Marknadsforingskalla.Kall ID inner join 
Saljsav on Saljsav.Produkt=Produkt.ProdID inner join Leverantor on 
Saljsav.Leverantor=Leverantor.LevID inner join Butiksplats on Butiksplats.Har
=Leverantor.LevID" . $search;
$result2 = mysql_query($query2) or die('Error, query failed');
$row = mysql_fetch_array($result2, MYSQL_ASSOC);

$numrows = $row['numrows'];

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

$self = $_SERVER['PHP_SELF'];

// creating 'previous' and 'next' link
// plus 'first page' and 'last page' link

// print 'previous' link only if we're not
// on page one
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">[Föregående]</a> ";

$first = " <a href=\"$self?page=1\">[Första sidan]</a> ";

} 
else
{
$prev = ' [Föregående] '; // we're on page one, don't enable 'previous' link
$first = ' [Första sidan] '; // nor 'first page' link
}

// print 'next' link only if we're not
// on the last page
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">[Nästa]</a> ";

$last = " <a href=\"$self?page=$maxPage\">[Sista sidan]</a> ";
} 
else
{
$next = ' [Nästa] '; // we're on the last page, don't enable 'next' link
$last = ' [Sista sidan] '; // nor 'last page' link
}

}

?>

<div class="contents">
<?php

if( isLoggedIn() )
{ 

//Onlineräkning
include("online/onlinevisning_start.php");

?>
<form name="inloggningform" action="start.php" method="post">
<input name="actionLogOut" type="submit" value="Logga ut"><br><br>
</form>
<?php
}
?>

<h1>Sökresultat:</h1>

<?php

echo "<div class=resultat>";
if(mysql_num_rows($result)==0){
echo("Din sökning matchade inga erbjudanden");
}
else{

echo"<table width=85% align=center cellpadding=25 cellspacing=0>
<tr>

<th align=left style=padding-left:40px></th>
<th align=center>Erbjudanden:</th>
<th align=right style=padding-right:40px></th>

</tr>";
// print the random numbers
while($row = mysql_fetch_array($result))
{
echo("<tr bgcolor=#FFFFCC>");

echo("<td width=10% valign=center style=padding-left:40px>" . '<img src="'.$row['Mapp'] . $row['Filnamn'] .'" width="80px" height="64px"></img> '."</td>");

echo("<td width=40% valign=center align=center><font color=#666666>" . $row['Erbjudandenamn'] . "</font></td>");

echo("<td width=20% valign=center align=right style=padding-right:40px>" . "<b><font color=#FF0000>" . $row['Nupris'] . "</b></font><br><font size=-2>(" . $row['Rabattyp'] . ")</font><br><br><a href=resultat.php?ErbjID=".$row['ErbjID'].">" . "Läs mer" . "</td>");

echo("</tr>");

echo("");
}
echo("</table>");

}

?>
<br />
</div>
</div>

<div class="left">

</div>
<div class="spacer">

</div>

</div>

<div class="footer">

<?php

// print the page navigation link
echo("<h4 align=center>");
echo $first . $prev . " Visar sida <strong>$pageNum</strong> of <strong>$maxPage</strong> sidor " . $next . $last;
echo("</h4>");

?> 
<div class="footertexts">

</div>
</div>

</div>
</body>
</html>
SambaapaMedlem sedan juli 200728 inlägg
#3

problemet är löst, tack ändå!

138 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)