-1

これを初めて使用するので、必要なだけ多くの助けを借りたいと思っています

こんにちは、tblproduct と tblretprod の 2 つのテーブルがあります。製品の詳細を tbl 製品に挿入します。prod_id は自動インクリメントです。その他のフィールドは、prod_name、prod_brand、prod_desc、prod_photo、cat、subcat です。

フィールドid、user_id、prod_id、prod_priceを持つ別のテーブルtblretprodをhvします

製品を正常に追加できます

テーブルに追加したすべての製品を表示しています。製品価格を入力するテキストフィールドと追加ボタンをエコーし​​ます。

追加ボタンをクリックすると、セッションの user_id、prod_id および prod_price が tblretprod に挿入されます。

user_id と prod_price は正しく挿入されていますが、各製品に固有の prod_id が追加されていません。最初の prod_id 、つまり 1 だけがどこにでも追加されています

追加をクリックしたときに製品を追加するコードは次のとおりです

<?php
    session_start();
    include('db_connect.php');
    $username = $_SESSION['username'];
    $prod_price = $_POST['prod_price'];
    $url='retprod.php';
    $sql=mysql_query("select user_id from tbllogin where username = '$username'");
    $row = mysql_fetch_array($sql);
    $sql1 = mysql_query("select * from tblproduct");
    $row1 = mysql_fetch_array($sql1);
    $sql2 = mysql_query("insert into tblretprod (user_id, prod_id, prod_price) values   ('$row[user_id]', '$row1[prod_id]', '$prod_price')");
    echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
    echo "<script>alert('This product has been added successfully.')</script>";
?>

私はこれを試しました:-

$prod_id = $_POST['prod_id'];
// or
$prod_id = $_GET['prod_id'];
$sql1 = mysql_query("select * from tblproduct where prod_id='$prod_id'");

これもうまくいきませんでした

つまり、ユーザーがテキスト フィールドに製品価格を入力して追加ボタンをクリックすると、製品の相対的な user_id、prod_id、および入力された価格が tblretprod に保存されます。user_id と price は保存されていますが、相対的な prod_id は保存されていません


以下のコードを試していますが、動作することはわかっていますが、コードのどこにエラーがあるかわかりません。誰でも私を助けてもらえますか?非推奨の mysql コードを使用していることはわかっていますが、私のプロジェクトはほぼ完成しています。

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

 echo "<tr>";
 echo '<td style="text-align:center;"><img height="100" width="100"   src="Images/Products/'.$row['prod_photo'].'" alt="'.$row['prod
  _name'].'" /></td>';
  echo "<td style="text-align: center;">".$row['prod_name']."</td>";
  echo "<td style="text-align: center;">".$row['prod_brand']."</td>";
  echo "<td>"."<form name=\"price\" method=\"post\" action=\"ret_addprod.php\">".
    "<input type=\"hidden\" name=\"prod_id\" value=\"'.$row['prod_id'].'\" />.
    "<center><input type=\"text\" name=\"prod_price\" />.
    "<input type=\"submit\" value=\"Add\" /></form>"."</td>";


}
4

2 に答える 2

1

whileすべての値を繰り返すには、ループを使用する必要があります。

while($row1 = mysql_fetch_array($sql1)) {
    $sql2 = mysql_query("insert into tblretprod (user_id, prod_id, prod_price) 
    values   ('$row[user_id]', '$row1[prod_id]', '$prod_price')");
}

あなたが使用$row1 = mysql_fetch_array($sql1)している現在のコードでは、すべての値ではなく最初の値のみが得られます。

注:は推奨されないため、 MySQLiORに切り替えます。PDOmysql_*

于 2013-06-29T07:20:26.003 に答える
0

tblproductクエリにフィルターを設定していません。したがって、挿入されるのは常にそのテーブルの最初の行になります。

変化する$sql1 = mysql_query("select * from tblproduct");

のようなものに$sql1 = mysql_query("select * from tblproduct WHERE id = '$filter'");

于 2013-06-29T07:22:22.107 に答える