Avatar billede rampagezz Nybegynder
30. oktober 2008 - 20:00 Der er 14 kommentarer og
1 løsning

sætte filter, når man viser næste records

Hej eksperter

Jeg har fundet dette script eller rettere fået et link til det fra phpcoder: http://www.eksperten.dk/spm/850395

Mit problem var til at starte med at jeg ikke kunne page til de næste records at tabellen. Det kan jeg godt nu, men den skal kun vise de records hvor:$query = "SELECT * FROM pokaler WHERE medlem LIKE '%$brugernavn%'" .
Det virker sådan set også meget godt på første side, men når jeg så klikker på "næste" og henter de næste 8 records, så bruger den ikke filter.

Er det fordi at der skal knyttes et id til mit næste link?

Her er min kode:

<?php

$rowsPerPage = 12;

$pageNum = 1;

if(isset($_GET['page']))
{
    $pageNum = $_GET['page'];
}

$offset = ($pageNum - 1) * $rowsPerPage;

$query = " SELECT * FROM pokaler WHERE medlem LIKE '%$brugernavn%'" .
        " LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed');

while($row = mysql_fetch_array($result))
{
  echo $row['medlem'] . '<br>';
  echo $row['dato'] . '<br>';
  echo $row['pokal'] . '<br>';
  echo $row['plads'] . '<br>';
}

?>
<?php

$query  = "SELECT COUNT(medlem) AS numrows FROM pokaler WHERE medlem LIKE '%$brugernavn%'";
$result  = mysql_query($query) or die('Error, query failed');
$row    = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];

$maxPage = ceil($numrows/$rowsPerPage);


$self = $_SERVER['PHP_SELF'];
$nav  = '';

for($page = 1; $page <= $maxPage; $page++)
{
  if ($page == $pageNum)
  {
      $nav .= " $page ";  }
  else
  {
      $nav .= " <a href=\"$self?page=$page\">$page</a> ";
  }
}


?>
<?php

if ($pageNum > 1)
{
  $page  = $pageNum - 1;
  $prev  = " <a href=\"$self?page=$page\">[Prev]</a> ";

  $first = " <a href=\"$self?page=1\">[First Page]</a> ";
}
else
{
  $prev  = '&nbsp;';
  $first = '&nbsp;';
}

if ($pageNum < $maxPage)
{
  $page = $pageNum + 1;
  $next = " <a href=\"$self?page=$page\">[Next]</a> ";

  $last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
}
else
{
  $next = '&nbsp;'; link
  $last = '&nbsp;';
}

echo $first . $prev . $nav . $next . $last;

?>

Skal lige siges, at den side jeg linker fra, hiver den id med over.

Håber i kan hjælpe mig.

Mvh. Kenneth
Avatar billede rampagezz Nybegynder
30. oktober 2008 - 20:02 #1
Her er forresten den første del af koden:

