【问题标题】:PDO query - loop produces duplicate fields? [duplicate]PDO 查询 - 循环产生重复字段? [复制]
【发布时间】:2013-10-07 19:03:12
【问题描述】:

下面的代码为每个字段生成重复的<td> 元素。我正在尝试根据 PDO 查询的结果生成一个简单的 HTML 表。谁能告诉我为什么每个字段都被重复?

$data = $conn->query('SELECT * FROM students');

// Print results in a HTML table
echo '<table border="1" cellpadding="5">';
foreach($data as $row) {
  echo '<tr>';
  foreach ($row as $field) {
    echo '<td>' . $field . '</td>';
  }
  echo '</tr>';
}
echo '</table>';

谢谢

【问题讨论】:

  • var_dump($data) 是否也有重复项?
  • 我可以确认数据源中有 0 个重复项。
  • 我猜每个 $row 看起来像这样:array(0 =&gt; "SomeValue", "FirstField" =&gt; "SomeValue", 1 =&gt; "SomeOtherValue", "SecondField" =&gt; "SomeOtherValue")
  • 对重复的、可通过手动阅读轻松解决的问题进行投票有什么意义?只是好奇原因。
  • 好吧,再来一个友好的警告。这个网站不是你的个人帮助中心来珍惜你的懒惰。你应该付出一些努力来回答你的问题。

标签: php pdo


【解决方案1】:

看起来您正在使用 PDO::FETCH_BOTH 样式。

这将生成一个数组,其中条目重复,一次用于列名键,一次用于整数键。

详情请参阅以下内容:

http://php.net/manual/en/pdostatement.fetch.php

【讨论】:

  • 能否请您更正我的代码,以便我了解如何更改? (不要求你做我的功课,只是一个新手,这样做会帮助我学得更快):]
  • 我不会为您做任何事情,但请参阅:php.net/manual/en/pdo.setattribute.php 您可能需要为此设置添加一个调用,以设置您的连接的默认获取模式。
  • 非常感谢 - 将其设置为“FETCH_ASSOC”修复了重复输出。
  • 如果您知道students 表的字段名称,而不是遍历字段,您可以简单地从$row 变量中选择各个列,例如$row["StudentName"]
【解决方案2】:
$data = $conn->query('SELECT * FROM students');

echo "<table border="1" cellpadding="5">
while($info = mysql_fetch_array( $data )) 
 { 
 Print "<tr>"; 
 Print "<td>".$info[column1] . "</td> "; 
 Print "<td>".$info[column2] . " </td></tr>"; 
 } 
echo "</table>

【讨论】:

猜你喜欢
  • 2013-06-08
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
  • 2012-06-02
  • 2019-02-18
  • 2017-09-25
  • 1970-01-01
  • 2019-03-02
相关资源
最近更新 更多