harkly Posted July 23, 2010 Share Posted July 23, 2010 I have a 2 part issue, I don't believe they are related but maybe. #1 I am trying to set up pagination, this is my 1st time and its not working out so great :-\ What is happening is when you click on the link to go to the next set of data the variables don't seem to be passing. Error message:: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND user.genderPref =' at line 12 If I hard code the info in it works fine. WHERE user.bd_year <= 1992 AND user.bd_year >=1911 AND user.gender = 2 AND user.genderPref = 1 What I get when I echo out the $where WHERE user.bd_year <= blank AND user.bd_year >= blank AND user.gender = blank AND user.genderPref = blank I was thinking I could pass the variables in a session, never done sessions before but it appears to be working for the 1st page with same issue on 2nd page. #2 I am using a dynamic WHERE to do my search and for some reason it is leaving out the beginning of the $where WHERE user.bd_year <= 1992 AND user.bd_year > [sELECT user.userID, user.gender, user.genderPref, user.city, user.state, photos.photo_1, CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)MISSING INFO= 1911 AND user.gender = 2 AND user.genderPref = 1 Can someone help me out?? My Code:: <?php session_start(); $gender=$_POST["gender"]; $genderPref=$_POST["genderPref"]; $ageMin=$_POST["ageMin"]; $ageMax=$_POST["ageMax"]; $today = date("Y"); $year1 = $today-$ageMin; $year2 = $today-$ageMax; $_SESSION['gender'] = $gender; // store session data $_SESSION['genderPref'] = $genderPref; // store session data $_SESSION['ageMin'] = $ageMin; // store session data $_SESSION['ageMax'] = $ageMax; // store session data $_SESSION['today'] = $today; // store session data $_SESSION['year1'] = $year1; // store session data $_SESSION['year2'] = $year2; // store session data ?> <?php require_once('zipcode.class.php'); include('library/login.php'); login(); mysql_select_db('harkly'); $smoke=$_POST["smoke"]; $religion=$_POST["religion"]; $zip_code=$_POST["zip_code"]; $heightMin=$_POST["heightMin"]; $heightMax=$_POST["heightMax"]; $hairColor=$_POST["hairColor"]; $eyeColor=$_POST["eyeColor"]; if(empty($zip_code)) { $where = "WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND user.gender = $genderPref AND user.genderPref = $gender "; if (!empty($smoke)) { $where .= " AND about_me.smoking = $smoke"; } if (!empty($religion)) { $where .= " AND bkgd.relg = $religion"; } if (!empty($heightMin)) { $where .= " AND appearance.height >= $heightMin"; } if (!empty($heightMax)) { $where .= " AND appearance.height <= $heightMax"; } if (!empty($hairColor)) { $where .= " AND appearance.hair_color = $hairColor"; } if (!empty($eyeColor)) { $where .= " AND appearance.eye_color = $eyeColor"; } $result = mysql_query("SELECT user.userID, user.gender, user.genderPref, user.city, user.state, photos.photo_1, CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5) < RIGHT(birth_date,5)) AS age FROM user LEFT JOIN photos ON user.userID = photos.userID LEFT JOIN about_me ON user.userID = about_me.userID LEFT JOIN bkgd ON user.userID = bkgd.userID LEFT JOIN appearance ON user.userID = appearance.userID $where")or die(mysql_error()); } // end of empty($zip_code) $num_rows = mysql_num_rows($result); echo "SELECT user.userID, user.gender, user.genderPref, user.city, user.state, photos.photo_1, CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age FROM user LEFT JOIN photos ON user.userID = photos.userID LEFT JOIN about_me ON user.userID = about_me.userID LEFT JOIN bkgd ON user.userID = bkgd.userID LEFT JOIN appearance ON user.userID = appearance.userID $where"; echo "<br><BR>$where<br><br>"; // --------------------------------------- // number of rows to show per page $rowsperpage = 12; // find out total pages $totalpages = ceil($num_rows / $rowsperpage); // get the current page or set a default if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) { // cast var as int $currentpage = (int) $_GET['currentpage']; } else { // default page num $currentpage = 1; } // end if // if current page is greater than total pages... if ($currentpage > $totalpages) { // set current page to last page $currentpage = $totalpages; } // end if // if current page is less than first page... if ($currentpage < 1) { // set current page to first page $currentpage = 1; } // end if // the offset of the list, based on current page $offset = ($currentpage - 1) * $rowsperpage; // --------------------------------------- if(empty($zip_code)) { $where = "WHERE user.bd_year <= $year1 AND user.bd_year >= $year2 AND user.gender = $genderPref AND user.genderPref = $gender "; if (!empty($smoke)) { $where .= " AND about_me.smoking = $smoke"; } if (!empty($religion)) { $where .= " AND bkgd.relg = $religion"; } if (!empty($heightMin)) { $where .= " AND appearance.height >= $heightMin"; } if (!empty($heightMax)) { $where .= " AND appearance.height <= $heightMax"; } if (!empty($hairColor)) { $where .= " AND appearance.hair_color = $hairColor"; } if (!empty($eyeColor)) { $where .= " AND appearance.eye_color = $eyeColor"; } $result = mysql_query("SELECT user.userID, user.gender, user.genderPref, user.city, user.state, photos.photo_1, CURDATE(), (YEAR(CURDATE())-YEAR(birth_date)) - (RIGHT(CURDATE(),5)<RIGHT(birth_date,5)) AS age FROM user LEFT JOIN photos ON user.userID = photos.userID LEFT JOIN about_me ON user.userID = about_me.userID LEFT JOIN bkgd ON user.userID = bkgd.userID LEFT JOIN appearance ON user.userID = appearance.userID $where LIMIT $offset, $rowsperpage")or die(mysql_error()); } // end of search $num_rows = mysql_num_rows($result); if ($num_rows == 0){ echo "Sorry No Results found, please try again with a boarder search area."; } else { // format search results $cells_wide = 4; echo " <table cellspacing='0' cellpadding='3' border='0' width='700'><tr> "; $c = 0; while ($r=mysql_fetch_array($result)){ $userID=$r["userID"]; $bd_year=$r["bd_year"]; $gender=$r["gender"]; $genderPref=$r["genderPref"]; $photo_1=$r["photo_1"]; $city=$r["city"]; $state=$r["state"]; $zip=$r["zip"]; $age = $r['age']; if (0 < $c && 0 == $c % $cells_wide){ echo " </tr><tr> "; } echo " <td width=175> "; echo "<div id='profiles'> <a href='profile.php'> <div id='name'>$userID</div> "; if (empty($photo_1)){ echo " <div id='image'><img src='uploads/noPhoto.gif' width='100' height='100' border='0'></div></a> "; } else { echo " <div id='image'><img src='uploads/$photo_1' width='100' height='100' border='0'></div></a> "; } echo " <div id='status'>$age - $city, $state</div> </div> </td>"; $c++; } // end of while echo " </tr>"; echo " </table> "; }// end search results /****** build the pagination links ******/ // range of num links to show $range = 3; // if not on page 1, don't show back links if ($currentpage > 1) { // show << link to go back to page 1 echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'>‹‹ </a> "; // get previous page num $prevpage = $currentpage - 1; // show < link to go back to 1 page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'> ‹ </a> "; } // end if // loop to show links to range of pages around current page for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) { // if it's a valid page number... if (($x > 0) && ($x <= $totalpages)) { // if we're on current page... if ($x == $currentpage) { // 'highlight' it but don't make a link echo " [<b>$x</b>] "; // if not current page... } else { // make it a link echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> "; } // end else } // end if } // end for // if not on last page, show forward and last page links if ($currentpage != $totalpages) { // get next page $nextpage = $currentpage + 1; // echo forward link for next page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'> › </a> "; // echo forward link for lastpage echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>›› </a> "; } // end if /****** end build pagination links ******/ ?> Quote Link to comment https://forums.phpfreaks.com/topic/208701-pagination-error/ Share on other sites More sharing options...
jcbones Posted July 24, 2010 Share Posted July 24, 2010 I didn't see a form on that page, so try your Post or Session data like this. $gender= (isset($_POST["gender"])) ? $_POST['gender'] : $_SESSION['gender']; $genderPref= (isset($_POST["genderPref"])) ? $_POST['genderPref'] : $_SESSION['genderPref']; $ageMin= (isset($_POST["ageMin"])) ? $_POST['ageMin'] : $_SESSION['ageMin']; $ageMax= (isset($_POST["ageMax"])) ? $_POST['ageMax'] : $_SESSION['ageMax']; $today = date("Y"); $year1 = $today-$ageMin; $year2 = $today-$ageMax; $_SESSION['gender'] = $gender; // store session data $_SESSION['genderPref'] = $genderPref; // store session data $_SESSION['ageMin'] = $ageMin; // store session data $_SESSION['ageMax'] = $ageMax; // store session data //$_SESSION['today'] = $today; // store session data (NOT NEEDED, as date('Y') will return today. //$_SESSION['year1'] = $year1; // store session data (NOT NEEDED, Let the calcs work. //$_SESSION['year2'] = $year2; // store session data (NOT NEEDED, Let the calcs work. Quote Link to comment https://forums.phpfreaks.com/topic/208701-pagination-error/#findComment-1090603 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.