PHP-код не работает правильно. Все работает, кроме количества первого товара в корзине - PullRequest
0 голосов
/ 11 мая 2018

Как написано в заголовке, мой код работает нормально, за исключением количества для первого продукта, когда есть несколько продуктов, где вы можете удалить, нажав обновление, но не можете изменить количество.

               <?php


                include("functions/functions.php");


                 ?>

                <!DOCTYPE html>
                <html>
                    <head>
                        <meta charset="utf-8">
                        <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.12/css/all.css" integrity="sha384-G0fIWCsCzJIMAVNQPfjH08cyYaUtMwjJwqiRKxxE/rx96Uroj1BtIQ6MLJuheaO9" crossorigin="anonymous">
                        <link type="text/css" rel="stylesheet" href="styles/style.css" />
                        <title>Prodavnica+</title>
                    </head>
                    <body>
                        <div id="header" class="cf">
                            <a href="index.php"><img src="images/logo.png" /></a>
                            <div id="navbar">
                                <ul>
                                    <li>
                                        <a href="index.php"> Home</a>
                                    </li>
                                    <li>
                                        <a href="all_products.php"> Products</a>
                                    </li>
                                    <li>
                                        <a href="customer/my_account.php"> My Account</a>
                                    </li>
                                    <li>
                                        <a href="#"> Sign Up</a>
                                    </li>
                                    <li>
                                        <a href="cart.php"> Shopping Card</a>
                                    </li>
                                    <li>
                                        <a href="#"> Contact Us</a>
                                    </li>
                                </ul>
                            </div> <!-- END navbar -->
                            <div id="search">
                                <form method="get" action="results.php" enctype="multipart/form-data">
                                    <input type="text" name="search_query" placeholder="Search Product" />
                                    <input type="submit" name="search_button" value="Search" />

                                </form>
                            </div>
                        </div> <!-- END header -->
                        <?php cart(); ?>
                        <div id="shop-bar">
                            <p>
                                Total items: <?php totalItems() ?>
                            </p>
                            <p>
                                Total price: <?php totalPrice()?>
                            </p>
                            <a href="cart.php"><i class="fas fa-shopping-cart">   | </i></a>
                            <span> Welcome Guest! </span>

                        </div> <!-- END shop-bar -->
                        <div id="container">

                            <div id="main">

                                <div id="product-box-cart">

                                <form action="" method="post" enctype="multipart/form-data">
                                    <table>

                                            <thead>
                                                <th>Product</th>
                                                <th>Quantity</th>
                                                <th>Remove</th>
                                                <th>Price</th>
                                            </thead>
                                            <tbody>
                                                <?php

                                                    $total = 0;

                                                    global $con;

                                                    $ip = getIp();

                                                    $run_price = mysqli_query($con,"SELECT * FROM cart WHERE ip_add = '$ip'");

                                                    while($row_pro_price = mysqli_fetch_array($run_price)) {

                                                        $pro_id = $row_pro_price['p_id'];
                                                        $pro_qty = $row_pro_price['qty'];

                                                        $run_pro_price2 = mysqli_query($con,"SELECT * FROM products WHERE product_id = '$pro_id'") or die(mysqli_error($con));

                                                        while($row_pro_price2 = mysqli_fetch_array($run_pro_price2)) {

                                                            $pro_price = array($row_pro_price2['product_price']);
                                                            $pro_title = $row_pro_price2['product_title'];
                                                            $product_image = $row_pro_price2['product_image'];
                                                            $single_price = $row_pro_price2['product_price'];



                                                            $pro_price_values = array_sum($pro_price);


                                                            $total += $pro_price_values;





                                                ?>

                                                <tr>
                                            <td>
                                                <h2><?php echo $pro_title ?></h2>
                                                <img src="admin/product_images/<?php echo $product_image;?>">

                                            </td>
                                            <td>
                                                <input type="text" name="qty[]" value = "<?php echo $pro_qty;?>">
                                            </td>

                                            <td>
                                                <input type="checkbox" name="remove[]" value="<?php echo $pro_id ?>" />
                                            </td>
                                            <td>
                                                <?php echo "$" . $single_price; ?>
                                            </td>


                                            </tr>

                                            </tbody>


                <?php }} ?>
                                    </table>

                                    <p>
                                    <b>  Total Value: </b>  <?php  echo "$" . $total;?>
                                    </p>
                                    <div id="check-buttons">
                                    <input type="submit" name="update_cart" value="Update Cart" />
                                    <input type="submit" name="continue" value="Continue Shopping" />
                                    <a href="checkout.php"><input type="button" value="Checkout" /></a>


                                    </div>
                                </form>

                                <?php
                                //pressing update cart ->
                                if(isset($_POST['update_cart'])) {

                                    //removing the products
                                    if(isset($_POST['remove'])) {
                                    foreach($_POST['remove'] as $remove_id) {

                                        $delete_product = "DELETE FROM cart WHERE p_id = '$remove_id' AND ip_add = '$ip'";

                                        $run_delete = mysqli_query($con,$delete_product);

                                        if($run_delete) {

                                            echo "<script>window.open('cart.php','_self')</script>";
                                        }
                                        }
                                    }

                                        //quantity of product
                                        if(isset($_POST['qty'])) {

                                            foreach($_POST['qty'] as $qty_id) {

                                                $update_qty = "UPDATE cart SET qty = '$qty_id' WHERE p_id = '$pro_id' AND ip_add = '$ip'";

                                                $run_qty = mysqli_query($con, $update_qty) or die(mysqli_error($con));
                                            }

                                    }
                                    }


                                    elseif(isset($_POST['continue'])) {

                                    echo "<script>window.open('index.php','_self')</script>";
                                }

                                 ?>


                                </div> <!-- END product box -->

                            </div> <!-- END main -->


                            <div id="side">
                                <div id="side-category">
                                    <h2>Categories</h2>
                                    <hr />
                                    <table id="mw">
                                        <tr>
                                            <?php
                                            getBrands();

                                             ?>
                                        </tr>
                                    </table>

                                    <ul>

                                        <?php
                                        getCats();
                                         ?>

                                    </ul>
                                </div><!-- END side-category-->

                            </div> <!-- END side -->

                        </div> <!--END container -->

                        <div id="footer">
                            <p>&copy; 2018 by </p>
                        </div> <!-- END footer -->

                    </body>
                </html>

