我正在尝试检查插入到taxtbox中的值是否与数据库中列出的值不同。
现在我有了这段代码:
<?php
include('connection.php');
if($_POST)
{
$q=$_POST['search'];
$sql_res=mysql_query("select name, surname, test, from table where name like '%$q%' or surname like '%$q%' order by field (test,1,0)");
while($row=mysql_fetch_array($sql_res))
{
$name=$row['name'];
$surname=$row['surname'];
$test=$row['test'];
$b_name='<strong>'.$q.'</strong>';
$b_surname='<strong>'.$q.'</strong>';
$final_name = str_ireplace($q, $b_name, $surname);
$final_surname = str_ireplace($q, $b_name, $surname);
$display = '<div> HTML code here</div>';
?>
<?php echo $display?>
<?php
}
}
if($final_name != $name){$display = "no";}
?>
并使用此代码,如果值存在一切正常,否则我有这个错误:
注意:未定义的变量:第44行的C:\ xampp \ htdocs \ A \ search.php中的名称
注意:未定义的变量:第44行的C:\ xampp \ htdocs \ A \ search.php中的final_name
任何帮助?
修改
好的,我认为问题可能是实时搜索..
我的意思是,在你的帮助下,如果$q != $name
我可以显示一条消息,但问题是结果底部始终显示此消息,只要没有更多匹配,结果就会消失,消息也会消息超越一切。
我认为可能只是因为搜索是实时的,文本框值永远不会等于数据库值。
这是对的吗?
答案 0 :(得分:0)
试
$check = mysql_num_rows($sql_res);
if($check > 0) {
// your while loop and other code
}
注意: - mysql_*
已被弃用,使用mysqli_*
或PDO
或尝试检查empty()
或我sset()
是否存在检查值
$name=(!empty($row['name']) ? $row['name'] : '');
// and also for other vars same process
答案 1 :(得分:0)
在使用之前检查变量是否存在:
if(isset($name) && isset($final_name)){
if($final_name != $name)
{
$display = "no";
}
} else {
$display = "no";
}