1

ホームページにすべての製品を表示する以下のコード..各製品にはチェックボックスがあります..いくつかの製品のチェックボックスを選択したかったのですが、送信をクリックすると、次のページに選択したチェックボックスが表示されません結果

$sql = mysql_query("SELECT * FROM products ORDER BY date_added DESC LIMIT 15");
$productCount = mysql_num_rows($sql); // count the output amount
if ($productCount > 0) {
    $colindex = 1;
    $totcols = 3;
    $rowclosed = false;
    //$totrows=ceil($count/$totcols);
    $dynamicList .= "<dl id='Searchresult'> <form action='selected.php' method='POST'> <table width=\"50%\" border=\"0\" cellspacing=\"0\" align=\"center\" cellpadding=\"3\">";
    while ($row = mysql_fetch_array($sql)) {

        $id = $row["id"];
        $product_name = $row["product_name"];
        $price = $row["price"];
        $date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
        if ($colindex == 1) {
            $dynamicList .= "<tr>";
            $rowclosed = false;
        }

        $dynamicList .= '<td width="142" valign="top" align="center">
                    <div id="products">
                        <div class="product">
                            <a href="product.php?id=' . $id . '"> <img style=" 1px solid;" src="inventory_images/' . $id . '.jpg" alt="' . $product_name . '" width="100" height="100" border="0" /></a><div class="pr-info"><h4>' . $product_name . '</h4> 
                            <input type="checkbox" name="check[]" value="<?php .$id. ?>"/>
                        </div>
                    </div></td>';
    }
}

以下のコードは、選択したチェックボックスのデータベースからデータを取得するために使用した場所です

foreach ($_POST['check'] as $k => $check) {
    $where[ ] = $k . " = '" . mysql_real_escape_string($check) . "'";
}
include "storescripts/connect_to_mysql.php";
$sql = mysql_query("Select * from products where " . implode(' AND ', $where)); // Connect to the MySQL database
$productCount = mysql_num_rows($sql); // count the output amount
if ($productCount > 0) {

    while ($row = mysql_fetch_array($sql)) {

        $id = $row["id"];
        $product_name = $row["product_name"];
        $price = $row["price"];
        $details = $row["details"];
        $date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
        $dynamicList .= '<td width="142" valign="top" align="center">
                            <div id="products">
                                <div class="product">
                                    <a href="printer.php?id=' . $id . '"> 
                                        <img style=" 1px solid;" src="inventory_images/' . $id . '.jpg" alt="' . $product_name . '" width="200" height="200" border="0" />
                                    </a>
                                <div class="pr-info"><h4>' . $product_name . '</h4><p>' . $details . ' </p>

                                    <span class="pr-price"><span>Rs.</span><sup>' . $price . '</sup></span>
                                </div>
                                </div></td>';
    }
} else {
    echo "That item does not exist.";
    exit( );
}
4

2 に答える 2

0

2 番目のコードの先頭を次のように変更してみてください。

include "storescripts/connect_to_mysql.php";
$sql = mysql_query('SELECT * FROM products WHERE id IN ('.implode(', ', array_values($_POST['check'])).')');  
// rest of your code, beginning at $productCount = ...

しかし、前に言われたように、PDOを使い始めるべきです!

于 2013-03-05T16:52:50.890 に答える
0

最終的なクエリとコードはこのように見えるはずだと思います...これでコードを変更してください...そして結果を投稿してください:

foreach($_POST['check'] as $k){
$where[]= $k;}  
var_dump($where); //it show you something, show me the var_dump result ???
include "storescripts/connect_to_mysql.php";
$query = "Select * from products where id IN(".implode(",",$where).")"; 
echo $query; //this line too....show me the result   
$sql = mysql_query($query);     
// Connect to the MySQL database
$productCount = mysql_num_rows($sql);
//the rest of your code ;)

-----------------------編集済み-------------------------- ------

あなたの問題はこの行にあります:

<input type="checkbox" name="check[]" value="<?php .$id. ?>"/>

その行は間違っています。この変更を加えて、それがどのように機能するかを確認してください。

<input type="checkbox" name="check[]" value="<?php echo $id;?>"/>

サルドス ;)

于 2013-03-05T16:56:21.137 に答える