之前我已经制作了一个php搜索栏,效果很好。但是,我最近使用jQuery移动框架开发了一个单文件Web应用程序。目的是能够搜索某个行业,个人或企业,但结果没有显示出来。如果搜索并且没有结果,则输出变量中的消息将在页面上显示“没有结果”。搜索栏的代码如下:
if(isset($_POST['search'])){
$searchq = $_POST['search'];
$searchq = preg_replace("#[^0-9a-z]#i", "", "$searchq");
$squery = mysql_query("SELECT * FROM users WHERE name LIKE '%$searchq%' OR fname LIKE '%$searchq%' OR lname LIKE '%$searchq%' OR trade LIKE '%$searchq%' LIMIT 10") or die("Could not search");
$counts = mysql_num_rows($squery);
$output = '';
$outputs = '';
if($counts != 0){
while($row = mysql_fetch_array($searchq)){
$ids = $row['id'];
$fnames = $row['fname'];
$lnames = $row['lname'];
$trades = $row['trade'];
$abouts = $row['about'];
$emails = $row['email'];
$numbers = $row['number'];
$names = $row['name'];
$output .= '<div>'.$trades.' '.$ids.'</div>';
}
}else{
$output = 'Sorry there were no results';
}
}
我将其打印到以下页面:
<h1><?php print($output); ?></h1>
值得注意的是,使用php(注册表单)的第一个功能完美,但同一页面上的登录表单没有,搜索栏也没有;我想知道在访问同一数据库的同一页面上是否有不同的表单可能会导致某种问题。如果有人需要更多代码,请发表评论。提前谢谢。
答案 0 :(得分:0)
$searchq = preg_replace("#[^0-9a-z]#i", "", "$searchq");
应为$searchq = preg_replace("#[^0-9a-z]#i", "", $searchq);
我想这会好起来的。 http://se1.php.net/preg_replace最后一个应该是一个包含字符串的变量,而不是一个自己的字符串。
答案 1 :(得分:0)
我认为您可以使用==
而不是=
。请进行更改并告诉我它是否有效。看起来应该是这样的
if($counts ! == 0)