如何选择2列不同的id

Posted

技术标签:

【中文标题】如何选择2列不同的id【英文标题】:How to select 2 columns of different id 【发布时间】:2018-02-06 08:09:38 【问题描述】:

我想显示所有不同标题的栏目(课程)

我有一张名为course 的表

|---------- id -----------|------ id_user ----|----title_course---|

|.......... 1 ............|....... 5  ........|...... title1 .....|

|.......... 2 ............|.......7  .........|...... title2 .....|

|.......... 3 ............|....... 9  ........|...... title3 .....|

当我运行这段代码时

<?php 
$stmt = $connect->query(" SELECT * FROM course ");

while ($row = $stmt->fetch()) 

?> 
     <div class="all" > <?php echo $row['title_course']; ?>  </div>
<?php  ?>

问题是这总是显示

title3

结果:

<div class="all" > title3  </div>
<div class="all" > title3  </div>
<div class="all" > title3  </div>

【问题讨论】:

user 不太可能出现在表course 【参考方案1】:

PDOStatement::execute — 执行准备好的语句

PDOStatement::fetch — 从结果集中获取下一行

PDOStatement::fetchAll — 返回一个包含所有结果集行的数组

PDOStatement::fetchColumn — 从结果集的下一行返回单列

<?php
$stmt = $connect->prepare("SELECT * FROM course");
$stmt->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $stmt->fetchAll();

foreach ($result as $res) 
  print_r($res);

?>

【讨论】:

【参考方案2】:

正如@Sinto 提到的 使用 fetchAll() 获取所有结果,然后循环遍历结果集

【讨论】:

【参考方案3】:

不工作总是显示最后的结果

<?php 
$stmt = $connect->prepare(" SELECT * FROM course ");
$stmt->execute();
$mae = $stmt->fetchAll() ;
foreach ($mae as $row )  ?>
  <div> print_r($row['id_user']); </div>
  <div> print_r($row['id_user']); </div>
  <div> print_r($row['id_user']); </div>
<?php  ?> 

结果

<div> 9 </div>
<div> 9 </div>
<div> 9 </div>

【讨论】:

你到底想说什么? 我想创建新闻系统(用户发布),我只想为每个用户显示他们的id 这是您对问题的回答吗?显示 3 次表示 db 上有 3 条记录。你能在foreach() 之前检查print_r($mae); 并验证查询的输出吗?

以上是关于如何选择2列不同的id的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-如何根据不同列但同一行中的值选择列? [关闭]

如何选择不同列值的最新记录?

如何在具有相同 ID 的列中选择不同的值然后删除它们 PHP SQL Server

如何根据其他列中的条件从某个 ID 中选择所有值?

如何根据多个最大列值选择一行?

如何根据不同的列数据进行选择