簡體   English   中英

PHP 在從 SQL 數據庫中提取的 ForEach 循環中的“While”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM