MillerMedia
MillerMedia

Reputation: 3671

Cannot Display Data from MySQL table

I've got a pretty standard call to a MySQL database and for some reason I can't get the code to work. Here's what I have:

$mysqli = mysqli_connect("localhost","username","password");
if (!$mysqli)
  {
  die('Could not connect: ' . mysqli_error($mysqli));
  }
session_start();
$sql = "SELECT * FROM jobs ORDER BY id DESC";
$result = $mysqli->query($sql);
$num_rows = mysqli_num_rows($result);

Now, first, I know that it is connecting properly because I'm not getting the die method plus I added an else conditional in there previously and it checked out. Then the page displays but I get the errors:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 11

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in blablabla/index.php on line 12

I've double-checked my database and there is a table called jobs with a row of "id" (it's the primary row). The thing that confuses me is this is code that I literally copied and pasted from another site I built and for some reason the code doesn't work on this one (I obviously copy and pasted it and then just changed the table name and rows accordingly).

I saw the error and tried:

$num_rows = $mysqli_result->num_rows;
$row_array = $mysqli_result->fetch_array;

and that fixed the errors but resulted in no data being passed (because obviously $mysqli_result has no value). I don't know why the error is calling for that (is it a difference in version of MySQL or PHP from the other site)?

Can someone help me track down the problem? Thanks so much. Sorry if it's something super simple that I'm overlooking, I've been at it for a while.

Upvotes: 0

Views: 2024

Answers (5)

ROY Finley
ROY Finley

Reputation: 1416

Try this:

 session_start();
 $mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
      if ($mysqli->connect_errno)
       {
           echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
           $mysqli->close();
       }
           $query ="SELECT * FROM jobs ORDER BY id DESC";
            $values = $mysqli->query($query);
                if($values->num_rows != 0)
                    {
                        while($row = $values->fetch_assoc())
                        { 
                            //your results echo here
                        } 
                    }
                    else
                        {
                            //if no results say so here
                        }

Upvotes: 1

donlaur
donlaur

Reputation: 1287

I believe that schtever is correct, I do not think you are selecting the database. It isn't in the code snip and if you search online you see other people with similar errors and it was because the database wasn't selected. Please let us know if you selected a database before anything else is checked. Thanks.

Upvotes: 1

Lenin
Lenin

Reputation: 610

See this manual for mysqli_connect you can select the database right in this function.

Upvotes: -1

senK
senK

Reputation: 2802

You didn't selected the database

$mysqli = mysqli_connect("localhost","username","password","database");

Upvotes: 5

Yogesh Suthar
Yogesh Suthar

Reputation: 30488

The problem is you haven't selected the database.

use this code for select database.

$mysqli = mysqli_connect("localhost","username","password");
mysqli_select_db("db_name",$mysqli);

You have to select database in order to fire mysql queries otherwise it will give you error.

Upvotes: 2

Related Questions