从mysql表中获取数据并显示

时间:2019-09-03 14:03:37

标签: php mysql pdo

我正在尝试获取存储在数据库中的图像名称并显示它,但是它不起作用?谁能告诉我下面的代码有什么问题:

<p class="phase-title-en">
<?php 
 $title="SELECT DISTINCT record_step_one FROM phase_one_data";

 $vartitle=$dbh->prepare($title);
  $vartitle->execute();
  $result= $vartitle->fetch();
  ?>
   </p>
   <?php foreach($result as $fn_title) { 

    echo "<p>  '".$fn_title['record_step_one']."'</p>";
    }
    ?>

我的数据库如下: enter image description here

1 个答案:

答案 0 :(得分:0)

您的主要问题是您正在使用PDO fetch()方法,该方法仅返回结果集的下一行(在您的情况下为第一行)。

这样,当您执行foreach时,实际上是在第一行的列上进行迭代(而不是按预期的那样在所有行上进行迭代)。

因此您的代码可能会抛出很多错误消息(实际上是E_NOTICES),告诉您您正在尝试将字符串用作数组,因为循环($fn_title)中的每个值都是包含第一行的值(5、2,eagle等)。

EDIT :很抱歉,但是在我的原始答复中,我没有注意到查询中的DISTINCT关键字。因此,实际上,foreach将仅运行一次,其值将为字符串eagle。但是问题仍然是相同的,字符串record_step_one中没有索引eagle

解决方案的第一步是将fetch()替换为fetchAll(),并检查是否可能出现其他错误(例如,我们看不到$dbh在哪里在您的代码中实例化,可能有问题也可能没有问题。