zoekfunctie

Status
Niet open voor verdere reacties.
K

ku30

Gast
ik heb een zoekformulier in index.php. wanneer ik deze gebruik is alles nog oké. wanneer ik wil bladeren door mijn records gaat alles fout. de tweede resultaten pagina blijft leeg en bij het terugbladeren wordt steeds het zelfde resultaat weergegeven. ik heb een herhalingsgebied ingesteld wat weer op de eerste pagina goed dienst doet. steeds bij het navigeren gaan de resultaten verloren
 
PHP:
    .
.
.
.
.
.  break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_zoekres = 10;
$pageNum_zoekres = 0;
if (isset($_GET['pageNum_zoekres'])) {
  $pageNum_zoekres = $_GET['pageNum_zoekres'];
}
$startRow_zoekres = $pageNum_zoekres * $maxRows_zoekres;

$colname_zoekres = "-1";
if (isset($_POST['trefwoord'])) {
  $colname_zoekres = $_POST['trefwoord'];
}
mysql_select_db($database_booksh, $booksh);
$query_zoekres = sprintf("SELECT * FROM artikel WHERE titel LIKE %s", GetSQLValueString("%" . $colname_zoekres . "%", "text"));
$query_limit_zoekres = sprintf("%s LIMIT %d, %d", $query_zoekres, $startRow_zoekres, $maxRows_zoekres);
$zoekres = mysql_query($query_limit_zoekres, $booksh) or die(mysql_error());
$row_zoekres = mysql_fetch_assoc($zoekres);

if (isset($_GET['totalRows_zoekres'])) {
  $totalRows_zoekres = $_GET['totalRows_zoekres'];
} else {
  $all_zoekres = mysql_query($query_zoekres);
  $totalRows_zoekres = mysql_num_rows($all_zoekres);
}
$totalPages_zoekres = ceil($totalRows_zoekres/$maxRows_zoekres)-1;

$queryString_zoekres = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_zoekres") == false && 
        stristr($param, "totalRows_zoekres") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_zoekres = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_zoekres = sprintf("&totalRows_zoekres=%d%s", $totalRows_zoekres, $queryString_zoekres);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>zoekresultaten</title>
</head>

<body>
<?php do { ?>
    tittel: <?php echo $row_zoekres['titel']; ?></br>
    auteur: <?php echo $row_zoekres['auteur']; ?></br>
    jaar uitgave: <?php echo $row_zoekres['jaar uitgave']; ?> </br>
    prijs: <?php echo $row_zoekres['prijs']; ?> </br>
    
  </p>
  
<?php } while ($row_zoekres = mysql_fetch_assoc($zoekres)); ?>
<p>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, 0, $queryString_zoekres); ?>">Eerst</a>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, max(0, $pageNum_zoekres - 1), $queryString_zoekres); ?>">Vorige</a>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, min($totalPages_zoekres, $pageNum_zoekres + 1), $queryString_zoekres); ?>">Volgende</a>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, $totalPages_zoekres, $queryString_zoekres); ?>">Laatste</a></p>
</body>
</html>
<?php
mysql_free_result($zoekres);
?>
misschien wat ongebruikelijk, maar na die lange tijd kom ik weer hetzelfde probleem tegen,waar ik echter al een oplossing voor had maar ben totaal vergeten hoe ik het toendertijd had opgelost
als er bereidwilligen mochten zijn,
 
Als goed is zo dit zo correct behoren te werken

PHP:
<?php


// dit stuk in je code toevoege
if(isset($_GET['page']) AND ctype_digit($_GET['page'])) {

    # Set page limit begin
    $page = $_GET['page'];    
}
else{

    # Set page limit begin als 0
    $page = 0;    
}

// einde toevogen
$currentPage = $_SERVER["PHP_SELF"];

$maxRows_zoekres = 10;
$pageNum_zoekres = 0;
if (isset($_GET['pageNum_zoekres'])) {
  $pageNum_zoekres = $_GET['pageNum_zoekres'];
}
$startRow_zoekres = $pageNum_zoekres * $maxRows_zoekres;

