I am coding (trying lol ) a search page for my request system. I have created a query from user input which I push into an array and use the array for output. When to enter the code for multiple pages when you click on the link the pages refreshes (code is on one file) but I dont seem to have any information about the previous query. I know that i cant carry a array over through a link. Sessions came to mind but can i open a session and use it for the links and close it on the same page.
Code: Select all
<?php
$user = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
$link= mysql_connect( "localhost", $user, $password );
mysql_select_db("workorders",$link) or die(mysql_error());
if ($submit) {
$query = "SELECT * FROM workorders WHERE";
$queryarray = array (
"first_name" => $_POST['first'],
"last_name" => $_POST['last'],
"building" => $_POST['building'],
"room" => $_POST['room'],
"status" => $_POST['status'],
"type" => $_POST['type'],
);
foreach ( $queryarray as $key=>$val ) {
if (! empty($val) && ($key != "type")) {
$query .= " $key="$val" AND";
} ELSEIF (! empty($val) && ($key = "type")) {
if ($val != "All") {
$query .= " $key="$val"";
} ELSE {
$query .= " $key!="$val"";
}
}
}
$sortby = $_POST['sortby'];
$query .= " ORDER BY $sortby";
$query2 = $query.";";
$results = mysql_query ($query2) or die(mysql_error());
$num_rows = mysql_num_rows( $results );
$display_number = 5;
if (isset($_POST['np'])){
$num_pages = $_POST['np'];
}ELSE{
if ( $num_rows > $display_number) {
$num_pages = ceil($num_rows/$display_number);
}ELSE{
$num_pages = "1";
}
}
// determine where to start in database if returning results
if (isset($_POST['s'])){
$start = $_POST['s'];
}ELSE{
$start = "0";
}
echo "<BR>".$num_pages;
echo "<br>".$num_rows."<br>";
$query .= " LIMIT $start, $display_number;";
$result = mysql_query($query) or die(mysql_error());
$total = mysql_num_rows($result);
print "You searched returned $total: <BR>";
print "<TABLE border="1">";
print "<TR>";
print "<TD> Number</td>";
print "<TD> Date</td>";
print "<TD> First Name</td>";
print "<TD> Last Name</td>";
print "<TD> Building</td>";
print "<TD> Room</td>";
print "<TD> Problem</td>";
print "<TD> Status</td>";
print "<TD> Type</td>";
print "</tr>";
while ($row= mysql_fetch_assoc($result)) {
print "<tr>";
if ($row['type'] != "Ink Request") {
print "<td><a href="problempage.php?id=$row[workorder_id]">".stripslashes($row['workorder_id'])."</a></td>";
} ELSE{
print "<td><a href="inkrequest.php?id=$row[workorder_id]">".stripslashes($row['workorder_id'])."</a></td>";
}
$date = stripslashes($row['workorder_date']);
print "<td>".date("m/d/y", $date)."</td>";
print "<td>".stripslashes($row['first_name'])."</td>";
print "<td>".stripslashes($row['last_name'])."</td>";
print "<td>".stripslashes($row['building'])."</td>";
print "<td>".stripslashes($row['room'])."</td>";
print "<td>".stripslashes($row['problem'])."</td>";
print "<td>".stripslashes($row['status'])."</td>";
print "<td>".stripslashes($row['type'])."</td>";
print "</tr>";
}
print "</table>";
// Make the links to other pages, if necessary.
if ($num_pages > 1) {
// determine Where we started
$current_page = ($start/$display_number) +1;
// if it isnt the first page make a previous button
if ($current_page != 1) {
echo '<a href="search.php?s='.($start-$display_number).'&np='.$num_pages.'">Previous</a>';
}
// Make all numbers pages
for ($i =1; $i <= $num_pages; $i++) {
if ($i != $current_page){
echo '<a href="search.php?s='.(($display_number * ($i -1))).'&np='.$num_pages.'">'.$i.'</a>';
}ELSE{
echo $i . " ";
}
}
// If its not the last page, make a next button.
if ($current_page != $num_pages) {
echo '<a href="search.php?s='.($start+$display_number).'&np='.$num_pages.'">Next</a>';
}
}
// mysql_free_result($result);
mysql_close($link);
return true;
}ELSE{
?>
<html>
<body>
<form method="POST" action="<?PHP $_SERVER['PHP_SELF']?>">
<BR>
What would you like to search for?
<BR>
First Name: <input type="text" name="first">
<BR>
Last Name: <input type="text" name="last">
<BR>
Building:<select name="building">
<option value="" selected>All
<option value="Office">Office
<option value="Shafer">Shafer
<option value="Lower">Lower
<option value="Bushkill">Bushkill
<option value="HighSchool">High School
<option value="Middle">Middle
</select>
<BR>
Room: <input type="text" name="room">
<BR>
Status: <select name="status">
<option value="" selected>All
<option value="Open">Open
<option value="Closed">Closed
</select>
<BR>
Type: <select name="type">
<option value="All" selected>All
<option value="Computer">Computer
<option value="Printer">Printer
<option value="SASI">SASI
<option value="Telephone">Telephone
<option value="Other">Other
<option value="Monitor">Monitor
<option value="Novell">Novell
<option value="Ink Request">Ink Request
</select>
<BR>
Sort by: <select name="sortby">
<option value="workorder_id" selected>ID
<option value="first_name">First Name
<option value="last_name">Last Name
<option value="building">Building
<option value="room">Room
<option value="status">Status
<option value="type">Type
</select>
<BR>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
<?PHP
}
?>Any thoughts or constructive ideas are welcome.
From
Pizmal