eschuppe Posted April 2, 2009 Share Posted April 2, 2009 I've been trying to get my search script(www.ericschuppe.com/searchtest.php) to paginate the results of this search searching all the results displayed in the checkout database here is the code( nothing displays when tested : viewed at www.ericschuppe.com/searchtest2.php) <link href="styles.css" rel="stylesheet" type="text/css"> <form action="searchtest2.php" method="post"> Search - <input type="text" name="search" value="<?php if($_POST['search']) echo $_POST['search']; ?>" /><br /> <input type="submit" name="searchbtn" value="Search" /> </form> <?php include ('dbc.php'); // Connect to the data base. if($_POST['searchbtn']) { echo '<br /><br />'; if(!get_magic_quotes_gpc()) { $search = addslashes($_POST['search']); }else{ $search = $_POST['search']; } $query = "SELECT full_name,user_idnum,DATE_FORMAT(`date`, '%m/%d/%Y %I:%i %p'),book,returned, MATCH (full_name) AGAINST ('".$search."' IN BOOLEAN MODE) AS user_idnum FROM `checkout` WHERE MATCH (user_idnum) AGAINST ('".$search."' IN BOOLEAN MODE) ORDER BY `full_name` DESC"; $result = mysql_query($query); $query = "SELECT full_name,user_idnum,DATE_FORMAT(`date`, '%m/%d/%Y %I:%i %p'),book,returned, MATCH (full_name) AGAINST ('".$search."' IN BOOLEAN MODE) AS user_idnum FROM `checkout` WHERE MATCH (user_idnum) AGAINST ('".$search."' IN BOOLEAN MODE) ORDER BY `full_name` DESC"; $num = mysql_num_rows($query); } $max = 10; //amount of articles per page. change to what to want $p = $_GET['p']; if(empty($p)) { $p = 1; } $limits = ($p - 1) * $max; //view the news article! if(isset($_GET['act']) && $_GET['act'] == "view") { $id = $_GET['id']; $sql = mysql_query("SELECT * FROM checkout WHERE id = '$id'"); while($r = mysql_fetch_array($sql)) { $full_name = $r['full_name']; $user_idnum = $r['user_idnum']; $date = $r['date']; $book = $r['book']; $returned = $r['returned']; echo "<div><p>$full_name</p><p>$user_idnum</p><p>$date</p><p>$book</p><p>$returned</p></div>"; } }else{ //view all the news articles in rows $sql = $result; //the total rows in the table $totalres = ($num,0); //the total number of pages (calculated result), math stuff... $totalpages = ceil($totalres / $max); //the table echo '<table align="center" cellspacing="2" cellpadding="2"><tr><td align="left"><b>Name</b></td><td align="center"><b>ID</b></td><td align="center"><b>Date</b></td><td align="center"><b>Book</b></td><td align="center"><b>Returned</b></td></tr><tr>'; while ($r = mysql_fetch_array($sql, MYSQL_NUM)) { echo "<tr><td align=\"left\">" . stripslashes($r[0]) . "</td> <td align=\"left\">$r[1]</td> <td align=\"left\">$r[2]</td> <td align=\"left\">$r[3]</td> <td align=\"left\">$r[4]</td><tr>\n"; } } //close up the table echo "</tr></table>"; echo( "<div style='text-align: center;'>" ); for($i = 1; $i <= $totalpages; $i++){ //this is the pagination link $counter = "<a href='searchtest2.php?p=$i'>$i</a>"; echo "<span class=\"csstables\">$counter</span>"; } echo( "</div>" ); ?> Thank you again. Link to comment https://forums.phpfreaks.com/topic/152176-search-pagination/ Share on other sites More sharing options...
Showcase Posted April 2, 2009 Share Posted April 2, 2009 The problem is probably $num = mysql_num_rows($query); I didn't bother reading past that. $query isn't holding any mysql result set, it's just holding the query information that is being sent to the database using mysql_query(). The result set from that query is being stored into $result. Replace: $query = "SELECT full_name,user_idnum,DATE_FORMAT(`date`, '%m/%d/%Y %I:%i %p'),book,returned, MATCH (full_name) AGAINST ('".$search."' IN BOOLEAN MODE) AS user_idnum FROM `checkout` WHERE MATCH (user_idnum) AGAINST ('".$search."' IN BOOLEAN MODE) ORDER BY `full_name` DESC"; $result = mysql_query($query); $query = "SELECT full_name,user_idnum,DATE_FORMAT(`date`, '%m/%d/%Y %I:%i %p'),book,returned, MATCH (full_name) AGAINST ('".$search."' IN BOOLEAN MODE) AS user_idnum FROM `checkout` WHERE MATCH (user_idnum) AGAINST ('".$search."' IN BOOLEAN MODE) ORDER BY `full_name` DESC"; $num = mysql_num_rows($query); With: $query = "SELECT full_name,user_idnum,DATE_FORMAT(`date`, '%m/%d/%Y %I:%i %p'),book,returned, MATCH (full_name) AGAINST ('".$search."' IN BOOLEAN MODE) AS user_idnum FROM `checkout` WHERE MATCH (user_idnum) AGAINST ('".$search."' IN BOOLEAN MODE) ORDER BY `full_name` DESC"; $result = mysql_query($query); $num = mysql_num_rows($result); Link to comment https://forums.phpfreaks.com/topic/152176-search-pagination/#findComment-799386 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.