将两个$ _GET值与数据库中的行进行比较

时间:2012-07-15 21:30:57

标签: php mysql

我正在尝试比较表单中的两个$ _GET输入,如果它在数据库中找到类似的东西,则将它们添加到SQL语句中。这是SQL代码。

<?php
  include('db_connect.php');

  $name1 = $_GET['name1'];
  $name2 = $_GET['name2'];


  $query="SELECT * FROM Stats WHERE `Name` LIKE '$_GET[name1]%' OR '$_GET[name2]%' ";
  $res=mysql_query($query);
  $num=mysql_numrows($res);
  $i=0;

  while($i< $num){
   $Name = mysql_result($res, $i, "Name");
   echo $Name;
   $i++;
  }
?>

这适用于第一个$ _GET [name1]字段,但是如果name2也匹配,我想返回更多。任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:2)

您的第二个LIKE需要引用正确的列:

$query="SELECT * FROM Stats 
            WHERE `Name` LIKE '$_GET[name1]%' OR `Name` LIKE '$_GET[name2]%'";

答案 1 :(得分:2)

尝试连接字符串:

$query="SELECT * FROM Stats WHERE `Name` LIKE '".mysql_real_escape_string($_GET["name1"])."%' OR `Name` LIKE '".mysql_real_escape_string($_GET["name2"])."%';";

使用LIKE时,您还需要OR - 运算符。 也许问题是函数mysql_numrows()被称为mysql_num_rows()