我正在尝试比较表单中的两个$ _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也匹配,我想返回更多。任何想法都将不胜感激。
答案 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()
。