-3

ここに私のコードがあり、それは私の結果を通過しています。問題は、db テーブルの 1 つの行が 5 回リストされることです。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>
        ";
    }
}
4

2 に答える 2

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そのテーブルを「下に」繰り返します。$rowを実行するforeachと、$row各列が個別に反復処理されます。

于 2012-11-09T16:30:38.413 に答える
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>';
}
于 2012-11-09T16:33:37.903 に答える