php - 从 MySql 上的多对多表中的两个主键获取一行

标签 php mysql

我有两个主表:

  • 产品
  • 类别

然后我有一个名为 Price 的第三个多对多表,其中包含以下行:

   IdProducts  (Primary key and Foreign Key from Products)
   IdCategory  (Primary key and Foreign Key from Category)
   Price

第三个表没有每行的单独 ID,只有这 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"];
     }
}

这样我就可以获取价格、类别 ID 和产品 ID 并准备在 html 中显示。

我不知道我是否做错了什么,但我最好的选择是错误出现在 MySql 查询中:

  "SELECT * FROM table3 WHERE (idProduct='$variable1' AND idCategory='$variable2') LIMIT 1"

即使我发送了我知道它应该使用的数据,它也不会返回任何值。 这就是我应该尝试获取所有行的方式吗?或者也许这样的事情无法完成,而我需要一个单独的 ID 来获取价格?

编辑:我通过在 href 链接上发送变量发现了一个肮脏的工作...无论如何,当我尝试更新所需的行时,我面临着几乎完全相同的问题,更新的 mysql 代码是这样的:

"UPDATE table3 SET (price1='$var1' AND price2='$var2') WHERE (price.idProduct='$idProduct' AND price.idCategory='$idCategory') "

我收到以下错误 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的 'SET (price='123231211.00' AND Price='1212654.00') WHERE (table3.idProduct='QEW21' AND ta') 附近使用的正确语法

最佳答案

终于可以 sleep 了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的正确用法,结果实际上就像:“设置X,Y”和“WHERE X AND Y”

关于php - 从 MySql 上的多对多表中的两个主键获取一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842158/

相关文章:

c# - 我想将数据从 C# 发送到 php

javascript - 无法使用 PHP 和 JQuery Ajax 将新记录插入到 mysql 数据库

php - 如何仅允许白名单网站嵌入 iframe?

mysql - 有什么方法可以检查每个表是否在 MYSQL 5.5 中设置了 innodb_file_per_table?

php mysql ssl 连接失败,访问被拒绝错误

mysql - 将包含 BLOB 的表导出到实际显示其中文本的 .csv 文件 (MySQL Workbench)

php - 将 .htaccess 路由到 GitHub

php - 数据库 mySQL 查询使用 TIMESTAMP 从最旧到最新对最后十个值进行排序

php - Laravel:如何根据需要计算行数的关系获取结果

mysql - 如何在 MySQL 中限制查询中的字段