我的数据库中有 2 个表,每个表都有一个名为 Catergory 的列。
Categories Table -
id | category_name
1 : basic
2 : midlevel
3 : highlevel
4 : profesional
Product Table -
id | product | category_name
1 : adsl 1G : basic
2 : adls 2G : midlevel
3 : adsl 3G : highlevel
4 : adsl 4G : profesional
当我更新 categories
表中的 *category_name* 时,我也想在 Products
表中更改它,但我不确定该怎么做这个。
我无法找到并回答,因为我不知道如何正确措辞。
如有任何帮助,我们将不胜感激。
我的 update.php 现在的样子:
db_update("UPDATE category SET
`category_name` = '".$_POST['category_name']."'
WHERE category_id = '".$id."'");
应该是什么样子:???
{代码在这里}
注意:“已修复 - 我忘记将我的旧值发送到 save.php 文件,所以 $id 永远不知道要更新什么”。
最佳答案
您可以只运行两个更改两个名称的查询:
<?php
mysql_query("UPDATE categories SET category_name='" . $catname . "' WHERE category_name='basic'");
mysql_query("UPDATE product SET category_name='" . $catname . "' WHERE category_name='basic'");
?>
如果您想在一个字符串中执行此操作,您可以使用多个查询、联合查询或存储过程来执行此操作。
一个字符串中的多个查询:
<?php
mysql_query("
mySqlQuery(UPDATE categories SET category_name='" . $catname . "' WHERE category_name='basic';)
mySqlQuery(UPDATE product SET category_name='" . $catname . "' WHERE category_name='basic';)
");
?>
联合查询:
<?php
mysql_query("
UPDATE `product`,`categories`
SET `product`.`category_name` = '" . $catname . "',
`categories`.`category_name` = '" . $catname . "'
WHERE `items`.`id` = '" . $catname . "'
");
?>
如果以上方法都不起作用,我建议更改您的表,这样就没有匹配的名称,只有匹配的 ID。
您将获得以下内容:
Categories Table -
id | category_name
1 : basic
2 : midlevel
3 : highlevel
4 : profesional
Product Table -
id | category_ID | product
1 : 1 : adsl 1G
2 : 2 : adls 2G
3 : 3 : adsl 3G
4 : 3 : adsl 4G
关于php - 如何用 PHP 更新两个 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10140685/