PHP选择使用结果查询

时间:2017-02-25 04:38:29

标签: php mysql arrays

嗨,我是php的中间人。 我想从表中获取数据并使用该获取的数据从另一个表中选择另一个项目。然后将所有结果值放入数组中。

我原来的php代码如下所示。

$res = mysqli_query($con, "select title, nickname, date, cos_id, likecount from A where area_tag='$tag'");
$result=array();
while($row=mysqli_fetch_array($res)){
array_push($result, array('title'=>$row[0], 'nickname'=>$row[1], 'date'=>$row[2], 'cos_id'=>$row[3], 'likecount'=>$row[4]));    
}

echo json_encode(array("result"=>$result));

' cos_id'是一个字符串值,例如" ABC,Hello,Good"。 因此,如果我从表A中得到cos_id,我想将该字符串拆分为" ABC"," Hello"," Good"。然后使用每个String,例如:

select name from B where tag='ABC',
select name from B where tag='Hello',
select name from B where tag='Good'

最终, 我也希望将这三个结果值放入数组中,如

array_push($result, array('title'=>$row[0], 'nickname'=>$row[1], 'date'=>$row[2], 'cos_id'=>$row[3], 'likecount'=>$row[4], 'ABCResult'=>$row[5], 'HelloResult'=>$row[6], 'GoodResult'=>$row[7]));   

这可能吗? 我发现了一些拆分String的信息,但我不知道如何选择新的结果值并将其放入原始结果数组中。

由于cos_id数据类似于ABC,Hello,Good ......     select contentid,从B中标记IN(cos_id)

然后我得到一些像这样的价值观。     有争议的      1111 1      2222 2      3333 3

我想把这些结果放到这个数组中......          array_push($ result,array(' title' => $ row [0],'昵称' => $ row [1],' date' = > $ row [2],' cos_id' => $ row [3],' likecount' => $ row [4]));

2 个答案:

答案 0 :(得分:4)

而不是下面:

select name from B where tag='ABC',
select name from B where tag='Hello',
select name from B where tag='Good'

您可以执行以下查询:

select name from B where tag IN ("ABC, HELLO, GOOD");

答案 1 :(得分:1)

这是一个带有值数组的测试

$arr=["ABC, Hello, Good","DFG, Sup, Bad"];
$temp = implode(',',$arr);

$exp=explode(',',$temp);
   $sql = "SELECT name from B Where tag IN ('" . implode("','", $exp) . "') ";

       echo $sql;

从B中选择名称为IN的名称(' ABC',' Hello',' Good',' DFG',&#39 ; Sup',' Bad')

替换$row[3

$arr]