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 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>
problemet är löst, tack ändå!