【问题标题】:Extracting several elements using php使用php提取几个元素
【发布时间】:2015-07-23 07:45:32
【问题描述】:

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

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);

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

【问题讨论】:

    标签: php mysql sql phpmyadmin


    【解决方案1】:

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

    $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
    

    【讨论】:

    • 现在如果我想在不同的表中插入 id 元素,我该怎么办?我像这样使用变量: $not[]['id'] ?
    • $not[0]['id'] 有一个 id 看看我添加的所有回声。
    • 是的,但这意味着我必须指定每个元素。如果我有数百行怎么办
    • 您将使用 foreach 循环遍历数组 $not
    【解决方案2】:

    在您的查询中将 table_B.id 定义为 user_id 并将 table_B.name 定义为 user

    然后在你的 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
    
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-17
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2022-11-26
      • 2013-04-13
      • 2011-04-26
      • 2013-05-01
      相关资源
      最近更新 更多