简体   繁体   中英

How to get value from <select> and put in sql query?

I'm having problem with getting the value of select and query it to another data. When I run this I'm getting this error:

Warning: Invalid argument supplied for foreach() in C:\\wamp\\www\\pizza.php on line 49

pizza.php

 <ul class="products" >

    <?php
    include 'core/admin/admin_db.php';
    $sql = "SELECT DISTINCT product_id, product_name, product_description, product_image FROM products WHERE pro_cat_id IN ('105','106') GROUP BY product_name";

    echo "<div class='scroll2'>";

    foreach($conn->query($sql) as $row){
        $product_name = $row['product_name'];

        echo "<li>";
        echo "<form class='form-item'>";
        echo "<div class='grow2 pic'><img src='".$row['product_image']."'></div>";
        echo "<h5>".$product_name."</h5>";
        echo "<h6><i>".$row['product_description']."</i></h6> </br>";
        ?>
        <select name="product_size" id="mySelect" onchange="myFunction()">
               <option>
                  Select Size
               </option>

               <?php
               $sql1="SELECT pro_size.pro_size_desc AS size, product_price, products.pro_size_id AS pro_size FROM products INNER JOIN pro_size ON products.pro_size_id=pro_size.pro_size_id WHERE product_name='$product_name'";
        foreach ($conn->query($sql1) as $row1){

            echo "<option value='".$row1['pro_size']."'>".$row1['size']." ---P".$row1['product_price'].".00</option>"; 

        }

               ?>

             </select>
                <?php
            $sample="<p id='demo'></p>";
            echo $sample; ?>



    <script>
    function myFunction() {
        var x = document.getElementById("mySelect").value;
        document.getElementById("demo").innerHTML = "You selected: " + x;
    }
    </script>
        <?php
        $sql6="SELECT product_id from products WHERE product_name='$product_name' AND pro_size_id='$sample'";
        foreach ($conn->query($sql6) as $row6){
            echo "".$row6['product_id']."";
        echo "<input name='product_id' type='hidden' value='{$row6['product_id']}'>";
        }
        echo "<button type='submit'>Add to Cart</button>";
        echo "</form>";

    echo "</li>";

    ?>
    </ul>

You should read the php manual on section mysqli.

You tried to iterate a object. $con->query("query"); - returns if success a mysqli_result object. (See here: http://php.net/manual/de/class.mysqli-result.php )

foreach ($conn->query($sql1) as $row1) {...}

Correct is:

$result = $conn->query("query");
if ($result) {
    while($row = $result->fetch_assoc()) {
        echo $row["product_id"];
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM