svgmx5 Posted October 31, 2009 Share Posted October 31, 2009 First Thanks to those who helped me on my previous posts, and the following code i'm using is not mine, i grabbed it from here http://www.phpfreaks.com/tutorial/basic-pagination Now onto the problem... If i make a search query, i get the following error: Problem, with Query:Unknown column 'math' in 'where clause' Not sure were the problem is in the script but here it is <?php $subject = $_GET['subject']; $location = $_GET['location']; // find out how many rows are in the table $sql = "SELECT COUNT(*) FROM tutorProfiles"; $result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR); $r = mysql_fetch_row($result); $numrows = $r[0]; // number of rows to show per page $rowsperpage = 9; // find out total pages $totalpages = ceil($numrows / $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; //retrieve the info from DB $sql = 'SELECT * FROM tutorProfiles WHERE subject='.$subject.' AND location='.$location.' LIMIT '.$offset.', '.$rowsperpage.''; $result = mysql_query($sql) or die("Problem, with Query:".mysql_error()); // while there are rows to be fetched... while ($list = mysql_fetch_assoc($result)) { // echo data echo ' <div id="profileBox"> <div id="badgeImg"> <img src="images/imgBG.png" name="imgBadge" width="76" height="70" align="left" id="imgBadge" /> <h2>'.$list['first'].'</h2> <p>'.$list['school'].'<br /> '.$list['degree'] . $list['class'].' </p> </div> <div id="profleBtn"> <a href="profile.php?id='.$list['tutorId'].'"><img src="images/linkBtn.png" alt="view Profile" width="150" height="30" border="0" /></a> </div> </div>'; } // end while if($result>0){ /*********** Start the pagination links ********/ echo "<p style=\"clear:both;\" align=\"center\">\n"; // 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&subject=$subject&location=$location&search2=Search'><<</a> "; // get previous page num $prevpage = $currentpage - 1; // show < link to go back to 1 page echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage&subject=$subject&location=$location&search2=Search'><</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&subject=$subject&location=$location&search2=Search'>$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&subject=$subject&location=$location&search2=Search'>></a> "; // echo forward link for lastpage echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages&subject=$subject&location=$location&search2=Search'>>></a> "; } // end if echo "</p>\n"; /****** end build pagination links ******/ } ?> I hope i'm explaining myself in what my problem is Link to comment https://forums.phpfreaks.com/topic/179714-solved-problem-with-query-error/ Share on other sites More sharing options...
cags Posted October 31, 2009 Share Posted October 31, 2009 Your problem is this line here... $sql = 'SELECT * FROM tutorProfiles WHERE subject='.$subject.' AND location='.$location.' LIMIT '.$offset.', '.$rowsperpage.''; Strings passed to a database should be surrounded by quotes. If you were to pass... $subject = "math"; $location= "mars"; $offset = 10; $rowsperpage = 10; ...after concatinating in the values your string looks like so... $sql = "SELECT * FROM tutorProfiles WHERE subject=math AND location=mars LIMIT 10, 10"; ...since these values don't have quotes around them MySQL assumes they are column names. What you want is something more like... $sql = "SELECT * FROM tutorProfiles WHERE subject='$subject' AND location='$location' LIMIT $offset, $rowsperpage"; Link to comment https://forums.phpfreaks.com/topic/179714-solved-problem-with-query-error/#findComment-948257 Share on other sites More sharing options...
svgmx5 Posted October 31, 2009 Author Share Posted October 31, 2009 Hey cags Thanks for your help and quick fix! Link to comment https://forums.phpfreaks.com/topic/179714-solved-problem-with-query-error/#findComment-948327 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.