mysql - php - Search query -
this question has answer here:
i built simple search query.when user fills input , sends , creates search query gets database information matches keywords given.
but when send keywords, gives me error :
warning: mysql_num_rows() expects parameter 1 resource, boolean given in c:\xampp\htdocs\www.c++.com\search-query.php on line 59
no results found "c++"
my php file looks :
<form id="search" method="get" action="search-query.php"> <input type="text" name="keywords" placeholder="search..." /> <input type="submit" value="go" style="margin:10px" /> </form>
and search query script :
<form id="search" method="get" action="search-query.php"> <input type="text" name="keywords" placeholder="search..." value="<?php echo $_get['keywords']; ?>" /> <input type="submit" value="go" style="margin:10px" /> </form> <div> <?php $i = 0; $keywords = $_get['keywords']; $terms = explode(" ",$keywords); $query = "select * search "; foreach ($terms $term){ $i++; if ($i == 1) $query .="keywords '%$term%' "; else $query .= "or keywords '%$term%' "; } //connect mysql_connect("localhost", "root", ""); mysql_select_db("search"); $query = mysql_query($query); $numrows = mysql_num_rows($query); if($numrows > 0){ while ($row = mysql_fetch_assoc($query)){ $id = $row['id']; $title = $row['title']; $description = $row['description']; $key = $row['keywords']; $link = $row['link']; } echo "<h2><a href='$link'>$title</a></h2> $descripton"; } else echo "no results found \"<b>$keywords</b>\""; //disconnect mysql_close(); ?> </div>
i don't know why $query
variable boolean type .if anybode can me i'll thankfull.
edit : did changes, changed mysqli
have error: warning: mysqli_num_rows() expects parameter 1 mysqli_result, boolean given in c:\xampp\htdocs\www.c++.com\search-query.php on line 60
still $query
boolean type
the script :
<?php $i = 0; $keywords = $_get['keywords']; $terms = explode(" ",$keywords); $query = "select * search "; foreach ($terms $term){ $i++; if ($i == 1) $query .="keywords '%$term%' "; else $query .="or keywords '%$term%' "; } //connect $link = mysqli_connect("localhost", "root", "", "search"); $query = mysqli_query($link, $query); $numrows = mysqli_num_rows($query); if($numrows > 0){ while ($row = mysqli_fetch_assoc($query)){ $id = $row['id']; $title = $row['title']; $description = $row['description']; $key = $row['keywords']; $link = $row['link']; } echo "<h2><a href='$link'>$title</a></h2> $descripton"; } else echo "no results found \"<b>$keywords</b>\""; //disconnect mysqli_close($link); ?>
your proble line:
$query = mysql_query($query);
the explaination lies in php documentation:
for select, show, describe, explain , other statements returning resultset, mysql_query() returns resource on success, or false on error.
Comments
Post a Comment