Этомоя страница cart.php, где выполняется код.Переменная $ pro_id из метода GET для добавления в корзину.Поэтому $ pro_id = $ _GET [add_cart], который находится в index.php.Я также включу файл index.php ниже, так что при необходимости можно посмотреть.

Быстрый ответ будет много значить.Спасибо

             ?>

            <!DOCTYPE html>
            <html>
                <head>
                    <meta charset="utf-8">
                    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.12/css/all.css" integrity="sha384-G0fIWCsCzJIMAVNQPfjH08cyYaUtMwjJwqiRKxxE/rx96Uroj1BtIQ6MLJuheaO9" crossorigin="anonymous">
                    <link type="text/css" rel="stylesheet" href="styles/style.css" />
                    <title>Prodavnica+</title>
                </head>
                <body>
                    <div id="header" class="cf">
                        <a href="index.php"><img src="images/logo.png" /></a>
                        <div id="navbar">
                            <ul>
                                <li>
                                    <a href="index.php"> Home</a>
                                </li>
                                <li>
                                    <a href="all_products.php"> Products</a>
                                </li>
                                <li>
                                    <a href="customer/my_account.php"> My Account</a>
                                </li>
                                <li>
                                    <a href="#"> Sign Up</a>
                                </li>
                                <li>
                                    <a href="cart.php"> Shopping Card</a>
                                </li>
                                <li>
                                    <a href="#"> Contact Us</a>
                                </li>
                            </ul>
                        </div> <!-- END navbar -->
                        <div id="search">
                            <form method="get" action="results.php" enctype="multipart/form-data">
                                <input type="text" name="search_query" placeholder="Search Product" />
                                <input type="submit" name="search_button" value="Search" />

                            </form>
                        </div>
                    </div> <!-- END header -->
                    <?php cart(); ?>
                    <div id="shop-bar">
                        <p>
                            Total items: <?php totalItems() ?>
                        </p>
                        <p>
                            Total price: <?php totalPrice()?>
                        </p>
                        <a href="cart.php"><i class="fas fa-shopping-cart">   | </i></a>
                        <span> Welcome Guest! </span>

                    </div> <!-- END shop-bar -->
                    <div id="container">

                        <div id="main">

                            <div id="product-box">
                                <?php



                                if(isset($_GET['cat'])) {
                                getCatPro();
                            }
                                elseif(isset($_GET['brand'])) {
                                    getBrandPro();
                                }
                                else {
                                    getPro();
                                }
                                ?>
                            </div> <!-- END product box -->

                        </div> <!-- END main -->


                        <div id="side">
                            <div id="side-category">
                                <h2>Categories</h2>
                                <hr />
                                <table id="mw">
                                    <tr>
                                        <?php
                                        getBrands();

                                         ?>
                                    </tr>
                                </table>

                                <ul>

                                    <?php
                                    getCats();
                                     ?>

                                </ul>
                            </div><!-- END side-category-->

                        </div> <!-- END side -->

                    </div> <!--END container -->

                    <div id="footer">
                        <p>&copy; 2018 by Djordje Stamenkovic</p>
                    </div> <!-- END footer -->

                </body>
            </html>

