Lid |
|
Hoi allemaal,
Ik krijg onderstaande warning als ik een "mysql_num_rows" (regelnummer 22) telling wil uitvoeren op een SQL SELECT script:
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:\wamp\www\website\blog\inc\posts.inc.php on line 39.
Ik zie wel de opmerking "bla" als records niet gevuld zijn. Het SELECT script werkt ook goed, dat is getest. Maar hoe voorkom ik deze lelijke warning?
Groeten Erwin
Script:
function get_posts(){
$sql = "SELECT
`posts`.`post_id` AS `id`,
`posts`.`post_title` AS `title`,
LEFT(`posts`.`post_body`, 512) AS `preview`,
`posts`.`post_user` AS `user`,
DATE_FORMAT(`posts`.`post_date`,'%d/%m/%Y %H:%i:s') AS `date`,
`comments`.`total_comments`,
DATE_FORMAT (`comments`.`last_comment`, '%d/%m/%Y %H:%i:s') AS `last_comment`
FROM `posts`
LEFT JOIN (
SELECT
`post_id`,
COUNT(`comment_id`) AS `total_comments`,
MAX(`comment_date`) AS `last_comment`
FROM `comments`
GROUP BY `post_id`
) AS `comments`
ON `posts`.`post_id` = `comments`.`post_id`
ORDER BY `posts`.`post_date` DESC";
$num_rows = mysql_num_rows($sql);
if ($num_rows == 0)
echo "bla";
$posts = mysql_query($sql);
$rows = array();
while(($row = mysql_fetch_assoc($posts)) !== false){
$rows[] = array(
'id' => $row['id'],
'title' => $row['title'],
'preview' => $row['preview'],
'user' => $row['user'],
'date' => $row['date'],
'total_comments' => ($row['total_comments'] === null) ? 0 : $row['total_comments'],
'last_comment' => ($row['last_comment'] === null) ? 'never' : $row['last_comment']
);
}
return $rows;
}
function get_posts(){ $sql = "SELECT `posts`.`post_id` AS `id`, `posts`.`post_title` AS `title`, LEFT(`posts`.`post_body`, 512) AS `preview`, `posts`.`post_user` AS `user`, DATE_FORMAT(`posts`.`post_date`,'%d/%m/%Y %H:%i:s') AS `date`, `comments`.`total_comments`, DATE_FORMAT (`comments`.`last_comment`, '%d/%m/%Y %H:%i:s') AS `last_comment` FROM `posts` LEFT JOIN ( SELECT `post_id`, COUNT(`comment_id`) AS `total_comments`, MAX(`comment_date`) AS `last_comment` FROM `comments` GROUP BY `post_id` ) AS `comments` ON `posts`.`post_id` = `comments`.`post_id` ORDER BY `posts`.`post_date` DESC"; if ($num_rows == 0) 'id' => $row['id'], 'title' => $row['title'], 'preview' => $row['preview'], 'user' => $row['user'], 'date' => $row['date'], 'total_comments' => ($row['total_comments'] === null) ? 0 : $row['total_comments'], 'last_comment' => ($row['last_comment'] === null) ? 'never' : $row['last_comment'] ); } return $rows; }
|