PHP編集が機能しない

Editting a field in a table is becoming a headache for me as I cannot figure out simple solutions. My cause of the problem is not being found by my eyes. The updating of the database function is not working.

Here is my PHP for viewproducts.php

<?php
    $result = mysql_query("SELECT * FROM products ")
                or die(mysql_error()); ;

    if (mysql_num_rows($result) == 0) {
        echo 'There Arent Any Products';
    } else {

        echo "<table border='1' width=100%><tr><th>Product Name</th><th>Description</th><th>Price</th><th>Image</th><th>Edit</th><th>Delete</th>";
        while($info = mysql_fetch_array($result))
        {
            echo "<tr>";
            echo "<td>" . $info['name']. "</td>";
            echo "<td>" . $info['description']. "</td>";
            echo "<td>£" .$info['price']." </td>";
            echo "<td>" . "</td>";

            echo '<td> Edit</td>';
        }
    }
    echo "</tr>";
    echo "</table>";
?>

ここに私のedit.phpページがあります:

<?php
    $id = $_GET['product_id'];
    $query = mysql_query("SELECT * FROM products WHERE serial = '$id'")
                or die(mysql_error());  

    while($info = mysql_fetch_array($query)) {
        echo "";

        $name = $info['name'];
        $description = $info['description'];
        $price = $info['price'];
        $picture = $info['picture'];
    }
?>

<form action="editsuccess.php" method="post">

Product ID:
<input type="text" value="<?php echo $id;?>" name="serial" disabled/>
Name:
<input type="text" value="<?php echo $name;?>" name="name"/>
Description:
<input type="text" value="<?php echo $description;?>" name="description"/>
Price:
<input type="text" value="<?php echo $price;?>" name="price"/>
Picture:
<? echo''?>
<input type="submit" value="Update Product"/> </form>

そして最後に私のeditsuccess.phpページです:

<?php
    session_start();
    require_once '../includes/db.php';  
    $id = $_REQUEST['product_id'];

    $name = $_POST['name'];
    $description = $_POST['description'];
    $price = $_POST['price'];

    $info = "UPDATE products SET name='$name', description ='$description', price ='$price' WHERE serial ='$id'";

    mysql_query($info) or die ("Error: ".mysql_error());

    echo "Database updated.";

?>

助けてくれた人は?

1
新しいコードで MySQL _ * 関数を使用しないでください。 。それらはもはや維持されず、廃止予定が開始されました。 赤いボックス をご覧ください。代わりに 準備文 について学び、 PDO または MySQLi - この記事を参考にして決定してください。 PDOを選択した場合、ここでは良いチュートリアルです。
追加された 著者 tereško,

3 答え

It looks like you're not passing product_id to your editsuccess.php page. Try changing the first line of your <form> declaration in edit.php to:

<form action="editsuccess.php?product_id=<?php echo $id; ?>" method="post">
2
追加された
おかげで、クライブ、今働いて!もう1つ質問があります。どのように私は次のコードで表示する画像を得ることができないのですか?私は前に他のページには表示されましたが、このページには表示されませんでした..... <? echo ''?>
追加された 著者 Jahed,
私はそれが同じコード行を持つ別のページで動作するように言ったように、そのようなものは何もない。あなたは私の最初の投稿を編集して、そのページのコードと、動作していないページのコードを投稿したいですか?
追加された 著者 Jahed,
歓声...私はちょうどそれを行うかもしれない:-)
追加された 著者 Jahed,
私は、 $ info mysql_query の結果に設定しているので、あなたが期待しているレコードの配列にはならないと思います。代わりに $ _ POST ['serial'] を使う必要があると思います
追加された 著者 Clive,
あなたはすることができますが、それは別の質問を投稿する方が良いかもしれません、あなたはそれを見てより多くの人々とより良い答えの範囲を得るでしょう:)
追加された 著者 Clive,

変化する

<input type="text" value="<?php echo $id;?>" name="serial" disabled/>

<input type="text" value="<?php echo $id;?>" name="product_id" disabled/>

無効なフィールドはフォームの送信時に送信されないため、フィールドから disabled 属性も削除する必要があります

1
追加された

CONNECTEDのように見えます。私は接続を参照してください...

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com