1

PHPとMySQLを使ってコメントシステムを作ろうとしています。詳細を格納する「コメント」という名前のテーブルを作成しました

ID | 日付 |product_id | ユーザー名 | email_id | コメント
    | | | | | | | | | |
1 |2013-05-07 | 10001 | ジャボン | jabong@jabong.com | これは良い製品です
2 |2013-05-07 | 10001 | ジョン | john@gmail.com | この商品を購入しました

等々


ここで、product_id=10001 を持つすべての行を選択して印刷したいと考えています。次のコードを使用して詳細を印刷しています

  $comment="";
  $id=$_GET['id'];//this is the product_id which is taken from URL
  $query=mysql_query("SELECT * FROM comment WHERE product_id='$id'");
  while($data = mysql_fetch_array($query))
    {
        $name = $data["user_name"];
        $email = $data["email_id"];
        $comment = $data["comment"];
        $date=strftime("%d %b, %Y", strtotime($data["date"]));

        $comment.='<table>
                      <tr>
                        <td>Date: '.$date.'</td>
                      </tr>
                      <tr>
                        <td>Name: '.$name.'</td>
                      </tr>
                      <tr>
                        <td>Email_id: '.$email.'</td>
                      </tr>
                      <tr>
                        <td>Product Review: '.$comment.'</td>
                      </tr>
                    </table><hr />'; 

そして、ボディセクションでそれらをエコーし​​ています。しかし、私は1つの結果しか得ていません。正しいコードを取得するのを手伝ってください。

4

3 に答える 3

0

あなたはこの行を持っています:

$comment = $data["comment"];

これを上書きしています:

$comment.='<table>
                      <tr>
                        <td>Date: '.$date.'</td>
                      </tr>
                      <tr>
                        <td>Name: '.$name.'</td>
                      </tr>
                      <tr>
                        <td>Email_id: '.$email.'</td>
                      </tr>
                      <tr>
                        <td>Product Review: '.$comment.'</td>
                      </tr>
                    </table><hr />'; 

あなたが作っているとき、echo $commentそれは最後のものを表示しています。

変数を変更して完了

何かのようなもの:

 $comment_sql = $data["comment"];
....
    $comment.='<table>
                          <tr>
                            <td>Date: '.$date.'</td>
                          </tr>
                          <tr>
                            <td>Name: '.$name.'</td>
                          </tr>
                          <tr>
                            <td>Email_id: '.$email.'</td>
                          </tr>
                          <tr>
                            <td>Product Review: '.$comment_sql.'</td>
                          </tr>
                        </table><hr />'; 
...
于 2013-05-07T16:12:24.187 に答える
0

まず最も重要なことは、データをきれいにすることです。

$id=mysql_real_escape_string(trim($_GET['id']));
$query=mysql_query("SELECT * FROM comment WHERE product_id='$id'");

while($data = mysql_fetch_array($query))

2 番目の問題は、各ループで変数 $comment を上書きしているため、2 回ループしているにもかかわらず、1 つのレコードしか得られないことです。

remove this: $comment = $data["comment"];
change this: <td>Product Review: '.$comment.'</td>
to this: <td>Product Review: '.$data["comment"].'</td>
于 2013-05-07T16:11:14.873 に答える