我有两个主要表:
然后我有一个名为Price的第3个多对多表,其中包含行:
IdProducts (Primary key and Foreign Key from Products)
IdCategory (Primary key and Foreign Key from Category)
Price
第3个表没有每行的个人ID,只有3行。
也就是说,我已经能够使用产品和类别中的数据在第3个表上插入数据而没有任何问题。现在我尝试在一个小程序中编辑这些数据,但如果预先填写编辑表单,我就无法获得。我使用以下代码:
$sql1 = mysqli_query($con,"SELECT * FROM table3 WHERE (idProducts='$variable1' AND idCategory='$variable2') LIMIT 1") or die(mysql_error());
$PriceCount = mysqli_num_rows($sql1);
if($productCount>0){
while($row = mysqli_fetch_array($sql1)){
$priceshow= $row["price"];
$idCategoryshow= $row["idCategory"];
$idProductshow= $row["idProduct"];
}
}
因此,我可以在html中显示价格,类别ID和产品ID。
我不知道我做错了什么,但我最好的选择是错误发生在MySql查询中:
"SELECT * FROM table3 WHERE (idProduct='$variable1' AND idCategory='$variable2') LIMIT 1"
即使我发送了我应该使用的数据,也不返回任何值。 这是我应该如何尝试获取所有行?或者也许这样的事情可以完成,我需要个人身份证价格?
编辑:我通过在href链接上发送变量找到了一个肮脏的工作...无论如何我在尝试更新所需的行时面临几乎相同的问题,更新的mysql代码是这样的:"UPDATE table3 SET (price1='$var1' AND price2='$var2') WHERE (price.idProduct='$idProduct' AND price.idCategory='$idCategory') "
我收到以下错误 您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#SET;(&= 39; 123231211.00' AND price =' 1212654.00')WHERE(表3)附近使用正确的语法.idProduct =' QEW21' AND'在第1行
答案 0 :(得分:0)
最后我可以去睡觉了xd
"UPDATE table3 SET price1='$var1', price2='$var2' WHERE
price.idProduct='$idProduct' AND price.idCategory='$idCategory'"
我使用"SET(X AND Y)"
和"WHERE(X AND Y)"
并检查AND的正确使用结果实际上就是:"SET X, Y" and "WHERE X AND Y"