$colname_zoekres = "-1";
if (isset($_POST['trefwoord'])) {
  $colname_zoekres = $_POST['trefwoord'];
}
mysql_select_db($database_booksh, $booksh);
$query_zoekres = sprintf("SELECT * FROM artikel WHERE titel LIKE %s", GetSQLValueString("%" . $colname_zoekres . "%", "text"));
$query_limit_zoekres = sprintf("%s LIMIT %d, %d", $query_zoekres, $startRow_zoekres, $maxRows_zoekres);
$zoekres = mysql_query($query_limit_zoekres, $booksh) or die(mysql_error());
$row_zoekres = mysql_fetch_assoc($zoekres);

if (isset($_GET['totalRows_zoekres'])) {
  $totalRows_zoekres = $_GET['totalRows_zoekres'];
} else {
  $all_zoekres = mysql_query($query_zoekres);
  $totalRows_zoekres = mysql_num_rows($all_zoekres);
}
$totalPages_zoekres = ceil($totalRows_zoekres/$maxRows_zoekres)-1;

// dit stuk in je code toevoegen

  # Vorige knop maken
  if($page > 0) {      
      echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page-1).'">[Vorige]</a>';  }
  else{      
      echo '[Vorige]';  }
  
  # Pagina's maken
  for($i = 1; $i <= $pages; $i++)    {      
        # Pagina cijfer linkjes aanmaken 
      echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($i-1).'">'.$i.'</a>';
    }     
    # Volgende knop maken
  if(($page+1) <= ($results/$eachPage)) {      
      echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page+1).'">[Volgende]</a>';
  }
  else{
      echo '[Volgende]';
  }
// einde toevogen
$queryString_zoekres = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_zoekres") == false && 
        stristr($param, "totalRows_zoekres") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_zoekres = "&" . htmlentities(implode("&", $newParams));
  }
}

$queryString_zoekres = sprintf("&totalRows_zoekres=%d%s", $totalRows_zoekres, $queryString_zoekres);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>zoekresultaten</title>
</head>

<body>
<?php do { ?>
    tittel: <?php echo $row_zoekres['titel']; ?></br>
    auteur: <?php echo $row_zoekres['auteur']; ?></br>
    jaar uitgave: <?php echo $row_zoekres['jaar uitgave']; ?> </br>
    prijs: <?php echo $row_zoekres['prijs']; ?> </br>
    
  </p>
  
<?php } while ($row_zoekres = mysql_fetch_assoc($zoekres)); ?>
<p>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, 0, $queryString_zoekres); ?>">Eerst</a>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, max(0, $pageNum_zoekres - 1), $queryString_zoekres); ?>">Vorige</a>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, min($totalPages_zoekres, $pageNum_zoekres + 1), $queryString_zoekres); ?>">Volgende</a>
<a href="<?php printf("%s?pageNum_zoekres=%d%s", $currentPage, $totalPages_zoekres, $queryString_zoekres); ?>">Laatste</a></p>
</body>
</html>
<?php
mysql_free_result($zoekres);
?>
 
het is niet aanbevolen om 2x dezelfde vraag te stellen ...
daarom zal er eentje ( tevens die van vandaag) verwijderd worden ..
gelieve in de toekomst betreffende dit topic hier verder te gaan ...
 
ik wist niet direct wat de beste oplossing was. vandaar de dubbele vraag. nuja met de geboden oplossing is kennelijk nog wat mis. ikzelf vind niet direct terug maar met de regel
if(($page+1) <= ($results/$eachPage)) {
blijf ik foutmeldingen krijgen.
Notice: Undefined variable: eachPage in C:\xampp\htdocs\bookshop\resultaten.php on line 82
Notice: Undefined variable: results in C:\xampp\htdocs\bookshop\resultaten.php on line 82
Warning: Division by zero in C:\xampp\htdocs\bookshop\resultaten.php on line 82
tot later, vele groeten
 
ik heb ze vervangen en een nieuw stukje code van gemaakt, er is nog wat denkwerk aan. komt wel goed, hoor
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan