Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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 从两个限制为1的表格中选择第二个表格_Php_Mysql_Select - Fatal编程技术网

Php 从两个限制为1的表格中选择第二个表格

Php 从两个限制为1的表格中选择第二个表格,php,mysql,select,Php,Mysql,Select,大家好,我做了一个简单的搜索,我按显示列获取所有列,同时我做了一个简单的条件,如下所示 while($columns = mysql_fetch_assoc($res)){ if(!in_array($columns['Field'],$columns_a)){ $columns_a[] = 'a.`'.$columns['Field'].'`'.' LIKE \'%'.$_POST['search'].'%\''; }

大家好,我做了一个简单的搜索,我按显示列获取所有列,同时我做了一个简单的条件,如下所示

while($columns = mysql_fetch_assoc($res)){
          if(!in_array($columns['Field'],$columns_a)){
             $columns_a[] = 'a.`'.$columns['Field'].'`'.' LIKE \'%'.$_POST['search'].'%\'';
          }                      
    }

while($columns2 = mysql_fetch_assoc($res2)){
          if(!in_array($columns2['Field'],$columns_a2)){
             $columns_a2[] = 'b.`'.$columns2['Field'].'`'.' LIKE \'%'.$_POST['search'].'%\'';
          }                      
    }

$column_condition = implode(" OR ",columns_a);
$column_condition .= ' OR '.implode(" OR ",columns_a2);
因此,在这之后,我有很大的条件去寻找。对于我的需求,它工作得很好,速度也很快,但有问题,sql给了我两个结果

$sql = mysql_query(
"SELECT * 
   FROM ".$prefix."orders a, ".$prefix."order_item b
   WHERE ".$column_condition." AND a.order_id = b.order_id 
   ORDER BY a.order_id DESC",$connect);

第一表-订单

order_id | name
1        | Chesus
2        | Johny
第二张表-订单项目

order_id | order_item_id | product_name
1        | 999           | balsame
2        | 998           | better balsame
2        | 997           | worse_balsame
因此,如果我搜索Johny,它会给我2个结果,而不是1个

group by a.order_id

在“订购人”!:)之前进行查询

使用正确的连接而不是隐式连接,然后可以正确使用限制语法

乙二醇


问题是,你想要什么。向我们展示你想要的结果,然后我们可以提供帮助。是否将两行中的数据都显示为1?或者你想用最大/最小的
order\u item\u id
来显示条目吗?养成使用mysqli而不是mysqli的习惯。因为mysqli不受欢迎。你应该得到一枚奖章:D2更多分钟它的新鲜:DY你的解决方案对我的其他功能很好,但现在正如guy bellow告诉我的那样,我只需要一个小组,谢谢你确定,但是请注意隐式联接是一种糟糕的做法,您确实应该学习如何在查询中联接表
$sql = mysql_query("
SELECT * 
FROM ".$prefix."orders a 
JOIN  ".$prefix."order_item b on (a.order_id = b.order_id)
WHERE 
".$column_condition." 
ORDER BY a.order_id DESC
LIMIT 0,1
",$connect);