Php 返回仅包含缺失/不同数据的查询
我有一个表格,您可以选择类别,并将返回该类别中的产品Php 返回仅包含缺失/不同数据的查询,php,mysql,select,Php,Mysql,Select,我有一个表格,您可以选择类别,并将返回该类别中的产品 $query = $this->db->query("SELECT id, name FROM " . DB_PREFIX . "shared_products_product WHERE category = '" . (int)$id . "' AND status != 2"); 结果 Array ( [0] => Test 1 [1] => Test 2 [2] => Test 3 ) 然后,您只能选
$query = $this->db->query("SELECT id, name FROM " . DB_PREFIX . "shared_products_product WHERE category = '" . (int)$id . "' AND status != 2");
结果
Array
(
[0] => Test 1
[1] => Test 2
[2] => Test 3
)
然后,您只能选择测试1和测试2插入到不同的表中
$this->db->query("INSERT INTO " . DB_PREFIX . "shared_products_view SET product_id = '" . (int)$product_id . "', shared_product_id = '" . (int)$shared_product_id . "', category_id = '" . (int)$cat_id . "'");
当我运行第一次查询时,我将如何获得当前类别id的共享产品视图中仍未插入的结果?您需要联接表并检查值是否已经存在 像这样
$query = $this->db->query("SELECT `spp`.id, `spp`.name
FROM " . DB_PREFIX . "shared_products_product `spp`
LEFT JOIN " . DB_PREFIX . "shared_products_view `spv` ON `spp`.`id`=`spv`.shared_product_id
WHERE category = '" . (int)$id . "' AND status != 2 AND `spv`.shared_product_id IS NULL");
您需要联接表并检查值是否已经存在 像这样
$query = $this->db->query("SELECT `spp`.id, `spp`.name
FROM " . DB_PREFIX . "shared_products_product `spp`
LEFT JOIN " . DB_PREFIX . "shared_products_view `spv` ON `spp`.`id`=`spv`.shared_product_id
WHERE category = '" . (int)$id . "' AND status != 2 AND `spv`.shared_product_id IS NULL");
当您运行第二个查询时,插入的行将被添加,除非您有错误。我想到的一件事是,您似乎将整数作为字符串插入 最好使用PDO和bindValue()并显式声明它是一个整数 如果我没弄错的话,你想知道插入是否成功。(对吗?) 在这种情况下,检查命令$this->db->query(“插入…”)的结果 您没有提到数据库句柄$this->db是什么,但我希望它在失败时返回false 我强烈建议您在继续之前先学习本实践指南:
当您运行第二个查询时,插入的行将被添加,除非您有错误。我想到的一件事是,您似乎将整数作为字符串插入 最好使用PDO和bindValue()并显式声明它是一个整数 如果我没弄错的话,你想知道插入是否成功。(对吗?) 在这种情况下,检查命令$this->db->query(“插入…”)的结果 您没有提到数据库句柄$this->db是什么,但我希望它在失败时返回false 我强烈建议您在继续之前先学习本实践指南:
不是我想要的@Oleksandr Pobuta提交正确答案不是我想要的@Oleksandr Pobuta提交正确答案