2013-02-25 60 views
0

我在網上查找了大約兩天,我不確定如何詢問Google這種情況。我試圖從包含單詞'頭盔'的單個列中拉出所有行。我得到的只有2行。實際上大約有10行,但它包含像「腿,頭盔」這樣的詞。只有'頭盔'這個詞的行才能正確填充。我正在使用的代碼。MYSQL:從包含多個數據的列中檢索所有行

id | rune_slot 
    --------------------------------- 
    0 | Shoulders 
    --------------------------------- 
    1 | Chest 
    --------------------------------- 
    2 | Main Hand, Off Hand, Ranged 
    --------------------------------- 
    3 | Helmet 
    --------------------------------- 
    4 | Legs, Helmet 
    --------------------------------- 
    5 | Helmet 
    --------------------------------- 
    6 | Legs, Helmet 
    --------------------------------- 

正如你所看到的,這是我的表格。就像我說的,我得到了第3和第4行,但我似乎無法得到第4和第6行。

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
     die('Could not connect: ' . mysql_error()); 
} 
$sql = 'SELECT * FROM runes WHERE rune_slot LIKE "Helmet"' ; 

mysql_select_db('runelist'); 
$retval = mysql_query($sql, $conn); 
if(!$retval) 
{ 
     die('Could not get data: ' . mysql_error()); 
} 
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
     echo "Rune Name : {$row['rune_name']} "." Craft Level : {$row['craft_level']} "." Rune Slot : {$row['rune_slot']} ". 
     "<br />"; 
} 
echo "Fetched data successfully\n"; 
mysql_close($conn); 

這是我從http://www.tutorialspoint.com/php/mysql_select_php.htm得到的代碼。

我已經嘗試了許多不同的select語句,我知道的。我試過將mysql_fetch_array更改爲_assoc,並瀏覽了http://www.php.net/manual/en/function.mysql-fetch-assoc.php。我猜測把多個數據放在一個列中是不好的做法?任何幫助將不勝感激,我經常來這裏學習PHP和MYSQL,現在我只是卡住了。謝謝!!

+0

[你應該停止使用mysql_ *](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php )。查看文檔鏈接中的紅色警告。 – Amelia 2013-02-25 22:56:36

+1

我注意到了警告,但是當我試圖實現新的api類型時,我收到一條錯誤消息,此時,我又回到舊式認爲它尚未實現。我會重新修改代碼以使其更新。感謝您的頭! :) – magezero 2013-02-26 17:34:13

回答

0

你需要在查詢中使用%

$sql = 'SELECT * FROM runes WHERE rune_slot LIKE "%Helmet%"' ; 

,這意味着在你喜歡的查詢你缺少%的Helmet

+0

哇,很容易。我以爲我已經試過這個,但顯然我沒有正確編碼。謝謝您的幫助!在閱讀了一些MYSQL文檔和網站後,我有另外一個問題,可以用CSV填寫一列嗎?我在讀它不符合1NF,我可能會遇到問題。 – magezero 2013-02-25 22:58:50

+0

你可以,但在大型表格中像這樣搜索在關係數據庫中可能會很慢。如果你只有幾個列表,那麼應該沒有問題,但我建議你檢查你的模式並使用更多的關係方法。 – Boynux 2013-02-26 07:43:37