PHP/MySQL 与 CSV 数组连接

标签 php mysql sql arrays csv

我有一个棘手的问题(对我来说确实如此),关于从两个不同的表获取信息。

我有一个数组,如下所示:

$abc=$_COOKIE['cookie'];
$comma_separated = implode(",", $abc);

现在,该数组将是一个 CSV 列表,其中包含需要与“Specials”表中的 ID 进行匹配的 ID。在“特价”表中有一列称为“契约(Contract)名称”。此“契约(Contract)名称”列需要与“产品”表中的同名列(每个列都是唯一的)匹配,并显示其中包含的信息。

我当前的 MySQL 查询如下所示:

$query= "SELECT specials.id,
   specials.product_name,
   specials.contract_name,
   specials.included_value AS inc_val,
   specials.image_url,
   specials.contract_monthly,
   specials.outlet,
   products.package,
   products.bundled,
   products.included_value
FROM specials,
     product

WHERE `id` IN ('.$comma_separated.')
AND specials.contract_name = `products.package`";

发生的事情是……什么也没有发生。我尝试过思考一些 JOIN 教程,但没有成功。

所以基本上我想显示当前特价的列表以及包含在不同表格中的套餐信息。我尝试过思考一些 JOIN 教程,但没有成功。

据我所知,我不擅长正确解释事情,所以如果我能进一步阐明这个难题,请大声喊叫。

谢谢! :)

最佳答案

要开始让它工作,您的 $query 字符串必须是有效的查询。通常,要解决此类问题,您可以在途中的某个地方 echo $query; 来查看它是否有效。然后,您甚至可以将查询的文本粘贴到独立的 MySQL 客户端(phpMyAdmin,或者可能是 HeidiSQL 等)中以查看您得到的结果。

看这一行:

WHERE `id` IN ('.$comma_separated.')    /* wrong! */

看起来需要阅读

WHERE `id` IN (".$comma_separated.")

因为您使用双引号将 SQL 文本片段括起来。另外,您可能想使用

WHERE `specials`.`id` IN (".$comma_separated.")

只是因为其他一些表可能包含 id 列,然后您的搜索子句将不明确。

关于PHP/MySQL 与 CSV 数组连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21989726/

相关文章:

php - 使用连接从三个表中获取结果,其中一个表包含多个结果

php - 使用 Office365 oauth api 中的 oauth token 检索用户信息

mysql 5.7.11 恢复为 myisam

mysql - mysql中数据类型附近的数字

php - 创建连接表问题!

android - 如何将数据库记录传递给第二个 Activity 并使用 ListView 显示在其中?

php - laravel 4.2 如何检查是否有用户登录多重身份验证

php - MySQL 字母数字值的自然排序

mysql - SQL 修改字母顺序,包括复合字符

sql - 返回数据立方体的 PostgreSQL 函数