我有一个像这样回显的存储字符串
$string = 24,56,43,23,45;
我想从mysql中检索数据,所以我这样做了;
$getcompany = mysql_query("SELECT * FROM pages WHERE id = $string");
如果 id 匹配任何字符串,它应该显示该信息但没有任何反应。我尝试使用爆炸来分解字符串,但我不知道如何使查询循环遍历字符串以显示与字符串匹配的信息。
我希望对某人有意义:(请帮忙。
使用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');
在这种情况下,您将使用IN
:
$nums = "'24','56','43','23','45'";
$query = "SELECT * FROM pages WHERE id IN (". $nums .");"
您要做的是首先在逗号上拆分字符串,然后IN
在查询中使用子句:
$string = '24,56,43,23,45';
$string = explode(',', $string);
$getcompany = mysql_query("SELECT * FROM pages WHERE id IN($string)");
我假设您的id
列是数字,所以这不应该需要在数字周围加上引号。