【问题标题】:how to convert strings into arrays using php如何使用php将字符串转换为数组
【发布时间】:2013-06-20 19:23:29
【问题描述】:

我有一个像这样回显的存储字符串

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

我想从mysql中检索数据,所以我这样做了;

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

如果 id 匹配任何字符串,它应该显示该信息但没有任何反应。我尝试使用 explode 来分解字符串,但我不知道如何使查询循环遍历字符串以显示与字符串匹配的信息。

我希望对某人有意义:(请帮助。

【问题讨论】:

    标签: php mysql string random


    【解决方案1】:

    使用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');
    

    【讨论】:

    • 哇...这太棒了!需要找一本好的mysql书来阅读。有什么推荐??? @布拉德
    • @JaySmoke:只是MySQL Reference
    【解决方案2】:

    在这种情况下,你会使用IN:

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

    【讨论】:

    • thanx mate :) 你太客气了
    【解决方案3】:

    你要做的是先用逗号分割字符串,然后在查询中使用IN子句:

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

    我假设您的 id 列是数字,所以这不需要在数字周围加上引号。

    【讨论】:

    • thanx :) 真的很感激
    猜你喜欢
    • 2021-10-23
    • 2014-07-15
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多