0

私はページupdprod.phpupdate.php. このページupdate.phpには、横に編集および削除ボタンがある製品のリストが表示されます。編集リンクをクリックすると、フィールド名とブランドを無効にして編集する製品の名前、ブランド、価格が表示された別のページが表示されます。値段だけ変えればいいのに

編集リンクをクリックすると、表示されている名前、ブランド、価格がリストの最後の製品になります。名前とブランドも完全に表示されていません。価格を変更すると、それに応じてテーブルが更新されます。

私が抱えている主な問題は、編集リンクをクリックした横にある製品の製品名、ブランド、および価格が、本来あるべきテキストボックスに表示されないことです。

以下は私のupdprod.phpコードです

<?php
    include_once("db_connect.php");

    if (isset($_POST['update']))
    {
        $prod_id = $_POST['prod_id'];

        $prod_name = $_POST['prod_name'];
        $prod_brand = $_POST['prod_brand'];
        $prod_price = $_POST['prod_price']; 

        // checking empty field
        if (empty($prod_price))
        {
            // if name field is empty
            if (empty($prod_price))
            {
                echo "<font color='red'>Price field is empty.</font><br/>";
            }   
        }   
        else
        {   
            // updating the table
            $result = mysql_query("UPDATE tblretprod 
                SET prod_price='$prod_price' WHERE prod_id=$prod_id");
            // redirecting to the display page. In our case, it is index.php
            header("Location: update.php");
        }
    }
?>

<?php
    $prod_id = $_GET['prod_id'];
    $result = mysql_query("SELECT a.prod_name, a.prod_brand, b.prod_price 
           FROM tblproduct a, tblretprod  b where a.prod_id = b.prod_id")
           or die(mysql_error());

    while ($res = mysql_fetch_array($result))
    {
        $prod_name = $res['prod_name'];
        $prod_brand = $res['prod_brand'];
        $prod_price = $res['prod_price'];
    }
?>

<html>
<title>Edit Product</title>
<body>
<a href="#">Home</a>
<br/><br/>
<form name="edit" method="post" action="updprod.php">
<table border="0">
<tr> 
<td>Product Name</td>
<td>
    <input disabled="disabled" 
       type="text" name="prod_name" value=<?php echo $prod_name;?>/>
</td>
</tr>
<tr> 
<td>Brand</td>
<td>
    <input disabled="disabled" 
      type="text" name="prod_brand" value=<?php echo $prod_brand;?>>
</td>
</tr>
<tr> 
<td>Product Price</td>
<td>
    <input type="text" name="prod_price" value=<?php echo $prod_price;?>>
</td>
</tr>
<tr>
<td>
    <input type="hidden" name="prod_id" value=<?php echo $_GET['prod_id'];?>>
</td>
<td><input type="submit" name="update" value="Update"></td>
</tr>
</table>  
</form>

</body>  
</html>
4

2 に答える 2

0

ここですぐに気付くことが 2 つあります。廃止されたため、mysql_query の代わりに mysqli を使用する必要があります。http://php.net/manual/en/function.mysql-query.php

次に、更新クエリは次のようになります。

$result=mysql_query("UPDATE tblretprod SET prod_price='".$prod_price."' WHERE prod_id='".$prod_id."';");

このようにポスト データがデータベースに挿入されるときは、常にポスト データをエスケープすることをお勧めします。

$prod_name = mysql_real_escape_string($_POST['prod_name']);

これを 2 回行う必要はありません。

if(empty($prod_price))
{
    //if name field is empty
    if(empty($prod_price))
    {
        echo "<font color='red'>Price field is empty.</font><br/>";
    }

} 

一部の入力で引用符を忘れました。以下のコードを参照して修正してください。

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

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

<input type="text" name="prod_price" value="<?php echo $prod_price;?>" /> 

値にこれらの引用符がないと、正しく機能しません。それが主な問題です。:)

于 2013-07-05T04:08:17.240 に答える