2017-09-09 20 views
0

私にチュートリアルをリンクしてください。または、最近追加されたニュースのみにコメントが表示されるようにする方法を教えてください。どのようにして1つだけを選択しますか? comments.phpでPHPニュース最新ニュース1つのニュース

<?php 
       echo "<form action='".setComments($conn)."' method='post'> 
        <input type='hidden' name='username'><br> 
        <input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'><br> 
        <label>Comment:<br> <textarea cols='50' rows='6' name='message' ></textarea></label><br> 
        <button type='submit' name='commentSubmit' class='btn btn-default'>Comment</button> 
        </form>"; 
       getComments($conn); 
       ?> 

        <div class="comment_div"> 
        <?php 
        $query = "SELECT * FROM comment order by date desc"; 
        mysqli_query($conn,$query) or die("Error queryng db"); 
        $result = mysqli_query($conn,$query); 
        while ($row = mysqli_fetch_array($result)){ 
         $name = $row['name']; 
         $com = $row['comment']; 
         $date = $row['date']; 
         echo " 
          <div class='commentinfo'> 
          <p class='username'>სახელი: $name ; თარიღი: $date</p> 
          <p class='comment'>კომენტარი: <br> $com</p> 
          </div> 
          "; 
        } 
        ?> 

:私はニュースだけを表示したい

<?php 
function setComments($conn) { 
    if (isset($_POST['commentSubmit'])) { 
     $uid = $_POST['username']; 
     $date = $_POST['date']; 
     $message = $_POST['message']; 

     $sql = "INSERT INTO comments (username,date,message) VALUES ('$uid','$date', '$message')"; 
     $result = mysqli_query($conn,$sql); 
    } 
} 

function getComments ($conn) { 
    $sql = "SELECT * FROM comments"; 
    $result = mysqli_query($conn,$sql); 
    while ($row = mysqli_fetch_array($result)) { 
     echo $row['username']."<br>"; 
     echo $row['date']."<br>"; 
     echo $row['message']."<br><br>"; 
    }; 
    echo " 
     <form method='post' action'editcomment.php'> 
      <input type='hidden' name='id' value='".$row['id']."'> 
      <input type='hidden' name='username' value='".$row['username']."'> 
      <input type='hidden' name='date' value='".$row['date']."'> 
      <input type='hidden' name='message' value='".$row['message']."'> 
      <button>შესწორება</button> 
    "; 

} 

コメントを投稿AN私はすべてのニュースのコメント他のニュースを持っています。あなたは、それは次のようになりますので、あなたのクエリにLIMITORDER BYタグを使用する必要が

+0

送信ボタンを押した後に最後にコメントを入力したいだけですか? –

+0

いいえ、私はどこに私が何かのニュースを追加したい、誰かがコメントをこのニュースのコメントのみを表示する他のすべてのコメントではありません。私の悪い英語には申し訳ありません –

+0

あなたは今、SQLインジェクションに脆弱です。あなたは準備されたステートメントを使用して開始する必要があります – Samuel

答えて

0

$sql = "SELECT * FROM comments ORDER BY id DESC LIMIT 1"; 

このクエリは、2つの新しいパラメータを持っているが、我々は我々が得ることができるので、IDでそれを注文する必要があります降順(それはDESCが使用される)であり、その数を1に制限します。もっと必要な場合は番号を変更することができます。あなたはあなたがあなたのクエリでWHERE句を使用することができ引っ張るしたい特定の項目がある場合は

は:WHERE id = #call for id#


コメントのみを記事に立ち上がることを確認するためには、あなたは、識別子のいくつかの並べ替えを作成する必要がありますあなたのコメントの行とあなたの記事でそれを比較します。

// get the post ID from the database 
$post_id = $row['id']; 

// now that you have the post id, and assuming you have an identifier add the WHERE clause 
$sql = "SELECT * FROM comments WHERE comment_post_id = " . $post_id; 

comment_post_idは、彼らがしている現在のポストから、彼らはコメントを入力したときにすることを追加追加するには

だから、あなたは、あなたの選択クエリは、where句が欠落している彼らのcomment_post_idは12

+0

多分私は間違ってMySQLの関係を持っていないとその必要はありますか? –

+0

あなたは何を求めていますか?私は理解できません申し訳ありません – Samuel

+0

私はmysqlで間違いがあると思う、ニュースIDとコメントIDの間に関係はなく、それは必要ですか?もっと確実にするために、私は1つの記事を追加します。誰かがコメントを残すと、そのコメントはその記事だけに固執し、他の記事には適用されません。 –

0

に等しくなければならないというポストで行われたコメントidが12でポストされている場合。それはのように見えるはずです。

$sql ="select * from comments where news_id='".$news_id."'; 
+0

多分私は間違っているMySQLの関係を持っていないとその必要がありますか? –

+0

はい。その特定のニュースのコメントを取得する場合は、コメント表のみにnews_idフィールドが必要です。 –

関連する問題