<?php require_once('../Connections/connect.php'); ?>
<?php
$colname_Recordset1 = "1";
if (isset($_GET['id'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}

mysql_select_db($database_connect, $connect);
$query_Recordset1 = sprintf("SELECT * FROM members WHERE id = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $connect) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

$brugernavn = $row_Recordset1['username'];
?>
Avatar billede rampagezz Nybegynder
30. oktober 2008 - 20:12 #2
Har prøvet at lave:  $next = " <a href=\"$self?page=$page\">[Next]</a> ";

om til: $next = " <a href=\"$self?page=$page?id=$id\">[Next]</a> ";

men det virker heller ikke.
Avatar billede erikjacobsen Ekspert
30. oktober 2008 - 22:46 #3
Hvordan kan den vide hvad $brugernavn er på efterfølgende sider?
Avatar billede rampagezz Nybegynder
31. oktober 2008 - 15:55 #4
Det er jo det jeg vil have ført ind i linket på næste knappen, men ved ikke hvordan.

Her fortæller den jo, at der er tale om et bestemt id:
<?php
$colname_Recordset1 = "1";
if (isset($_GET['id'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}

jeg skal bare have indført id i linket, så den også fortæller hvilken.
Avatar billede erikjacobsen Ekspert
31. oktober 2008 - 22:02 #5
Jo, men det overrasker mig bare at du bruger en variabel som den der $username, uden at den kan komme nogen steder fra.

Du skal vel bare lave din url i retning af  ......php?username=rampagezz&......
og aflæse den med $_GET['username']
Avatar billede rampagezz Nybegynder
01. november 2008 - 01:31 #6
Jeg har prøvet at bruge $GET['username'] men stadig uden held.
Linket som siden bliver hentet fra ser således ud:
<a href="pokaler2.php?username=<?php echo $row_Recordset1['username']; ?>"

Det skal lige nævnes at jeg har ændret: $rowsPerPage = 12; til 8 i stedet for 12.

Der er 15 records i tabellen "pokaler" som den henter fra og 9 af dem er username "rampagezz".

Når siden bliver hentet, viser den 8 records med username "rampagezz", som den skal.
Men når jeg henter de næste records i tabellen, viser den de sidste 7, i stedet for den sidste med username "rampagezz".

Det lyder måske lidt indviklet. :-/
Avatar billede erikjacobsen Ekspert
01. november 2008 - 08:52 #7
Du skriver at du prøver een af de to ting jeg siger??
Avatar billede rampagezz Nybegynder
01. november 2008 - 12:00 #8
Kig her:

Her er linket fra den forrige side

<a href="pokaler2.php?username=<?php echo $row_Recordset1['username']; ?>" target="_blank" style="font-family:Verdana; font-size:9px;" onclick="window.open(this.href,'PopUpTur','width=370,height=370');return false;"><u> Pokaler</u></a>

--------------------------------------------------------------------------------

Og her er hele koden på pokaler2.php:

<?php require_once('../Connections/connect.php'); ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Pokaler</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/tekst.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
background-image: url(../jpg/loggedbg.gif)}
-->
</style></head>


<body>

<br>

<?php

mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
?>
<?php
$self = $_SERVER['PHP_SELF'];

$brugernavn = $_GET['username'];

$rowsPerPage = 8;

$pageNum = 1;

if(isset($_GET['page']))
{
    $pageNum = $_GET['page'];
}


$offset = ($pageNum - 1) * $rowsPerPage;

$query = " SELECT * FROM pokaler WHERE medlem LIKE '%$brugernavn%'" .
        " LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed');


while($row = mysql_fetch_array($result))
{
  echo $row['medlem'] . '<br>';
  echo $row['dato'] . '<br>';
  echo $row['pokal'] . '<br>';
  echo $row['plads'] . '<br>';
}

?>
<?php

$query  = "SELECT COUNT(medlem) AS numrows FROM pokaler WHERE medlem LIKE '%$brugernavn%'";
$result  = mysql_query($query) or die('Error, query failed');
$row    = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];


$maxPage = ceil($numrows/$rowsPerPage);


$nav  = '';

for($page = 1; $page <= $maxPage; $page++)
{
  if ($page == $pageNum)
  {
      $nav .= " $page ";
  }
  else
  {
      $nav .= " <a href=\"$self?page=$page\">$page</a> ";
  }
}

?>
<?php


if ($pageNum > 1)
{
  $page  = $pageNum - 1;
  $prev  = " <a href=\"$self?page=$page\">[Prev]</a> ";

  $first = " <a href=\"$self?page=1\">[First Page]</a> ";
}
else
{
  $prev  = '&nbsp;';
  $first = '&nbsp;';
}

if ($pageNum < $maxPage)
{
  $page = $pageNum + 1;
  $next = " <a href=\"$self?page=$page\">[Next]</a> ";

  $last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
}
else
{
  $next = '&nbsp;';
  $last = '&nbsp;';
}

echo $first . $prev . $nav . $next . $last;



?>

</body>
</html>
Avatar billede erikjacobsen Ekspert
01. november 2008 - 12:50 #9
Og de links der går til næste side skal så også indeholde brugernavnet, det kan ikke komme af sig selv.
Avatar billede rampagezz Nybegynder
02. november 2008 - 17:38 #10
Ja, men hvordan gør jeg det. Det er det jeg ikke kan finde ud af.
Avatar billede rampagezz Nybegynder
02. november 2008 - 17:52 #11
Jeg har prøvet at skrive sådan: $next = " <a href=\"$self?page=$page?username=$brugernavn\">[Next]</a> ";

Men den gør stadig det samme som: 01/11-2008 01:31:51

Jeg har også prøvet at skrive sådan:

$next = " <a href=\"$self?username=$brugernavn?page=$page\">[Next]</a> ";

Men så viser den ingen records på næste side.
Avatar billede erikjacobsen Ekspert
02. november 2008 - 18:47 #12
Det skal nok bare være

Jeg har prøvet at skrive sådan: $next = " <a href=\"$self?page=$page&username=$brugernavn\">[Next]</a> ";
Avatar billede rampagezz Nybegynder
03. november 2008 - 18:42 #13
YEEEEEEEEEEEES...!

Hvis du vidste hvor mange timer jeg har kæmpet med det.. :-)

Kom med et svar det var alle pointene værd..
Avatar billede erikjacobsen Ekspert
03. november 2008 - 18:54 #14
Jeg samler slet ikke på point, tak.
Avatar billede rampagezz Nybegynder
03. november 2008 - 18:59 #15
hmm. Men tusind tak for hjælpen.. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester