0

テーブルから選択されたすべてのレコードを while ループで表示し、< div > でカプセル化された結果を反復しようとしています。私のクエリは機能しており、その間に何かが表示されています...しかし、最新のレコードのみです。これがなぜなのかわかりません。私は PHP に非常に慣れていないので、どんな支援も素晴らしいでしょう。

コード:

<?php
//Connect to database and select table
$conn = mysql_connect("", "", "") or die(mysql_error());
mysql_select_db("substest", $conn) or die(mysql_error());
//Issue query
$get_features = "SELECT ID, Title, DateReceived, Synopsis FROM features ORDER BY ID";
$r_get_features = mysql_query($get_features) or die(mysql_error);

if(mysql_num_rows($r_get_features) < 1)  {
    $display_block = "<div class=\"inner\"><h2>Nothing to display</h2></div>";
}
else {
    while($feat_array = mysql_fetch_array($r_get_features)) {
    $feat_id = $feat_array["ID"];
    $feat_title = stripslashes($feat_array["Title"]);
    $feat_dater = stripslashes($feat_array["DateReceived"]);
    $feat_synopsis = stripslashes($feat_array["Synopsis"]);

    $display_block = "<div class=\"inner\">";
    $display_block .= "<h2>".$feat_title."</h2>";
    $display_block .= "<label for \"id\">ID:</label>";
    $display_block .= "<span class=\"formresult\" id=\"id\">".$feat_id."</span><br />";
    $display_block .= "<label for=\"title\">Title:</label>";
    $display_block .= "<span class=\"formresult\" id=\"title\">".$feat_title."</span><br />";
    $display_block .= "<label for=\"datereceived\">Date Received:</label>";
    $display_block .= "<span class=\"formresult\" id=\"datereceived\">".$feat_dater."</span><br />";
    $display_block .= "<label for=\"synopsis\">Synopsis:</label>";
    $display_block .= "<span class=\"formresult\" id=\"synopsis\">".$feat_synopsis."</span><br />";
    $display_block .= "</div>";
}
}
?>
<html>
<head>
<title>Galway Film Fleadh - View Submitted Feature Films</title>
<link href="css/submissions.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="wrapper">
    <div class="inner">
        <h1>Galway Film Fleadh - View Submitted Films</h1>
    </div>
    <?php
        print $display_block;
    ?>
</div>        
</body>
</html>
4

5 に答える 5

4

$display_blockループの繰り返しごとに上書きしています:

$display_block = "<div class=\"inner\">";

ループのに定義してから、上記の行を次のように変更します。

$display_block .= "<div class=\"inner\">";
于 2013-03-28T16:04:43.793 に答える
3

この行を置き換えます

$display_block = "<div class=\"inner\">";

$display_block .= "<div class=\"inner\">";
于 2013-03-28T16:04:57.873 に答える
2

以来

 $display_block = "<div class=\"inner\">"; 

ループ内にあるため、while ループの反復ごとに div がインスタンス化されます ....

古い値を保持する必要があるため、連結する必要があります...に置き換えます

 $display_block .= "<div class=\"inner\">";
于 2013-03-28T16:10:35.203 に答える
1
$display_block = "<div class=\"inner\">";

while ループ内にあるため、反復するたびに新しい値が取得され、前の値は保持されません。

于 2013-03-28T16:05:24.027 に答える
0

while を次のように変更してみてください。

while($feat_array = mysql_fetch_array($r_get_features, MYSQLI_ASSOC)) {
...
于 2013-03-28T16:04:23.957 に答える