【问题标题】:Get all the values from single column in MySQL PDO [duplicate]从 MySQL PDO 中的单个列中获取所有值 [重复]
【发布时间】:2018-08-01 23:51:25
【问题描述】:

我在user_id 列 (1,47,6) 中有值。如何获取所有值?

我使用了以下代码。

$array_data = array($project_id);               
$query = "SELECT * FROM p
    INNER JOIN pl ON p.pl_id = pl.pl_id
    INNER JOIN user ON p.user_id = user.user_id WHERE 
    p.p_id=?";
$stmt = $conn->prepare($query);
$stmt->execute($array_data);
$result_data = $stmt->fetchAll( PDO::FETCH_ASSOC );
$ids = array();         
foreach($result_data as $rows) {

    $ids[] = $rows['user_id'];                      

}
$id = implode(',',$ids);
echo $id;

这个$id 只返回第一个值 (1)。我需要所有 3 个值。请提前帮助和感谢。

【问题讨论】:

  • 在循环外初始化$ids = array();,每次迭代都会声明它,想法是:在外面初始化,推入循环内,然后在外面内爆
  • 这些表是否简称为ppl
  • 另一种方法是将 id 分组,然后 ->fetchColumn 它,然后分解
  • $id 一直被覆盖,你应该把它放在循环之外

标签: php mysql pdo


【解决方案1】:

在循环前声明$ids数组,并在数组后回显内爆内容

$array_data = array($project_id);               
$query = "select `user_id` from p
          inner join pl on p.pl_id = pl.pl_id
          inner join user on p.user_id = user.user_id where 
          p.p_id=?";


$stmt = $conn->prepare($query);
$stmt->execute($array_data);
$result_data = $stmt->fetchAll( PDO::FETCH_ASSOC );

$ids = array();  /* declare variable before loop */

foreach($result_data as $rows) {

    $ids[] = $rows['user_id'];                      

}

$id = implode(',',$ids); /* output after loop */

【讨论】:

  • 按照建议实施,并在 implode 语句后添加此行 echo $id;仍然得到一个值 (1)
猜你喜欢
  • 2020-11-05
  • 2015-03-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多