Php 只有产品的第一个id被添加到mysql表中
我第一次使用这个,所以我希望能得到所需的帮助 大家好,我有两张桌子——tblproduct和tblretprod。 我将我的产品详细信息插入tbl产品,产品id为自动递增 其他字段包括产品名称、产品品牌、产品描述、产品照片、类别、子类别 我使用另一个表tblretprod,其中包含字段id、用户id、产品id、产品价格 我可以成功添加我的产品 我将在一个表中显示我添加的所有产品,并显示一个文本字段以输入产品价格和一个添加按钮 单击“添加”按钮后,会话的用户id、产品id和产品价格应插入tblretprod中 已正确插入用户id和产品价格,但未添加每个产品唯一的产品id。只有第一个prod_id(即1)被添加到所有位置 以下是我单击“添加”时添加产品的代码Php 只有产品的第一个id被添加到mysql表中,php,mysql,Php,Mysql,我第一次使用这个,所以我希望能得到所需的帮助 大家好,我有两张桌子——tblproduct和tblretprod。 我将我的产品详细信息插入tbl产品,产品id为自动递增 其他字段包括产品名称、产品品牌、产品描述、产品照片、类别、子类别 我使用另一个表tblretprod,其中包含字段id、用户id、产品id、产品价格 我可以成功添加我的产品 我将在一个表中显示我添加的所有产品,并显示一个文本字段以输入产品价格和一个添加按钮 单击“添加”按钮后,会话的用户id、产品id和产品价格应插入tblre
<?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>";
?>
这也没用
简而言之,我想做的是,当用户在文本字段中填写产品价格并单击add按钮时,产品的相对用户id、产品id和输入的价格存储在tblretprod中。正在保存用户id和价格,但不保存相对产品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>";
}
while($row=mysql\u fetch\u assoc($sql)){
摘录(行);
回声“;
回声';
回显“$row['prod_name']”;
echo“$row['prod_brand'”;
回音“.”。
".
".
""."";
}
您必须在循环时使用来迭代所有值
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\u fetch\u array($sql1)
,它将只给您第一个值,而不是所有值
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')");
}
注意:切换到MySQLi
或PDO
,因为mysql.*
已被弃用。您没有在tblproduct
查询中设置过滤器。因此,将始终插入该表的第一行
更改$sql1=mysql\u查询(“从tblproduct中选择*)代码>
类似于$sql1=mysql\u查询(“从tblproduct中选择*id='$filter')代码>在循环中插入对$sql2的执行,循环遍历$row1的每个条目;欢迎来到StackOverflow。当你提问时,请多注意英语语法(例如:标点符号、大写字母、无“i”)。如果你写得正确,它看起来会更严重。毫无疑问,这只是对发布的代码示例如何工作的描述。欢迎使用Stack Overflow。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,好的,谢谢您的建议。我会小心地写好我的查询。他只需要插入1行,我认为问题在于tblproduct中缺少过滤器query@DevZer0可以,但OP没有提供足够的信息。@Yogeshuthar:如果是这样的话,结束对问题的投票,使其可以搁置,然后等待OP改进问题。问题是,当我添加每个产品的价格时,如何将每个产品的产品id添加到tblretprod中?我尝试了上面的代码,但是我插入的价格没有被接受…如果最后一个prod_id是10,所有的价格都设置为10…我使用了提供的代码。我认为应该定义$filter。请问我该怎么做?当我尝试代码时,只有price与user\u id一起插入,而不是prod\u id。