2017-03-15 13 views
-2

警告:はmysql_num_rows()は、パラメータ1がCに与えられたリソース、boolean型であることを期待:\ xamppの\ htdocsに\ NEWSITE \ view_category.phpライン上の117PHPパラメータの問題、何が間違っていますか?

私が知っているその'if(mysql_num_rows($res2) > 0)'が、それは本当に0にしてください、もし私が次に何をすべきか?

ここにコード

$cid = $_GET['cid']; 
 
\t \t if (isset($_SESSION['uid'])){ 
 
\t \t \t $logged = " | <a href='create_topic.php?cid=".$cid."'>Click Here To Create A Topic</a>"; 
 
\t \t } 
 
\t \t else { 
 
\t \t \t $logged = " | Please log in to create topics in this forum."; 
 
\t \t 
 
\t \t } 
 
\t \t $sql = "SELECT id FROM categories WHERE id='".$cid."' LIMIT 1"; 
 
\t \t $res = mysql_query($sql) or die(mysql_error()); 
 
\t \t if (mysql_num_rows($res) == 1) { 
 
\t \t \t $sql2= "SELECT * FROM topics WHERE category_id='".$cid."' ORDER BY topic_reply_date DESC"; 
 
\t \t \t $res2= (mysql_query($sql2) or die(mysql_error())); 
 
\t \t \t if(mysql_num_rows($res2) > 0) { 
 
\t \t \t \t $topics .= "<table width='100%' style='border-collapse: collapse;'>"; 
 
\t \t \t \t $topics .= "<tr><td colspan='3'><a href='thread.php'>RETURN TO FORUM INDEX</a>".$logged."<hr /></td></tr> "; 
 
\t \t \t \t $topics .= "<tr style='background-color: #dddddd;'><td>TOPIC TITLE</td><td width='65' align='center'>REPLIES</td><td width='65' align='center'>VIEWS</td></tr>"; 
 
\t \t \t \t $topics .= "<tr><td colspan = '3'><hr /></td><tr>"; 
 
\t \t \t \t while ($row = mysql_fetch_assoc($res2)){ 
 
\t \t \t \t \t $tid = $row['id']; 
 
\t \t \t \t \t $title = $row['topic_title']; 
 
\t \t \t \t \t $views = $row['topic_views']; 
 
\t \t \t \t \t $date = $row['topic_date']; 
 
\t \t \t \t \t $creator = $row['topic_creator']; 
 
\t \t \t \t \t $topics .= "<tr><td><a href='view_topic.php?cid=".$cid."&tid=".$tid."'>".$title."</a><hr /><span class ='post_info'>Posted by: ".$creator." on ".$date."</span></td><td align='center'>0</td><td align='center'>".$views."</td></tr>"; 
 
\t \t \t \t \t $topics .= "<tr><td colspan = '3'><hr /></td></tr>"; 
 
\t \t \t \t \t 
 
\t \t \t \t } 
 
\t \t \t \t $topics .= "</table>"; 
 
\t \t \t }else{ 
 
\t \t \t \t echo "<a href='thread.php'>Return to Forum Index</a><hr/>"; 
 
\t \t \t \t echo "<p> There are no topics in this category yet.</p>"; 
 
\t \t \t } 
 
\t \t } 
 
\t \t \t else{ 
 
\t \t \t \t echo "<a href='form.php'>Return to Forum Index</a><hr/>"; 
 
\t \t \t \t echo "<p>You ar trying to view an unexisted category"; 
 
\t \t \t \t 
 
\t \t \t \t 
 
\t \t \t } \t 
 
\t \t ?>

だが戻る他の言語とは対照的に、PHPのブール演算子が常に...ブール値を返すことをそんなに

+0

このエラーは、クエリによって選択されたレコードの数を取得しようとしているが、クエリがエラーのために正常に完了しなかったことを意味します。したがって、まず問合せを修正する必要があります。あなたは、PHP7で削除された廃止予定のAPI(mysql_ *)を使用しています。 mysqli_ *またはPDOに切り替え、SQLインジェクションを防ぐためにavoutの準備文を学んでください –

+0

このコードは[little Bobby Tables](https://xkcd.com/327/)の承認を受けています。 – bishop

答えて

0

注意に感謝します最後に評価された式の値です。したがって、(mysql_query($sql2) or die(mysql_error()))はブール値を返します。同様に、 '||'オペレータはデフォルト値を設定します。代わりに、 '?:'演算子を使用する必要があります。 このケースでは、使用することができます。

$res2 = mysql_query($sql); 
if(!$res2) { 
    die(mysql_error()); 
} 
関連する問題