-1

第一次使用这个,所以我希望能得到尽可能多的帮助

大家好,我有 2 张桌子 - tblproduct 和 tblretprod。我将我的产品详细信息插入到 tbl 产品中,prod_id 是自动递增的其他字段是 prod_name、prod_brand、prod_desc、prod_photo、cat、subcat

我 hv 另一个表 tblretprod,其中包含字段 id、user_id、prod_id、prod_price

我可以成功添加我的产品

我正在显示我在表格中添加的所有产品,我与文本字段一起回显以输入产品价格和添加按钮

单击添加按钮时,会话的 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),它只会给您第一个值而不是所有值。

注意:切换到MySQLiORPDO因为mysql_*已弃用。

于 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 回答