-1

私は問題があります。while ループを使用しています。クエリ $rows['price'] 内に配置しました。ループ内に挿入された値全体をテーブルに送信するにはどうすればよいですか? 5 件の結果があります。

page1.php

        <?php

    $sql = mysql_query("SELECT id FROM table where id = '$ID'");

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

        echo '<form action = "page2.php" name = "add" method = "post">';
        echo "<b>Price:</b> ";
        echo '<input size = "1" type="text" name="price" value = ""/>';
        echo "%";
        echo "<br/>";

        }

        ?>

    <input type="submit" name="price" value="SUBMIT"/>
    </form>

出力は次のようになります。

価格: __ % 価格: __ % 価格: __ % 価格: __ % 価格: __ % |SUBMIT|

page2.php

             <?php


    if(isset($_POST['submit'])){
        $price = $_POST['price'];

        mysql_query("INSERT INTO items_tbl(price) VALUES('$price');


         ?>

何とか少しは動いた。90,80,70,60,50 の形式で値を入力しました。しかし、テーブルに挿入されるのは、一番下 (50) の最後のものだけです。残りはいけません。

4

1 に答える 1

0

このように使用します。<form>タグはwhileループの外側にある必要があり、$row['price']内側に配置する必要がありますvalue

$sql = mysql_query("SELECT price FROM table where id = '$ID'");

echo '<form action = "page2.php" name = "add" method = "post">';
while($row = mysql_fetch_assoc($sql)){
    echo "<b>Price:</b> ";
    echo '<input size = "1" type="text" name="weight'.$row['price'].'" value = ""/>';
    echo "%";
    echo "<br/>";

}

?>
<input type="submit" name="submit" value="SUBMIT"/>
</form>

page2.phpではこれを使用します

$val = implode(",", $_POST);
mysql_query("INSERT INTO items_tbl(price) VALUES('$val');

注: 新しいコードでは関数を使用しないでくださいmysql_*。それらはもはや保守されておらず、公式に非推奨です赤いボックスが見えますか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを使用するかを決めるのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-04-30T06:32:00.210 に答える