![](/img/trans.png)
[英]Only Outputs 1 Row from SQL Database (Using Foreach Loop in PHP)
[英]PHP 'While' within a ForEach loop pulling from SQL DataBase
根據我的 SQL 數據庫中的條目數,我有一個小表被復制了幾次,假設是關於顏色的。 這些表將 go 每個新條目都向右移動一個位置。 在其中,我現在希望在每個條目中能夠為幾個字段自動生成 output。 例如,單個表條目可能是“reds”,現在我想顯示不同深淺的紅色,即“shade1”、“shade2”、“shade3”、“shade4”,然后下一個條目可能是“黃色”,我希望它顯示添加的黃色數量,即“shade1”、“shade2”。 我的代碼是這樣的:
<?php
error_reporting(E_ALL ^ E_NOTICE);
$stmt = $conn->prepare("SELECT * FROM colours");
$stmt->execute();
$colours = $stmt->fetchALL();
if($colours){
$i = 1;
foreach ($colours as $key => $colour) {
$coloursrow1 .='<table >
<tr><th>' . "<b>{$colour['colour']}</b>" . '</th></tr>
<tr><td>' . "<img src='{$colour['shade1']}' />" . '</td></tr>
<tr><td>' . "<img src='{$colour['shade2']}' />" . '</td></tr>
<tr><td>' . "<img src='{$colour['shade3']}' />" . '</td></tr>
<tr><td>' . "<img src='{$colour['shade4']}' />" . '</td></tr>
</table>';
$i++;
}
}
?>
我想知道是否不是像<tr><td>'. "<img src='../colours/reds/shade1.jpg' />". '</td></tr>
<tr><td>'. "<img src='../colours/reds/shade1.jpg' />". '</td></tr>
<tr><td>'. "<img src='../colours/reds/shade1.jpg' />". '</td></tr>
,我可以放一些像
if($colours){
$i = 1; $x = 1;
foreach ($colours as $key => $colour) {
$coloursrow1 .='<table >
<tr><th>' . "<b>{$colour['colour']}</b>" . '</th></tr>';
}
while ($x < 6) {
'<tr><td>' . "<img src='{$colour['shade$x']}' />" . '</td></tr>';
$x++;
}
foreach ($colours as $key => $colour) {
'</table>';
$i++;
}
}
這樣它會自動抓取和 output 它們,也讓我能夠限制 output 的數量。
我嘗試了不同的方法來實現這一點,但我總是遇到死胡同。 我一定做錯了什么(?)
似乎是這樣的,因為PDO::fetchAll()
返回一個空數組或出錯時返回 false。 所以直接迭代那個集合。 另外,數組訪問錯誤,應該是{$colour['shade'.$x]}
。
<?php
error_reporting(E_ALL ^ E_NOTICE);
$stmt = $conn->prepare("SELECT * FROM colours");
$stmt->execute();
$colours = $stmt->fetchALL();
foreach ($colours as $colour) {
$coloursrow1 .= "<table><tr><th><b>{$colour['colour']}</b></th></tr>";
$x = 1;
while ($x < 6) {
$coloursrow1 .= "<tr><td><img src='{$colour['shade'.$x]}' /></td></tr>";
$x++;
}
$coloursrow1 .= '</table>';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.