2010-09-08 150 views
0

我試圖通過表單輸入多個數據,所有的數據將被(,)分隔。我打算使用這些數據來查找相應的id,以便通過sql查詢進一步處理。只從MYSQL數據庫檢索1行數據

以下是我使用的代碼。

$key_code = explode(",", $keyword); 
//$key_count = count($key_code); 
$list = "'". implode("','", $key_code) ."'"; 
//$row_count = ''; 
$sql4= "SELECT key_id FROM keyword WHERE key_code IN (".$list.")"; 
if(!$result4 = mysql_query($sql4, $connect)) { 
mysql_close($connect); 
$error = true; 
}else{ 
    //$i = 0; 
    while($row = mysql_fetch_array($result4)) { 
    $keyword_id[] = $row['key_id']; 
    //$i++; 
    } 
    //return $keyword_id; 
    } 

我看到的問題是,keyword_id [0]是包含任何數據(數據是準確的)的唯一元素。即使我通過上述形式輸入多個值。

我想這可能是在SQL的錯誤,但我echo'ed它,它看起來像:

SELECT key_id FROM keyword WHERE key_code IN ('WED','WATER','WASTE') 

括號內的值是什麼我輸入。

我甚至試圖找出有多少行被查詢返回,它只顯示1.我認爲我的查詢出了問題,但我無法確定位置。

任何幫助將不勝感激。

編輯:好吧解決的問題。感謝我提出的建議,我複製並粘貼了我在網站上回復到mysql控制檯的$ sql_query;導致只有1行被檢索。在仔細觀察之後,我意識到'和第二個單詞之間存在空格。我相信這個問題開始時我輸入key_code爲:

WED,水,廢棄物

而是輸入它作爲

WED,水,廢棄物

解決了這個問題。我認爲我應該這樣做,以便它可以在兩種方式下工作。

無論如何,謝謝你的幫助。

+0

表中有多少數據? echo'd SQL語句看起來很好,所以接下來要檢查的是'KEYWORD.key_code'列實際上具有這三個值中的任何一個。 – 2010-09-08 23:19:01

回答

0

我很確定查詢是可以的。你只需要幾行就可以得到

SELECT key_id FROM keyword 

我認爲只有一行符合你的WHERE。

+0

關閉我的頭關鍵字表的頂部有超過200個箭頭。 – user442909 2010-09-09 06:03:29

0

直接在數據庫中檢查查詢(使用phpmyadmin或在mysql控制檯中),但是這個查詢似乎按照您的設想工作。如果它直接在數據庫中使用它時只返回1行,那麼表中只有一行與此查詢匹配。

+0

我已經在MySQL控制檯中直接嘗試了查詢,並且發現了所有3個ID。 – user442909 2010-09-09 06:04:58