【问题标题】:PDO foreach loop doesn't workPDO foreach 循环不起作用
【发布时间】:2017-05-28 14:19:42
【问题描述】:

我是 PDO 的新手,我在这里找不到我正在处理的问题的答案。
我能够在没有WHERE 子句的表上运行foreach 循环,但是当我将它复制到一个类似的表with WHERE 子句上时,它不会返回任何数据! p>

这是不起作用的代码。我什至尝试在没有ORDER BYLIMIT 参数的情况下运行它,但仍然没有运气!请指导。

<div class="table-responsive">
    <table class="teachers_profile_table table table-bordered">
         <thead>
             <th style="width:20%">Student</th>
             <th>Comment</th>
         </thead>
         <tbody>
<?php
$pdo = Database::connect();
<?php
$sql = "SELECT * FROM tbl_st_comments_abt_tut WHERE tut_id=?";
$q = $pdo->prepare($sql);
$q->execute(array($teacher_id));
$data = $q->fetch(PDO::FETCH_ASSOC);
foreach ($pdo2->query($sql) as $row) {
    echo '<tr>';
    echo '<td>'.$row['st_name'].$row['input_date'].'</td>';
    echo '<td>'.$row['st_comment'].'</td>';
    echo '</tr>';
}
Database::disconnect();
?>
         </tbody>
    </table>
</div>

这是数据库表: 表名:tbl_st_cmets_abt_tut ID tut_id st_id st_name st_comment 输入日期 (出于测试目的,我在表格中手动输入了 3 行)。

【问题讨论】:

  • 你在哪里关闭了第一个 php 标签?为什么要开第二个?
  • Getting data out of statement. foreach()。你必须遍历 $q 变量。而 $pdo2 只是一个随机数
  • @MasivuyeCokile 重要吗?
  • @YourCommonSense 我在第二次打开 php 标签时遇到错误
  • @MasivuyeCokile 如果您对基本 PHP 有疑问,您必须提出自己的问题。

标签: php pdo foreach


【解决方案1】:

我不确定你想用这条线实现什么:foreach ($pdo2-&gt;query($sql) as $row) 我什至不确定它是否合法,$pdo2 来自哪里?

如果您关注 Your Common Sense 的博客文章,您会发现您的 foreach 是正确的,在显示结果之前检查您是否获得结果也很重要。

您的代码应如下所示:

<div class="table-responsive">
         <table class="teachers_profile_table table table-bordered">
              <thead>
              <th style="width:20%">Student</th>
              <th>Comment</th>
              </thead>
              <tbody>
<?php
$pdo = Database::connect();


$sql = "SELECT * FROM tbl_st_comments_abt_tut WHERE tut_id= ? ";
$q   = $pdo->prepare($sql);
$q->execute([$teacher_id]);
$data = $q->fetchall(PDO::FETCH_ASSOC);

if (count($data) > 0) {

    foreach ($data as $row) {
        echo '<tr>';
        echo '<td>' . $row['st_name'] . $row['input_date'] . '</td>';
        echo '<td>' . $row['st_comment'] . '</td>';
        echo '</tr>';
    }
} else {

    echo "no results";
}

Database::disconnect();
?>
                </tbody>
         </table>
</div> 

【讨论】:

  • 你能用你的表结构编辑你的问题,这样我就可以看到你的数据看起来像@Ali
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2015-10-29
  • 2021-07-26
  • 2013-06-25
  • 2020-05-27
  • 2014-04-28
  • 1970-01-01
相关资源
最近更新 更多