Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php从两个工作不正常的表中选择_Php_Mysql_Select_Join - Fatal编程技术网

Php从两个工作不正常的表中选择

Php从两个工作不正常的表中选择,php,mysql,select,join,Php,Mysql,Select,Join,大家好我有两张桌子 搜索引擎优化设置 | cat_id | cat_fullname | | 971 | catname 1 | | 443 | catname 2 | J分类 | jcategory_id | hcategory_id | | 1 | 971 | | 2 | 443 | | 3 | 443 | 我要按类别id获取cat_全名 我在

大家好我有两张桌子

搜索引擎优化设置

| cat_id | cat_fullname | 
| 971    | catname 1    |
| 443    | catname 2    |
J分类

| jcategory_id | hcategory_id |
| 1            | 971          |
| 2            | 443          |
| 3            | 443          |
我要按类别id获取cat_全名

我在用这个

$catIds = array(1,2,3)

foreach($catIds as $catId)
{
$sql3 = mysql_query("SELECT a.cat_fullname FROM seo_settings a, jcategories_to_hcategories b  WHERE a.cat_id = b.hcategory_id AND b.jcategory_id = $catId ");
    $data3 = mysql_fetch_array($sql3);
}
但是$data3返回布尔值为false


重要信息:存在正确连接的行,我假设我的sql中可能存在问题。

尝试类似的方法

$catIds = array(1,2,3);

$query = "
SELECT a.cat_fullname 
FROM seo_settings AS a 
LEFT JOIN jcategories_to_hcategories AS b ON jcategories_to_hcategories b 
WHERE b.jcategory_id IN (".implode(",", $catIds).")
";
$sql3 = mysql_query($query) or die(mysql_error());
while($data3 = mysql_fetch_assoc($sql3))
{
    echo $data3['cat_fullname'].'<br>';
}
$catIds=数组(1,2,3);
$query=”
选择一个.cat\u全名
从seo_设置作为
左键将jcategories_to_hcategories作为b连接在jcategories_to_hcategories b上
其中,b.jcategory_id位于(“.intlode(“,”,$catIds)。”
";
$sql3=mysql\u query($query)或die(mysql\u error());
而($data3=mysql\u fetch\u assoc($sql3))
{
echo$data3['cat_fullname']。
; }

旁注:停止使用mysql,切换到mysqli或PDO。

而不是用“,”列出两个表,您需要使用内部联接。您的查询应如下所示:

SELECT a.cat_fullname
FROM seo_settings a
INNER JOIN jcategories_to_hcategories b
    WHERE a.cat_id = b.hcategory_id
    AND b.jcategory_id = $catId

请在mysql中执行相同的查询,看看会发生什么?同时尝试使用显式连接而不是隐式连接。因为您的代码是在mysql中,所以我建议您这样做。使用
mysql\u error()
函数检查您得到的错误。避免使用
mysqll.*
并使用seo\u设置中的
mysqli.*
,jcategories_to_hcategories AS b...
我使用或死亡使用mysql错误,它不返回任何错误。我直接使用数字代替变量,我在数据库中工作,它是整数,当我转储catId变量时,它也是整数。。所以这是ot类型的问题,我们的mysql仍然在旧版本上运行:D