2013-06-20 25 views
1

我有一個存儲字符串相呼應,這樣如何將字符串轉換成使用PHP

$string = 24,56,43,23,45; 

我想要從MySQL數據,所以我這樣做陣列;

$getcompany = mysql_query("SELECT * FROM pages WHERE id = $string"); 

如果id匹配任何字符串,它應該顯示該信息,但沒有任何反應。我嘗試使用爆炸來分解字符串,但我不知道如何通過字符串查詢循環顯示匹配字符串的信息。 。

我希望我做意義上的人:(請幫助

回答

6

使用IN

$string = "24,56,43,23,45"; 
$getcompany = mysql_query("SELECT * FROM pages WHERE id IN (" . $string . ")"); 

這將轉化在查詢中:

SELECT * 
FROM pages 
WHERE id IN (24,56,43,23,45); 

只要id是一個可以工作的數字字段。如果id是一個字符串,可以返工了一點:

$string = "24,56,43,23,45"; 
$args = "'" . implode("','", explode(",", $string)) . "'"; 
$getcompany = mysql_query("SELECT * FROM pages WHERE id IN (" . $args . ")"); 

這將轉化爲:

SELECT * 
FROM pages 
WHERE id IN ('24','56','43','23','45'); 
+0

哇......這真棒!需要找一本好的mysql書來閱讀。任何建議? @Brad –

+0

@JaySmoke:只是[MySQL參考](http://dev.mysql.com/doc/refman/5.5/en/index.html) –

+0

kk @BRad thanxxx –

2

在這種情況下,你會使用IN

$nums = "'24','56','43','23','45'"; 
$query = "SELECT * FROM pages WHERE id IN (". $nums .");" 
+0

thanx隊友:)你太友善 –

2

,你所要做的就是先拆對逗號的字符串,然後使用IN子句中的查詢:

$string = '24,56,43,23,45'; 
$string = explode(',', $string); 

$getcompany = mysql_query("SELECT * FROM pages WHERE id IN($string)"); 

我假設你id列是數字所以這不應該要求把周圍的數字加引號。

+0

thanx :)真正感謝它 –