Error mysqli_num_rows () expects parameter 1 to be mysqli_result,

1

This error appears: Warning: mysqli_num_rows () expects parameter 1 to be mysqli_result, boolean given in C: \ xampp \ htdocs \ simple-shopping-cart \ index.php on line 74

at the time of loading the web, I'm not sure, if I did bad BD or something else

index

    <?php 
session_start();
$connect = mysqli_connect("localhost", "root", "", "test");

if(isset($_POST["add_to_cart"]))
{
    if(isset($_SESSION["shopping_cart"]))
    {
        $item_array_id = array_column($_SESSION["shopping_cart"], "item_id");
        if(!in_array($_GET["id"], $item_array_id))
        {
            $count = count($_SESSION["shopping_cart"]);
            $item_array = array(
                'item_id'           =>  $_GET["id"],
                'item_name'         =>  $_POST["hidden_name"],
                'item_price'        =>  $_POST["hidden_price"],
                'item_quantity'     =>  $_POST["quantity"]
            );
            $_SESSION["shopping_cart"][$count] = $item_array;
        }
        else
        {
            echo '<script>alert("Item Already Added")</script>';
        }
    }
    else
    {
        $item_array = array(
            'item_id'           =>  $_GET["id"],
            'item_name'         =>  $_POST["hidden_name"],
            'item_price'        =>  $_POST["hidden_price"],
            'item_quantity'     =>  $_POST["quantity"]
        );
        $_SESSION["shopping_cart"][0] = $item_array;
    }
}

if(isset($_GET["action"]))
{
    if($_GET["action"] == "delete")
    {
        foreach($_SESSION["shopping_cart"] as $keys => $values)
        {
            if($values["item_id"] == $_GET["id"])
            {
                unset($_SESSION["shopping_cart"][$keys]);
                echo '<script>alert("Item Removed")</script>';
                echo '<script>window.location="index.php"</script>';
            }
        }
    }
}

?>
<!DOCTYPE html>
<html>
    <head>
        <title>Webslesson Demo | Simple PHP Mysql Shopping Cart</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    </head>
    <body>
        <br />
        <div class="container">
            <br />
            <br />
            <br />
            <h3 align="center">Tutorial - <a href="http://www.webslesson.info/2016/08/simple-php-mysql-shopping-cart.html" title="Simple PHP Mysql Shopping Cart">Simple PHP Mysql Shopping Cart</a></h3><br />
            <br /><br />
            <?php
                $query = "SELECT * FROM tbl_product ORDER BY id ASC";
                $result = mysqli_query($connect, $query);
                if(mysqli_num_rows($result) > 0)
                {
                    while($row = mysqli_fetch_array($result))
                    {
                ?>
            <div class="col-md-4">
                <form method="post" action="index.php?action=add&id=<?php echo $row["id"]; ?>">
                    <div style="border:1px solid #333; background-color:#f1f1f1; border-radius:5px; padding:16px;" align="center">
                        <img src="images/<?php echo $row["image"]; ?>" class="img-responsive" /><br />

                        <h4 class="text-info"><?php echo $row["name"]; ?></h4>

                        <h4 class="text-danger">$ <?php echo $row["price"]; ?></h4>

                        <input type="text" name="quantity" value="1" class="form-control" />

                        <input type="hidden" name="hidden_name" value="<?php echo $row["name"]; ?>" />

                        <input type="hidden" name="hidden_price" value="<?php echo $row["price"]; ?>" />

                        <input type="submit" name="add_to_cart" style="margin-top:5px;" class="btn btn-success" value="Add to Cart" />

                    </div>
                </form>
            </div>
            <?php
                    }
                }
            ?>
            <div style="clear:both"></div>
            <br />
            <h3>Order Details</h3>
            <div class="table-responsive">
                <table class="table table-bordered">
                    <tr>
                        <th width="40%">Item Name</th>
                        <th width="10%">Quantity</th>
                        <th width="20%">Price</th>
                        <th width="15%">Total</th>
                        <th width="5%">Action</th>
                    </tr>
                    <?php
                    if(!empty($_SESSION["shopping_cart"]))
                    {
                        $total = 0;
                        foreach($_SESSION["shopping_cart"] as $keys => $values)
                        {
                    ?>
                    <tr>
                        <td><?php echo $values["item_name"]; ?></td>
                        <td><?php echo $values["item_quantity"]; ?></td>
                        <td>$ <?php echo $values["item_price"]; ?></td>
                        <td>$ <?php echo number_format($values["item_quantity"] * $values["item_price"], 2);?></td>
                        <td><a href="index.php?action=delete&id=<?php echo $values["item_id"]; ?>"><span class="text-danger">Remove</span></a></td>
                    </tr>
                    <?php
                            $total = $total + ($values["item_quantity"] * $values["item_price"]);
                        }
                    ?>
                    <tr>
                        <td colspan="3" align="right">Total</td>
                        <td align="right">$ <?php echo number_format($total, 2); ?></td>
                        <td></td>
                    </tr>
                    <?php
                    }
                    ?>

                </table>
            </div>
        </div>
    </div>
    <br />
    </body>
</html>

<?php
//If you have use Older PHP Version, Please Uncomment this function for removing error 

/*function array_column($array, $column_name)
{
    $output = array();
    foreach($array as $keys => $values)
    {
        $output[] = $values[$column_name];
    }
    return $output;
}*/
?>

BD:

-- phpMyAdmin SQL Dump

- version 4.0.10.18

- link

- Host: localhost: 3306 - Generation Time: Mar 05, 2018 at 03:20 AM - Server version: 5.6.36-cll-lve - PHP Version: 5.6.30

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone="+00: 00";

/ *! 40101 SET @OLD_CHARACTER_SET_CLIENT = @@ CHARACTER_SET_CLIENT /; / ! 40101 SET @OLD_CHARACTER_SET_RESULTS = @@ CHARACTER_SET_RESULTS /; / ! 40101 SET @OLD_COLLATION_CONNECTION = @@ COLLATION_CONNECTION /; / ! 40101 SET NAMES utf8 * /;

-

- Database: testing

-

- Table structure for table% co_of%

CREATE TABLE IF NOT EXISTS tbl_product (    tbl_product int (11) NOT NULL AUTO_INCREMENT,    id varchar (255) NOT NULL,    name varchar (255) NOT NULL,    image double (10,2) NOT NULL,   PRIMARY KEY ( price ) ) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 10;

-

- Dumping data for table id

INSERT INTO tbl_product ( tbl_product , id , name , image ) VALUES (1, 'Samsung J2 Pro', '1.jpg', 100.00), (2, 'HP Notebook', '2.jpg', 299.00), (3, 'Panasonic T44 Lite', '3.jpg', 125.00);

/ *! 40101 SET CHARACTER_SET_CLIENT = @ OLD_CHARACTER_SET_CLIENT /; / ! 40101 SET CHARACTER_SET_RESULTS = @ OLD_CHARACTER_SET_RESULTS /; / ! 40101 SET COLLATION_CONNECTION = @ OLD_COLLATION_CONNECTION * /;

    
asked by Saiyan9 24.08.2018 в 21:10
source

1 answer

0

Add to the if the condition that $result is not empty:

if(!empty($result) AND mysqli_num_rows($result) > 0)

In any case, you should check the query so that it does not return empty.

    
answered by 24.08.2018 / 21:20
source