0

最初のページからポスト経由で情報を取得することに基づいて製品テーブルの製品の数量を更新しようとしているため、スクリプトでこの問題を解決するためにあなたの助けが必要です. すべて問題ないように見えますが、数量がテーブルで更新されていません。テーブルには、この製品の数量がすでにあります。

ページ1:

 $selectP="select prodid, prodname, prodtype from products where prodtype = 'BP'";
 $result=mysql_query($selectP) or die (mysql_error());
 echo "<form method=POST action=quantupdate.php>";
 echo "<center><table border=1 cellpadding=5>";
 echo "<tr><td>Select a Product to Update Quantity in Stock </td>";
 echo "<td>";
 echo "<select size=\"1\" name=\"product_selection\" id=\"product_selection\">";
 echo "<option value=\"0\">- Product -</options>";

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

 echo "<option value='".$row['prodid']."'>".$row['prodname']."</option>";
 }

 echo "</select>";




 echo "<tr><td>Select Quantity </td>";

 echo "<td>";
 echo "<select size=\"1\" name=\"pq\" id=\"pq\">";
 echo "<option value=\"0\">Select Qty</options>";
 echo "<option value=\"5\">5</options>";
 echo "<option value=\"10\">10</options>";
 echo "<option value=\"20\">20</options>";               
 echo "<option value=\"30\">30</options>";

 echo "</select>";



 echo "<tr><td><input type=submit name=submit id=submit value='Update Now'></td>";
 echo "<td><input type=reset value='Clear Form'></td></tr>";
 echo "</table></center>";
 echo "</form>" ;

ページ2:

 $bprod=$_POST['product_selection'];
 $quantity=$_POST['pq'];




 if(isset($_REQUEST['product_selection'])) {
    $bprod=$_POST['product_selection'];
 } else {
  echo "Not Working???";//do something about it
 }



 $updatequantity="UPDATE products
                SET prodquantity = ".$quantity."   WHERE prodname = ".$bprod;


    $exeupdatequantity=mysql_query($updatequantity);

すべて問題ないようです。エラー メッセージは表示されませんが、テーブルが新しい数量で更新されていません。

助けてください。

4

2 に答える 2

0

更新クエリを修正します。

$updatequantity="UPDATE products 
    SET prodquantity = '".$quantity."'   WHERE prodname = '".$bprod."';";

MySQL の文字列では引用符を使用する必要があります。そうしないと、列名として扱われます。

$_POST / $_REQUEST / $_GET からのエスケープされていない値を使用することは、非常に安全ではない可能性があることを覚えておいてください。

たとえば、mysql_escape_stringを使用して値をエスケープします。

$quantity = mysql_escape_string($qunatity);
$bprod = mysql_escape_string($bprod);
于 2013-08-18T09:46:11.347 に答える