2013-11-15 57 views
0

使用我使用這個查詢執行的會話,但它並沒有在網站SQL查詢功能,與會話名稱

$_SESSION['bericht'] = $stamVanStatus; 

$status = $_SESSION['bericht']; 
print_r($status); 
$result = mysql_query("SELECT bericht,naam,datum FROM discussies WHERE bericht LIKE '$status'"); 

的print_r的顯示我,我從帖子功能發送消息上工作,我想與列進行比較。在列中有幾個我創建的測試消息。 它應該將它與我在數據庫中的數據進行比較,但這似乎不起作用,因爲我只看到我發送的打印郵件。當我將LIKE函數更改爲例如'%Test%'時,它顯示了文本中具有Test的列內的所有內容。

它並不顯示任何錯誤

希望有人能幫助我解決這個 由於提前

+0

什麼數據類型是bericht? – RiggsFolly

+0

就像需要一個外卡的地方嘗試'LIKE「」。$狀態。「%「」' – RiggsFolly

+0

外卡沒有工作,但它仍然沒有顯示任何 – user2995652

回答

-3

變量連接到帶有字符串。

$result = mysql_query("SELECT bericht,naam,datum FROM discussies WHERE bericht='".$status."'"); 
+0

就像是一個字符串比較,需要圍繞值的單引號以及某處的通配符。 – RiggsFolly

+0

哦,我還用過嗎?該死的,我想用=替換它。就像無法正常工作沒有通配符。 –

+0

這仍然是一個無效的查詢。字符串值需要用引號括起來。 –

0
$result = mysql_query 
(" 
       SELECT bericht, 
         naam, 
         datum 
       FROM discussies 
        WHERE bericht LIKE '%$status%' 
"); 

追加兩(%)百分號到查詢。變量前後一個。

如果「$ status」設置爲Foo,則查詢將返回; Foobar,如果Foobar是數據庫中的一個值,它也會返回BarFoo和BarFooBar。只要存在於數據庫中,就會返回一個值。

在開始或結尾添加百分號將排除BarFooBar,並且只有當它存在時才返回該值,以及在字符串本身之前(或之後,您選擇)返回任何其他信息。

+0

謝謝你的回答,但是那對我仍然不起作用,我認爲這與狀態的語法有關,因爲我似乎無法使用類似聲明 – user2995652

0

你從字面上查詢 「$status」。含義的消息,而不是像「您好,這是一個消息」,你得到了「$狀態」
改變最後一行

$result = mysql_query("SELECT bericht,naam,datum FROM discussies WHERE bericht LIKE '" . $status . "'"); 

嘗試分配查詢字符串變量,具有echo或檢查變量調試器,然後查詢它。在我看來,這使調試SQL查詢更容易。如果這不起作用,評估字符串會變成什麼?

我知道這是遲到的答案,但我希望它可以幫助某人。