从逗号分隔的值中获取数据库中的行

时间:2018-03-10 22:30:03

标签: php mysql

我从多选项中得到逗号分隔值,这是mysql行的id。我想要显示它,但我得到'注意:数组到字符串转换'错误使用爆炸。我的数据库表包含'id,url'列。

下面是我的代码:

    seq(2006, 2007, by = 1) %>% 
      map_dfc(function(x) {mydata <- myfunc(mydata, x)}) %>% 
      select(value, matches("year_"))

    # or even shorter
    seq(2006, 2007, by = 1) %>% 
      map_dfc(~ myfunc(mydata, .)) %>% 
      select(value, matches("year_"))

    # A tibble: 3 x 3
      value year_2006 year_2007
      <dbl>     <dbl>     <dbl>
    1    1.        1.        1.
    2    2.        1.        1.
    3    3.        1.        1.

请帮忙吗?

2 个答案:

答案 0 :(得分:1)

您的foreach()使用$img作为值。所以在内部,你必须使用$img而不是$id这是数组:

$query->bindParam(':id', $img); 

还要更改以下内容,因为您必须使用查询结果而不是$img这是一个数字。

echo '<img src="../content/uploads/'.$data['url'].'">';

答案 1 :(得分:1)

好的,所以在@Syscall的大力帮助下,终于让它发挥作用了。下面是我的工作代码:

$imageids = '1,2,3,4';
$id = explode(',', $imageids);

$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

foreach ( $id as $img ) {

    $query = $pdo->prepare('SELECT url FROM kg_images WHERE id = :id');
    $query->execute(array(
        ':id' => $img
    ));
    $data = $query->fetch(PDO::FETCH_ASSOC);

    echo '<img src="../kg-content/uploads/'.$data['url'].'">';

}