删除行结果sql查询

ylamdve6  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(273)

我是php新手。我是android开发者,对php了解不够。我已经开发了一个函数,它为我提供mysql数据库中的数字。我想把那个号码一过我就删除。我现在是这样做的

function getAllNumbers() {
    require_once("includes/conf.php");
    global $conn;
    $sql = "SELECT number from number_list WHERE server=1";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
        array_push($data, $row[0]);
        $delete = "DELETE number from number_list WHERE server=1";
        $result = $conn->query($delete);

        }
    }
    $response["data"] = $data;
    return $response;
}

我的table结构如下

id  int(11) NO  PRI NULL    auto_increment  
name    varchar(50) NO      NULL        
number  varchar(50) NO      NULL        
server  int(10) NO      0       
status  int(1)  NO      -1      
last_act    timestamp   NO      CURRENT_TIMESTAMP       
user_id int(11) NO  MUL NULL        
created_at  timestamp   NO      CURRENT_TIMESTAMP       
disable int(11) NO      0       
notify  int(1)  NO      1       
fcm varchar(500)    NO      NULL

但我觉得如果在数字选择查询和删除查询之间有任何新的数字到达数据库,它将在第一次查询中删除它而不选择数字。所以我希望只删除在第一个查询中被选中的行。如果我的密码有什么需要更改的,请告诉我。
非常感谢:)

fcipmucu

fcipmucu1#

所以如果你选择 id 在第一个查询中,这是唯一的键,您可以使用它来删除这一行

function getAllNumbers() {
    require_once("includes/conf.php");
    global $conn;
    $sql = "SELECT number,id from number_list WHERE server=1";
    $result = $conn->query($sql);
    $data = array();
    if($result) {
        while($row = $result->fetch_row()) {
            $data[] = $row[0];
            $id = $row[1];
            $delete = "DELETE number from number_list WHERE id = $id";
            $result = $conn->query($delete);
        }
    }
    $response["data"] = $data;
    return $response;
}

相关问题