0

Hi everyone,

I'm having eerors with my php code and here's the errror code that i'm recieving:

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/w0638385/public_html/blog/index.php on line 9

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/w0638385/public_html/blog/index.php on line 22 Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/w0638385/public_html/blog/index.php on line 29
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/w0638385/public_html/blog/index.php on line 41

Here's my php code:

<?php
    ini_set('display_errors',1);
    error_reporting(E_ALL & ~E_NOTICE); 

require("header.php");

$sql= "SELECT entries.*, categories.cat FROM entries, categories WHERE entries.cat_id = categories.id ORDER BY dateposted DESC LIMIT 1;";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
echo "<h2 id='title'> <a href='viewentry.php?id=" .$row['id']. "'>" . $row['subject'] . "</a></h2><br />";
echo "<p id='byline'>In <a href='viewcat.php?id=" .$row['cat_id'] . "'>" . $row['cat'] . "</a> - Posted on<span class='datetime'>" . date("D jS F Y g.iA",strtotime($row['dateposted'])) . "</span></p>";
echo "<p>";
echo nl2br($row['$body']);
echo "</p>";

// Comments on this blog entry:

echo "<p id='coments'>";

$commsql = "SELECT name FROM comments WHERE blog_id =" . $row['id'] . " ORDER BY dateposted;";
$commresult = mysqli_query($db, $commsql);
$numrows_comm = mysqli_num_rows($commresult);

// Begin If statement
if ($numrows_comm === 0) {
    echo "(<strong>" .$numrows_comm . "</<strong>) comments : ";
    $i = 1;
}else{
    while ($commrow = mysqli_fetch_array($commresult, MYSQLI_ASSOC)) {
        echo "<a href='viewentry.php?=" . $row['id'] ."#comment" . $i . "'>" .$commrow['name'] . "</a>";

        $i++;
    }
}
echo "</p>";

//  Display the previous 5 blog entries:

$prevsql = "SELECT entries.* ,categories.cat FROM entries, categories WHERE entries.cat_id = categories.id ORDER BY dateposted DESC LIMIT 1, 5;";
$prevresult = mysqli_query($db, $prevsql);
$numrows_prev = mysqli_num_rows($prevresult);

echo "<div id='prev'>";
if($numrows_prev == 0) {
    echo "<p>No previous entries.</p>";
}
else{
    echo "<ul>";
    while ($prevrow = mysqli_fetch_array($prevresult, MYSQLI_ASSOC)) {
        echo "<li> <a href='viewentry.php?id=" . $prevrow['id'] . "'>" . $prevrow['subject'] ."</a></li>";
}
echo "</ul>";
}
echo "</div>";

require("footer.php");
 ?>

What am i doing wrong?

Edited by Its.Captain.Kirk

4
Contributors
9
Replies
10
Views
4 Years
Discussion Span
Last Post by bops
0

It looks like all of these errors are caused by a bad query on line 8.
Try adding or die(mysql_error()); to the end of the query to see if an error message gives you more information.

0

i tried doing that and than all the information went blank except for the header.php and footer.php with the css.

2

i tried doing that and than all the information went blank except for the header.php and footer.php with the css.

Apologizes Zagga didn't mean to cut in,

@Its.Captain.Kirk Can you post your table?

Zagga thinks it's your query which is incorrect:

$sql= "SELECT entries.*, categories.cat FROM entries, categories WHERE entries.cat_id = categories.id ORDER BY dateposted DESC LIMIT 1;";

Which I agree with Zagga!

Zagga from UK so you have to be patience. Everyone at Daniweb comes on in different time zones.

Edited by LastMitch: grammer

0

I can see a potential problem on line 13 - echo nl2br($row['$body']);, there doesn't seem to be a variable named $body anywhere in the code. Did you mean to put echo nl2br($row['body']); i.e. to reference a field named "body" in your database?

As for the MySQL warnings I would check the return values of each of the statements by doing var_dump(). It seems that your first query is returning a boolean value (Probably false) instead of a result set as you might expect. This means there is probably something wrong with your query.

2

I just tried doing that to that and it returns NULL

Can you post your table?

0

That indicates there is something wrong with your initial query if mysqli_query is returning null. You should get into the habit of always checking the return values of functions before proceeding:

$result = mysqli_query($db, @sql);
if ($result) {
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
    if ($row) {
        // Use $row here...
    }
}

That way your code won't try to continue executing after an error has occurred and you should be able to pinpoint the problem easier. As LastMitch said, it might be worth posting your table.

Edited by bops

0

Can you post both the relevant tables, entries and categories? I can't see the full entries table in your PDF either, it cuts off the table at the end of the page. Also, have you tried as Zagga suggested, adding or die(mysqli_error($conn)); (Where $conn is the link to the handle returned by mysqli_connect()) after your mysqli_query() statements? That should hopefully print out a more detailed error message.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.