2014-10-03 21 views
-1

我試圖比較兩個變量,我選擇那裏從數據庫中的價值,但它不起作用,請幫助我解決這個下面的代碼。strcasecmp不能使用數據庫值

$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

爲什麼你要把@放在哪裏? – mithunsatheesh 2014-10-03 08:58:53

+3

那麼你從數據庫中檢索的實際值是什麼? – 2014-10-03 08:58:59

+0

它總是返回沒有?它的樣子,謝謝strcasecemp – 2014-10-03 09:03:12

回答

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)。但是,如果你正在尋找數據庫中的鏈接,那麼不要這樣做,這是數據庫工作:)