strcasecmp不使用数据库值

时间:2014-10-03 08:57:16

标签: php

我正在尝试比较两个变量,我从数据库中选择了值,但它不起作用请帮我修复下面的代码。

$result1 = @mysql_query("SELECT * FROM events");
$data1 = @mysql_fetch_array($result1);
$dvenue1 = $data1['ven_title']; 

$result = @mysql_query("SELECT * FROM events_location");
$data = @mysql_fetch_array($result);
$dvenue = $data['ven_title'];   
if(strcasecmp($dvenue1, $dvenue) == 0){
echo 'yes';
} else {
echo 'no';
}

1 个答案:

答案 0 :(得分:0)

正如Ismael所说,你从两个表中获取所有行并比较每个行的第一个ven_title。无论实际问题如何,这似乎都是一件奇怪的事情,但我假设你在每张表中只有一行。 fetch_array方法仅返回结果集中的一行...

如果你要做的是找到具有匹配位置的事件,那么考虑在SQL中执行此操作并测试结果集,可能......

con = new mysqli($host, $user, $password, $dbname, $port, $socket)
    or die ('Could not connect to the database server' . mysqli_connect_error());

$res = $con->query("select distinct e.ven_title from events e, events_location l where e.ven_title = l.ven_title");

if($res->num_rows > 0) {
    echo $res->num_rows . " event found with a matching location.\n";
} else {
    echo "no events with matching locations found.\n";
}

$res->free_result;

$con->close();

如果你真的想要使用strcasecmp比较从两个表返回的值,那么你需要从你得到的值中去掉空格。考虑在if语句中使用trim($ dvenue1)和trim($ dvenue)。但是如果你在数据库中查找链接,那就不要这样做了,那就是数据库工作:)