1

このようにエコーする保存された文字列があります

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

mysql からデータを取得したいので、これを行います。

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

ID がいずれかの文字列と一致する場合、その情報が表示されるはずですが、何も起こりません。分解を使用して文字列を分解しようとしましたが、クエリを文字列をループさせて文字列に一致する情報を表示する方法がわかりません。

私は誰かに意味があることを願っています:( pls help.

4

3 に答える 3

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');
于 2013-06-20T19:26:02.607 に答える
2

あなたがしなければならないことは、最初にコンマで文字列を分割してからIN、クエリで句を使用することです:

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

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

列は数値であると想定しているidため、数値を引用符で囲む必要はありません。

于 2013-06-20T19:27:11.113 に答える
2

その場合、次を使用しますIN

$nums = "'24','56','43','23','45'";
$query = "SELECT * FROM pages WHERE id IN (". $nums .");"
于 2013-06-20T19:25:51.517 に答える