如何按类别获取项目

时间:2016-10-24 23:18:45

标签: php mysqli

基本上,我有一个类别列表,我正在迭代形式mysqli

<div style="width:20%; float:left;">
            <h3>Categories</h3>
            <?php while($categories = $resultproductcategories->fetch_assoc()){?> 
            <div class="rows">
                <input type="button" name="<?php echo $categories['id'] ?>" value="<?php echo $categories['category?>" />;
            </div>
            <?php }?>
        </div>

现在我想要的是,如果我按任何类别,它应该相应地获取数据有我的代码提取

    $stmtproducts = $mysqli->prepare("SELECT * FROM store_products sp INNER JOIN store_product_categories spc ON sp.product_category=spc.id WHERE sp.store_id=? AND sp.category=? LIMIT $count, 10");
$stmtproducts->bind_param("ii",$_SESSION['storeid'],$_POST['']);
$stmtproducts->execute();
$resultproducts = $stmtproducts->get_result();
$num=$resultproducts->num_rows;
echo $num;
$stmtproducts->close();

我很困惑,如果有一个特定的输入名称,那么我会通过isset($_POST['name'])得到它但没有具体名称......我想不出如何将类别发送到mysql。

<div id="divTransactional" style="width:70%;padding-left:5%; float:left;">
            <?php if($num>0) {?>
            <table class="table table-responsive table-hover" id="tableProducts">
                <h3>Products</h3>
                <tbody>
                    <?php for($i=0;$i<$num;$i++) { $products = $resultproducts->fetch_assoc();//while($products = $resultproducts->fetch_assoc()) {?>
                    <tr>
                        <td>Code: <?php echo $products['product_code'];?></td><td>Added On: <?php echo $products['product_date'];?></td>
                    </tr>
                    <tr>
                        <td>Name: <?php echo $products['product_name'];?></td>
                    </tr>
                    <tr>
                        <td>Category: <?php echo $products['category'];?></td> 
                    </tr>
                    <tr>
                        <td>Description: <?php echo $products['product_desc'];?></td> 
                    </tr>
                    <tr>
                        <td>Price: <?php echo $products['product_price'];?></td><td>Discount: <?php echo $products['product_discount'];?></td>  
                    </tr>

                    <tr style="width:100px; height:100px;">
                        <td><img src="../../uploads/store/products/<?php echo $products['product_image1'];?>"  style="width:100px; height:100px;"/></td>
                        <td><img src="../../uploads/store/products/<?php echo $products['product_image2'];?>"  style="width:100px; height:100px;"/></td>
                        <td><img src="../../uploads/store/products/<?php echo $products['product_image3'];?>"  style="width:100px; height:100px;"/></td>
                        <td><img src="../../uploads/store/products/<?php echo $products['product_image4'];?>"  style="width:100px; height:100px;"/></td>
                    </tr>
                    <?php }?>
                </tbody>
                <?php if($num >= 10) { ?>
                <a href="<?php echo $_SERVER['PHP_SELF'].'?count='.($count+10)?>">Next</a>&nbsp;
                <?php } ?>
                <?php $prev = $count - 10;
                if ($prev >= 0){?>
                <a href=" <?php echo $_SERVER['PHP_SELF'].'?count='.$prev ?>">Previous</a>
                <?php }?>



            </table>
                <?php if($num >= 10) { ?>
                <a href="<?php echo $_SERVER['PHP_SELF'].'?count='.($count+10)?>">Next</a>&nbsp;
                <?php } ?>
                <?php $prev = $count - 10;
                if ($prev >= 0){?>
                <a href=" <?php echo $_SERVER['PHP_SELF'].'?count='.$prev ?>">Previous</a>
                <?php }?>
            <?php } ?>

        </div>

2 个答案:

答案 0 :(得分:0)

我建议使用Ajax以参数中的Id调用服务器。
您需要在按钮中添加一个类,并且需要链接JS文件和JQuery。这是一个例子。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="path/to/your/file.js"></script>
<div style="width:20%; float:left;">
    <h3>Categories</h3>
    <?php while($categories = $resultproductcategories->fetch_assoc()){?> 
    <div class="rows">
    <input type="button" name="<?php echo $categories['id'] ?>" value="<?php echo $categories['category']?>" class="btnCategory"/>;
</div>
<?php }?>


然后,使用ajax,您可以调用您的php文件,该文件返回从数据库中获取所需的值。

$(document).ready(function() {
$('.btnCategory').on('click', function(){
    var id = $this.attr('name');
    $.ajax({
        url: 'path/to/your/file.php',
        method: "GET",
        data: {category_id: id}, 
        success: function(data) {
            //This is the data fetch from the server
            console.log(data);
        },
        error: function(err) {
            console.error('An error occurred : ' + err);
        }
    });
});
});

然后,当您的PHP文件收到参数$_GET['category_id']时,您将调用您的数据库。

<?php
if(isset($_GET['category_id'])){
//An id was post in the url.
    $stmtproducts = $mysqli->prepare("SELECT * FROM store_products sp INNER JOIN store_product_categories spc ON sp.product_category=spc.id WHERE sp.store_id=? AND sp.category=? LIMIT $count, 10");
    $stmtproducts->bind_param("ii",$_SESSION['storeid'],$_POST['']);
    $stmtproducts->execute();
    $resultproducts = $stmtproducts->get_result();
    $num=$resultproducts->num_rows;
    $stmtproducts->close();
    $result = array('row_count' => $num, 'result' => $resultproducts);
    echo json_encode($result);
}

然后返回结果的json数组。这就是我要做的。 希望能帮助到你 !

  • 尼克

答案 1 :(得分:0)

你问了一个演示,就在这里。

<?php
if(isset($_GET['category_id'])){
//An id was post in the url.
    $stmtproducts = $mysqli->prepare("SELECT * FROM store_products sp INNER JOIN store_product_categories spc ON sp.product_category=spc.id WHERE sp.store_id=? AND sp.category=? LIMIT $count, 10");
    $stmtproducts->bind_param("ii",$_SESSION['storeid'],$_POST['']);
    $stmtproducts->execute();
    $resultproducts = $stmtproducts->get_result();
    $num=$resultproducts->num_rows;
    $stmtproducts->close();
    $result = array('row_count' => $num, 'result' => $resultproducts);
    echo json_encode($result);
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<div style="width:20%; float:left;">
<h3>Categories</h3>
<?php while($categories = $resultproductcategories->fetch_assoc()){?> 
<div class="rows">
    <input type="button" name="<?php echo $categories['id'] ?>" value="<?php echo $categories['category']?>" class="btnCategory"/>;
</div>
<?php }?>
</div>

<script>
$(document).ready(function() {
$('.btnCategory').on('click', function(){
    var id = $this.attr('name');
    $.ajax({
        method: "GET",
        data: {category_id: id}, 
        success: function(data) {
            //This is the data fetch from the server
            console.log(data);
        },
        error: function(err) {
            console.error('An error occurred : ' + err);
        }
    });
});
});
</script>