Door middel van trial and error heb ik twee PHP scripts gecombineerd tot 1 search script met pagination. Er kan gezocht worden dmv een textbox en/of dropdown (gevuld met gegevens uit de database). Zolang de resultaten op de eerste pagina passen werkt het prima, zodra de resultaten over meerdere paginas verdeeld zijn gaat het mis. Als er op een link naar een andere pagina word geklikt wordt de zoekopdracht niet meegenomen. Ergens moet ik het script vertellen dat het de zoekwaarden meeneemt. kan iemand mij in de juiste richting sturen?


<?php
/*
Place code to connect to your DB here.
*/
include('config.php'); // include your code to connect to DB.

?>
<form id="form1" name="form1" method="post" action="pagination.php">
<label>Search by subject:</label>
<input type="text" name="string" id="string" value="<?php echo stripcslashes($_REQUEST["string"]); ?>" />
<label><strong><em>OR </em></strong>seminar</label>
<select name="webinar">
<option value="">ALL</option>

<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." GROUP BY webinar ORDER BY webinar";
$rs_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($rs_result)) {
echo "<option value='".$row["webinar"]."'".($row["webinar"]==$_REQUEST["webinar"] ? " selected" : "").">".$row["webinar"]."</option>";
}
?>
</select>
<input type="submit" name="button" id="button" value="Search" />
</label>

</form>

<br />
<br />

<?php

if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * 20;


if ($_REQUEST["string"]<>'') {
$search_string = " AND (webinar LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%' OR onderwerp LIKE '%".mysql_real_escape_string($_REQUEST["string"])."%')";
}
if ($_REQUEST["webinar"]<>'') {
$search_webinar = " AND webinar='".mysql_real_escape_string($_REQUEST["webinar"])."'";
}
if ($_REQUEST["jaar"]<>'' and $_REQUEST["maand"]<>'') {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE jaar >= '".mysql_real_escape_string($_REQUEST["jaar"])."' AND maand <= '".mysql_real_escape_string($_REQUEST["maand"])."'".$search_string.$search_webinar;
}

else {
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." WHERE id>0" .$search_string.$search_webinar. " ORDER BY onderwerp ASC LIMIT $start_from, 20" ;


}


$rs_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
if (mysql_num_rows($rs_result)>0) {
while ($row = mysql_fetch_assoc($rs_result)) {
?>

<table>
<tr>
<td>Subject</td>
<td>Seminar</td>
</tr>

<?php
while ($row = mysql_fetch_assoc($rs_result)) {
?>
<td> <a href="<?php echo $row["links"]; ?> " target="new" ><?php echo $row["onderwerp"]; ?></a> </td>
<td> <?php echo $row["webinar"]; ?> (<?php echo $row["maand"]; ?> <?php echo $row["jaar"]; ?>) </td>
</tr>

<?php
};
?>

</table>

<?php
$sql = "SELECT COUNT(onderwerp) FROM data ";
$rs_result = mysql_query($sql,$connection);
$row = mysql_fetch_row($rs_result);
$total_records = $row[0];
$total_pages = ceil($total_records / 20);

for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='pagination.php?page=".$i."'>".$i."</a> "; };

}
}
?>

Reageren