MySql检查值是否与数据库中的值不同

时间:2014-05-29 07:28:58

标签: php mysql

我正在尝试检查插入到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我可以显示一条消息,但问题是结果底部始终显示此消息,只要没有更多匹配,结果就会消失,消息也会消息超越一切。

我认为可能只是因为搜索是实时的,文本框值永远不会等于数据库值。

这是对的吗?

2 个答案:

答案 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";
 }