0

I am trying to separate page with php and mysql but show me error this

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in D:\XAMPP\htdocs\all.php on line 17

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\XAMPP\htdocs\all.php on line 58

My PHP code.

<html>
<head>
<title>All </title>
</head>
<body>
<?php
$dbhost = "localhost";
 $dbusername = "root";
 $dbpassword = "";
 $dbname = "drill";
 $mysqli = new mysqli ($dbhost, $dbusername, $dbpassword, $dbname);
    
$strSQL = "SELECT * FROM data ";
$objQuery = mysqli_query($mysqli,$strSQL);

$Num_Rows = mysqli_num_rows($objQuery);

$Per_Page = 2;   // Per Page

$Page = $_GET["Page"];
if(!$_GET["Page"])
{
    $Page=1;
}

$Prev_Page = $Page-1;
$Next_Page = $Page+1;

$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
    $Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
    $Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
    $Num_Pages =($Num_Rows/$Per_Page)+1;
    $Num_Pages = (int)$Num_Pages;
}


$strSQL .=" order  by no ASC LIMIT $Page_Start , $Per_Page";// no is autoincrement

$objQuery = mysqli_query($mysqli,$strSQL);
?>
<table width="600" border="1">
  <tr>
    <th width="91"> <div align="center">no</div></th>
    <th width="98"> <div align="center">campaign </div></th>
    <th width="198"> <div align="center">url</div></th>
    
  </tr>
<?php
while($objResult = mysqli_fetch_array($objQuery,MYSQLI_ASSOC))
{
?>
  <tr>
    <td><div align="center"><?php echo $objResult["no"];?></div></td>
    <td><div align="center"><?php echo $objResult["camp"];?></div></td>
    <td><div align="center"><?php echo $objResult["url"];?></div></td>
    
  </tr>
<?php
}
?>
</table>

<br>
Total <?php echo $Num_Rows;?> Record : <?php echo $Num_Pages;?> Page :
<?php
if($Prev_Page)
{
    echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";
}

for($i=1; $i<=$Num_Pages; $i++){
    if($i != $Page)
    {
        echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]";
    }
    else
    {
        echo "<b> $i </b>";
    }
}
if($Page!=$Num_Pages)
{
    echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page'>Next>></a> ";
}
mysqli_close($mysqli);
?>
</body>
</html>

Please help me.

Community
  • 1
  • 1
sammy
  • 113
  • 1
  • 1
  • 11
  • 1
    Looks like your query is failing as that would make `mysqli_query` return boolean false rather then a `mysqli_result`. Use `echo $mysqli->error;` right behind the query command to display the error message. – OscarJ Mar 01 '16 at 05:02
  • @OscarJ show result "Table 'drill.data' doesn't exist" – sammy Mar 01 '16 at 05:47
  • Finally I got It because my table data not same name. thank you everybody. – sammy Mar 01 '16 at 05:57

4 Answers4

0

Try to create connection like this.

$con=mysqli_connect($dbhost, $dbusername, $dbpassword, $dbname);

and then pass this connection to the function

$objQuery = mysqli_query($con,$strSQL);

Hope this will solve the problem

A J
  • 3,827
  • 13
  • 38
  • 52
0

try

if($objQuery){
$Num_Rows = mysqli_num_rows($objQuery);
}
safin chacko
  • 1,332
  • 1
  • 10
  • 18
0

$strSQL = "SELECT * FROM data ";

Is there a problem with the space between data and the "?

Z. Dailey
  • 131
  • 5
-1

According to the PHP documentation for mysqli_query, the function:

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

Curious if the line $objQuery = mysqli_query($mysqli,$strSQL); is failing, which is returning false, which is then throwing the error on the next line because it is a boolean, not the object you are expecting.

I'm not super great with mysqli functions, but try replacing this block:

$objQuery = mysqli_query($mysqli,$strSQL);

$Num_Rows = mysqli_num_rows($objQuery);

With this:

$objQuery = mysqli_query($mysqli,$strSQL);

if ($objQuery == false) {
    echo $mysqli->error;
    exit;
}

$Num_Rows = mysqli_num_rows($objQuery);

None of that code is tested, I should note, so you may need to play with it a little.

In the end, the goal here is to try and see what error is being thrown if there is one. If there isn't an error, then there's some more debugging to do, but at least this is a start.

Here's the documentation for mysqli_query: http://php.net/manual/en/mysqli.query.php

And for mysqli::$error: http://php.net/manual/en/mysqli.error.php

Hope that at least helps you get to the bottom of it.

stratedge
  • 2,690
  • 16
  • 15