这是我的代码,它正在通过我的结果。问题是它列出了我的数据库表中的一行五次。有id,名称,电子邮件,公司和标题。我如何只显示一次结果?
$sql = "SELECT * FROM `newsletter`";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $key => $value) {
$DATA .= "
<div id='contentBox'>
Name: $row[Name]<br />
Email: $row[Email]<br />
Company: $row[Company]<br />
Title: $row[Title]<br />
<br />
</div>
";
}
}
答案 0 :(得分:6)
摆脱foreach循环,你不需要它。
while ($row = mysql_fetch_assoc($result)) {
$DATA .= "
<div id='contentBox'>
Name: $row[Name]<br />
Email: $row[Email]<br />
Company: $row[Company]<br />
Title: $row[Title]<br />
<br />
</div>
";
}
请记住,您正从数据库中获取行(包含多列)。
----------------------
| col1 | col2 | col3 |
----------------------
| val1 | val2 | val3 |
----------------------
你的while
循环迭代&#34; down&#34;该表,其中每个$row
是数据库中的一行。在foreach
上执行$row
将分别遍历每列。
答案 1 :(得分:0)
这是一个仍然使用foreach循环的替代方案。这种方法的好处是,如果您添加或删除列,则无需修改循环。
$sql = "SELECT * FROM `newsletter`";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
$DATA .= '<div id="contentBox">';
foreach ($row as $key => $value) {
$DATA .= $key . ': ' . $value . '<br />';
}
$DATA .= '</div>';
}