PHP/mySQL results not being displayed -
this question has answer here:
i keep getting warning on server after trying search says:
warning: mysql_fetch_array() expects parameter 1 resource, boolean given inform/search.php on line 19
heres code, don't quite understand why not displaying result. appreciated.
<?php if(isset($_post['submit'])){ if(isset($_get['go'])){ if(preg_match("/^[ a-za-z]+/", $_post['postcode'])){ $postcode=$_post['postcode']; //connect database } $con = mysql_connect('*****','*****','*****'); //connect database if (!$con) //if cannot connect database, terminate process { die('could not connect: ' . mysql_error()); } $mydb=mysql_select_db("dataproj"); //-query database table $sql="select * companies postcode '%" . $postcode ."%'"; //-run query against mysql query function $result=mysql_query($sql); //-create while loop , loop through result set while($row=mysql_fetch_array($result)){ $postcode =$row['postcode']; $cname=$row['cname']; //-display result of array echo "<ul>\n"; echo "<li>" . $postcode . " " . $cname . "</a></li>\n"; echo "</ul>"; } } else{ echo "<p>please enter search query</p>"; } } ?>
firstly don't use mysql api deprecated use pdo or mysqli.
secondly check $result before passing mysql_fetch_array. you'll find it's false because query failed. see mysql_query documentation possible return values , suggestions how deal them.
<?php if (isset($_post['submit'])) { if (isset($_get['go'])) { if (preg_match("/^[ a-za-z]+/", $_post['postcode'])) { $postcode = $_post['postcode']; //connect database } $con = mysql_connect('*****', '*****', '*****'); //connect database if (!$con) { //if cannot connect database, terminate process die('could not connect: ' . mysql_error()); } $mydb = mysql_select_db("dataproj"); //-query database table $sql = "select * companies postcode '%" . $postcode . "%'"; //-run query against mysql query function $result = mysql_query($sql); //check here if ($result === false) { die(mysql_error()); // todo: better error handling } //-create while loop , loop through result set while ($row = mysql_fetch_array($result)) { $postcode = $row['postcode']; $cname = $row['cname']; //-display result of array echo "<ul>\n"; echo "<li>" . $postcode . " " . $cname . "</a></li>\n"; echo "</ul>"; } } else { echo "<p>please enter search query</p>"; } } ?>
Comments
Post a Comment