Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 只有产品的第一个id被添加到mysql表中_Php_Mysql - Fatal编程技术网

Php 只有产品的第一个id被添加到mysql表中

Php 只有产品的第一个id被添加到mysql表中,php,mysql,Php,Mysql,我第一次使用这个,所以我希望能得到所需的帮助 大家好,我有两张桌子——tblproduct和tblretprod。 我将我的产品详细信息插入tbl产品,产品id为自动递增 其他字段包括产品名称、产品品牌、产品描述、产品照片、类别、子类别 我使用另一个表tblretprod,其中包含字段id、用户id、产品id、产品价格 我可以成功添加我的产品 我将在一个表中显示我添加的所有产品,并显示一个文本字段以输入产品价格和一个添加按钮 单击“添加”按钮后,会话的用户id、产品id和产品价格应插入tblre

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

大家好,我有两张桌子——tblproduct和tblretprod。 我将我的产品详细信息插入tbl产品,产品id为自动递增 其他字段包括产品名称、产品品牌、产品描述、产品照片、类别、子类别

我使用另一个表tblretprod,其中包含字段id、用户id、产品id、产品价格

我可以成功添加我的产品

我将在一个表中显示我添加的所有产品,并显示一个文本字段以输入产品价格和一个添加按钮

单击“添加”按钮后,会话的用户id、产品id和产品价格应插入tblretprod中

已正确插入用户id和产品价格,但未添加每个产品唯一的产品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>";
?>
这也没用

简而言之,我想做的是,当用户在文本字段中填写产品价格并单击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。