functions.php

            <?php
            //database connection

            $con = mysqli_connect("localhost","root","","eprodavnica");

            // function for getting ip address of the client
            /*In this PHP function, first attempt is to get the direct IP address of client’s machine, if not available then try for forwarded for IP address using HTTP_X_FORWARDED_FOR. And if this is also not available, then finally get the IP address using REMOTE_ADDR.*/

            function getIp()
            {
                if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
                {
                  $ip=$_SERVER['HTTP_CLIENT_IP'];
                }
                elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))   //to check ip is pass from proxy
                {
                  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
                }
                else
                {
                  $ip=$_SERVER['REMOTE_ADDR'];
                }
                return $ip;
            }

            //adding a single product to cart

            function cart() {

                if(isset($_GET['add_cart'])) {

                    global $con;

                    $ip = getIp();

                    $pro_id = $_GET['add_cart'];

                    $run_check = mysqli_query($con,"SELECT * FROM cart WHERE ip_add = '$ip' AND p_id = '$pro_id'") or die(mysqli_error($con));

                    if(mysqli_num_rows($run_check)>0) {

                        echo "";
                    } else {

                    $run_pro = mysqli_query($con, "INSERT INTO cart (p_id, ip_add, qty) values ('$pro_id','$ip',1)") or die(mysqli_error($con));

                    echo "<script>window.open('index.php','_self')</script>";
                }
                }
            }

            //getting the total added items

            function totalItems() {
                if(isset($_GET['add_cart'])) {

                    global $con;

                    $ip = getIp();

                    $run_items = mysqli_query($con, "SELECT * FROM cart WHERE ip_add='$ip'");

                    $count_items = mysqli_num_rows($run_items);

                } else {
                    global $con;

                    $ip = getIp();

                    $run_items = mysqli_query($con, "SELECT * FROM cart WHERE ip_add='$ip'") or die(mysqli_error($con));

                    $count_items = mysqli_num_rows($run_items);
                }

                echo $count_items;

            }

            //getting the total Price of items in the cart

            function totalPrice() {

                $total = 0;

                global $con;

                $ip = getIp();

                $run_price = mysqli_query($con,"SELECT * FROM cart WHERE ip_add = '$ip'");

                while($row_pro_price = mysqli_fetch_array($run_price)) {

                    $pro_id = $row_pro_price['p_id'];

                    $run_pro_price2 = mysqli_query($con,"SELECT * FROM products WHERE product_id = '$pro_id'");

                    while($row_pro_price2 = mysqli_fetch_array($run_pro_price2)) {

                        $pro_price = array($row_pro_price2['product_price']);



                        $pro_price_values = array_sum($pro_price);


                        $total += $pro_price_values;



                    }

                }
                echo "$" . $total;
            }


            //getting the categories

            function getCats() {

                global $con;

                $run_cats = mysqli_query($con,"SELECT * FROM categories");

                while($row_cats = mysqli_fetch_array($run_cats)) {

                    $cat_id = $row_cats['cat_id'];
                    $cat_title = $row_cats['cat_title'];

                    echo "<li>
                        <a href='index.php?cat=$cat_id'>$cat_title</a>
                    </li>";
                }


            }

            //getting the brands

            function getBrands() {

                global $con;

                $run_brands = mysqli_query($con,"SELECT * FROM brands");

                while($row_brands = mysqli_fetch_array($run_brands)) {

                    $brand_id = $row_brands['brand_id'];
                    $brand_title = $row_brands['brand_title'];

                    echo "<td>

                        <a href='index.php?brand=$brand_id'>$brand_title</a>

                    </td>";
                }


            }


            //getting products on main page

            function getPro() {

                if(!isset($_GET['cat'])){
                    if(!isset($_GET['brands'])) {





                global $con;

                $run_pro = mysqli_query($con,"SELECT * FROM products ORDER BY RAND() LIMIT 0,9");

                while($row_pro = mysqli_fetch_array($run_pro)) {

                    $pro_id = $row_pro['product_id'];
                    $pro_cat = $row_pro['product_cat'];
                    $pro_brand = $row_pro['product_brand'];
                    $pro_title = $row_pro['product_title'];
                    $pro_price = $row_pro['product_price'];
                    $pro_image = $row_pro['product_image'];

                        echo "
                        <div class='single-product cf'>

                        <h4><a href='#'>$pro_title</a></h4>
                        <a href='details.php?pro_id=$pro_id'><img src='admin/product_images/$pro_image' /></a>
                        <p>
                        Price: $ $pro_price
                        </p>

                        <a href='index.php?add_cart=$pro_id'><button>Add To Cart</button></a>
                        </div>

                        ";

                }
                }
            }
            }


            //getting the category products

            function getCatPro() {

                if(isset($_GET['cat'])){



                    $cat_id = $_GET['cat'];


                global $con;

                $run_cat_pro = mysqli_query($con,"SELECT * FROM products WHERE product_cat = '$cat_id'");



                $count_cats = mysqli_num_rows($run_cat_pro);

                if($count_cats == 0) {

                    echo "<div class='no-cat'>

                    <h1> We're sorry! There are currently no products with that category. :(</h1>

                    </div>";
                } else {

                while($row_cat_pro = mysqli_fetch_array($run_cat_pro)) {

                    $pro_id = $row_cat_pro['product_id'];
                    $pro_cat = $row_cat_pro['product_cat'];
                    $pro_brand = $row_cat_pro['product_brand'];
                    $pro_title = $row_cat_pro['product_title'];
                    $pro_price = $row_cat_pro['product_price'];
                    $pro_image = $row_cat_pro['product_image'];

                        echo "
                        <div class='single-product cf'>

                        <h4><a href='#'>$pro_title</a></h4>
                        <a href='details.php?pro_id=$pro_id'><img src='admin/product_images/$pro_image' /></a>
                        <p>
                        Price: $ $pro_price
                        </p>

                        <a href='index.php?add_cart=$pro_id'><button>Add To Cart</button></a>
                        </div>

                        ";

                }
                }
            }
            }

            //getting the brand products (in this case sex)

            function getBrandPro() {

                if(isset($_GET['brand'])){



                    $brand_id = $_GET['brand'];


                global $con;

                $run_brand_pro = mysqli_query($con,"SELECT * FROM products WHERE product_brand = '$brand_id'") or die(mysqli_error($con));

                $count_brands = mysqli_num_rows($run_brand_pro);

                if($count_brands == 0) {

                    echo "<div class='no-cat'>

                    <h1> We're sorry! There are currently no products for that sex. :(</h1>

                    </div>";
                } else {

                while($row_brand_pro = mysqli_fetch_array($run_brand_pro)) {

                    $pro_id = $row_brand_pro['product_id'];
                    $pro_cat = $row_brand_pro['product_cat'];
                    $pro_brand = $row_brand_pro['product_brand'];
                    $pro_title = $row_brand_pro['product_title'];
                    $pro_price = $row_brand_pro['product_price'];
                    $pro_image = $row_brand_pro['product_image'];

                        echo "
                        <div class='single-product cf'>

                        <h4><a href='#'>$pro_title</a></h4>
                        <a href='details.php?pro_id=$pro_id'><img src='admin/product_images/$pro_image' /></a>
                        <p>
                        Price: $ $pro_price
                        </p>

                        <a href='index.php?add_cart=$pro_id'><button>Add To Cart</button></a>
                        </div>

                        ";

                }
                }
            }

            }

ПРИМЕЧАНИЕ. Работает нормально, когда в корзине есть один товар.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...