使用php提取几个元素

时间:2015-07-23 07:45:32

标签: php mysql sql phpmyadmin

我的数据库中有这两个表:

table_A:             table_B:                  

id    user           id    user               
1     Mike           1     Mike          
2     Dan            2     Dan           
3     Tom            3     Tom
4     Lina           4     Lina
                     5     Cynthia
                     6     Sam

我正在使用此SQL查询来检测table_B中哪些用户不存在于table_A中,并选择那些用户(表A中不存在)ID:

SELECT table_B.id FROM table_B WHERE table_B.id NOT IN (SELECT table_A.id FROM table_A);

我正在使用这个php脚本将id放入变量$ not:

 $sql=" SELECT table_B.id FROM table_B WHERE table_B.id NOT IN (SELECT table_A.id FROM table_A)";
            $result = mysqli_query($con,$sql);
            if (!$result) {
                printf("Error: %s\n", mysqli_error($con));
                exit();
            }
            while($row = mysqli_fetch_array($result)){
                 $not=$row[0];
            }

现在,如果我想用我的SQL查询提取2个元素:

 SELECT table_B.id, table_B.name FROM table_B WHERE table_B.id NOT IN (SELECT table_A.id FROM table_A);

如何使用上面的脚本将每个元素放在一个变量中,这样我就可以将每个元素插入到数据库的不同表中了?

2 个答案:

答案 0 :(得分:2)

您可以将值放在多维数组中。

$not = array();
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
    $not[] = array(
        "id" => $row['id'],
        "name" => $row['name']
    );
}

echo $not[0]['id']; //Returns 5
echo $not[0]['name']; //Returns Cynthia
echo $not[1]['id']; //Returns 6
echo $not[1]['name']; //Returns Sam

答案 1 :(得分:0)

在您的查询中将table_B.id定义为user_id,将table_B.name定义为用户

然后在你的php中使用像这样的mysqli_fetch_object

while($row = mysqli_fetch_object($result)){
    $not= $row;
    //or if you want to store all the results use $not[] = $row; and define $not as array

}