2017-01-05 9 views
0

こんにちは私は私のデータベースの関連テーブル 'コメント'からコメントを取得しようとしています。コメントがない場合は表示したい: '結果なし'、コメントボックスを表示するコメントがある場合は日付とコメントのメッセージを入力する。Phpコメントを取得

function getComments($conn) { 
$sql = ("SELECT * FROM comments ORDER BY cid DESC LIMIT 5"); 
$result = $conn->query($sql); 
foreach($row as $result) { 
    if(!mysql_num_rows($sql)) 
{ 
echo 'No results'; 
} 
else 
{ 
echo "<div class='comment-box2'><p>"; 
     echo $row['users']."<br>"; 
     echo $row['date']."<br>"; 
     echo nl2br($row['message']); 
    echo "</p> 
    </div>"; 
} 
} 
} 
+1

はそうでもないこの質問 –

+1

は異なっています。 mysqli/PDOを使用してクエリを実行してから、mysql_ *を使用して行数を取得しています。両者は噛み合わない。使用している新しいAPIに関数を使用するには、mysql_num_rowsを切り替えます。 – aynber

+0

mysql_num_rows($ result)をmysqli_num_rows($ conn、$ result)に変更する必要があります。 mysql_num_rowsは推奨されていないバージョンです。mysqliはあなたのクエリを実行しているものの新しいバージョンですが、カウントは – Boardy

答えて

0

mysqlmysqliのように、あなたが作成した他の多くの間違いとともに、コードを正しく注文しなかったと思います。 (次の2つの違いの説明についてはthis questionを見ることができます。)これを試してみてください:

function getComments($conn) 
{ 
    $sql = ("SELECT * FROM comments ORDER BY cid DESC LIMIT 5"); 
    $result = $conn->query($sql); 

    //This line should come next; 
    //you check the number of rows in the result of the query returned, 
    //not in the SQL statement 
    if(!($result->num_rows)) { //looks like you're using MySQLi, so you should do things properly 
    echo 'No results'; 
    } else { 

    //Then iterate over the rows if there were any 
    while($row = $result->fetch_assoc()) { //again, using MySQLi 
    echo "<div class='comment-box2'><p>"; 
    echo $row['users']."<br>"; //I'm pretty sure this should be singular 
    echo $row['date']."<br>"; 
    echo nl2br($row['message']); 
    echo "</p> </div>"; 
    } 
    } 
} 
+0

これはmysqliとmysql_ *を混ぜているという事実には触れません。 – aynber

+0

しかし、それは彼の問題の別のアドレスですが、彼のコードには多すぎるエラーがありますが、 –

+0

@yennberはそれを指摘してくれてありがとう...答えを更新しましょう。 – shalvah

関連する問題