Take empty value of an array, how to do?

Asked

Viewed 58 times

-3

I’m trying to make a system that can check in the database the id, if it already exists, will edit the existing one, if it doesn’t exist, it will create a new one. The two codes work separately, but when mounting this if/Else system, only the updating part works, creating a new one does not work. Apparently when the id comes empty, some problem.

I think the array when it has no id, does not come back empty, what makes that part of the code not work right: (line 87)

    while ($rows_id = mysqli_fetch_array($rersultado_id)) {
if ($rows_id['id_dog'] == "") {
  $sql = "INSERT INTO dogs (nome, raca, sexo, castrado, peso, cor, nascimento, resgatado_data, resgatado_local, origem_entrada, v6, v6_data, v6_fabricante, v8, v8_data, v8_fabricante, v10, v10_data, v10_fabricante, antirrabica, antirrabica_data, antirrabica_fabricante, vermifugo, vermifugo_data, vermifugo_fabricante, banho, banho_data, banho_responsavel, resumo_medico, criacao) VALUES ('$nome', '$raca', '$sexo', '$castrado', '$peso', '$cor', '$nascimento', '$data_resgate', '$local', '$origem', '$v6', '$v6_data', '$v6_fabricante', '$v8', '$v8_data', '$v8_fabricante', '$v10', '$v10_data', '$v10_fabricante', '$antirrabica', '$antirrabica_data', '$antirrabica_fabricante', '$vermifugo', '$vermifugo_data', '$vermifugo_fabricante', '$banho', '$banho_data', '$banho_responsavel', '$resumo_medico',  now())";
}else {
  $sql = "UPDATE dogs SET nome = '$nome', raca = '$raca', sexo = '$sexo', castrado = '$castrado', peso = '$peso', cor = '$cor', nascimento = '$nascimento', resgatado_data = '$data_resgate', resgatado_local = '$local', origem_entrada = '$origem', v6 = '$v6', v6_data = '$v6_data', v6_fabricante = '$v6_fabricante', v8 = '$v8', v8_data = '$v8_data', v8_fabricante = '$v8_fabricante', v10 = '$v10', v10_data = '$v10_data', v10_fabricante = '$v10_fabricante', antirrabica = '$antirrabica', antirrabica_data = '$antirrabica_data', antirrabica_fabricante = '$antirrabica_fabricante', vermifugo = '$vermifugo', vermifugo_data = '$vermifugo_data', vermifugo_fabricante = '$vermifugo_fabricante', banho = '$banho', banho_data = '$banho_data', banho_responsavel = '$banho_responsavel', resumo_medico = '$resumo_medico', criacao = now() WHERE id_dog = '$id_dog'";
}
}

This is php q czech and should decide what to do with the information:

        <?php
    session_start();
    
    $servername = "localhost";
    $username = "root";
    $password = "";
    $database = "animais";
    
    // Criando a conexao
    
    $conn = mysqli_connect($servername, $username, $password, $database);
    
    // verificando a conexao
    
    if (!$conn) {
                 die("Conexão falhou: " . mysqli_connect_error());
                }
    $id_dog = $_POST['id_dog'];
    $nome = $_POST['nome_dog'];
    $raca = $_POST['raca'];
    $sexo = $_POST['sexo'];
    $castrado = $_POST['castrado'];
    $peso = $_POST['peso'];
    $cor = $_POST['cor'];
    $nascimento = $_POST['nascimento'];
    $data_resgate = $_POST['resgatado_data'];
    $local = $_POST['resgatado_local'];
    $origem = $_POST['origem_entrada'];
    $v6 = $_POST['v6'];
    $v6_data = $_POST['data_v6'];
    $v6_fabricante = $_POST['fabricante_v6'];
    $v8 = $_POST['v8'];
    $v8_data = $_POST['data_v8'];
    $v8_fabricante = $_POST['fabricante_v8'];
    $v10 = $_POST['v10'];
    $v10_data = $_POST['data_v10'];
    $v10_fabricante = $_POST['fabricante_v10'];
    $antirrabica = $_POST['antirrabica'];
    $antirrabica_data = $_POST['antirrabica_data'];
    $antirrabica_fabricante = $_POST['antirrabica_fabricante'];
    $vermifugo = $_POST['vermifugo'];
    $vermifugo_data = $_POST['vermifugo_data'];
    $vermifugo_fabricante = $_POST['vermifugo_fabricante'];
    $banho_data = $_POST['data_banho'];
    if ($banho_data == "") {
      $banho = "no";
    }else{
      $banho = "yes";
    }
    $banho_responsavel = $_POST['responsavel_banho'];
    $resumo_medico = $_POST['resumo_medico'];
    
    $_SESSION['id_dog'] = $id_dog;
    $_SESSION['nome_dog'] = $_POST['nome_dog'];
    $_SESSION['raca'] = $_POST['raca'];
    $_SESSION['sexo'] = $_POST['sexo'];
    $_SESSION['castrado'] = $_POST['castrado'];
    $_SESSION['peso'] = $_POST['peso'];
    $_SESSION['cor'] = $_POST['cor'];
    $_SESSION['nascimento'] = $_POST['nascimento'];
    $_SESSION['resgatado_data'] = $_POST['resgatado_data'];
    $_SESSION['resgatado_local'] = $_POST['resgatado_local'];
    $_SESSION['origem_entrada'] = $_POST['origem_entrada'];
    $_SESSION['v6'] = $_POST['v6'];
    $_SESSION['v6_data'] = $_POST['data_v6'];
    $_SESSION['v6_fabricante'] = $_POST['fabricante_v6'];
    $_SESSION['v8'] = $_POST['v8'];
    $_SESSION['v8_data'] = $_POST['data_v8'];
    $_SESSION['v8_fabricante'] = $_POST['fabricante_v8'];
    $_SESSION['v10'] = $_POST['v10'];
    $_SESSION['v10_data'] = $_POST['data_v10'];
    $_SESSION['v10_fabricante'] = $_POST['fabricante_v10'];
    $_SESSION['antirrabica'] = $_POST['antirrabica'];
    $_SESSION['antirrabica_data'] = $_POST['antirrabica_data'];
    $_SESSION['antirrabica_fabricante'] = $_POST['antirrabica_fabricante'];
    $_SESSION['vermifugo'] = $_POST['vermifugo'];
    $_SESSION['vermifugo_data'] = $_POST['vermifugo_data'];
    $_SESSION['vermifugo_fabricante'] = $_POST['vermifugo_fabricante'];
    $_SESSION['banho'] = $banho;
    $_SESSION['banho_data'] = $_POST['data_banho'];
    $_SESSION['banho_responsavel'] = $_POST['responsavel_banho'];
    $_SESSION['resumo_medico'] = $_POST['resumo_medico'];
    
    $result_id = "SELECT * FROM dogs WHERE id_dog LIKE '$id_dog'";
    $rersultado_id = mysqli_query($conn, $result_id);
    
    while ($rows_id = mysqli_fetch_array($rersultado_id)) {
    if ($rows_id['id_dog'] == "") {
      $sql = "INSERT INTO dogs (nome, raca, sexo, castrado, peso, cor, nascimento, resgatado_data, resgatado_local, origem_entrada, v6, v6_data, v6_fabricante, v8, v8_data, v8_fabricante, v10, v10_data, v10_fabricante, antirrabica, antirrabica_data, antirrabica_fabricante, vermifugo, vermifugo_data, vermifugo_fabricante, banho, banho_data, banho_responsavel, resumo_medico, criacao) VALUES ('$nome', '$raca', '$sexo', '$castrado', '$peso', '$cor', '$nascimento', '$data_resgate', '$local', '$origem', '$v6', '$v6_data', '$v6_fabricante', '$v8', '$v8_data', '$v8_fabricante', '$v10', '$v10_data', '$v10_fabricante', '$antirrabica', '$antirrabica_data', '$antirrabica_fabricante', '$vermifugo', '$vermifugo_data', '$vermifugo_fabricante', '$banho', '$banho_data', '$banho_responsavel', '$resumo_medico',  now())";
    }else {
      $sql = "UPDATE dogs SET nome = '$nome', raca = '$raca', sexo = '$sexo', castrado = '$castrado', peso = '$peso', cor = '$cor', nascimento = '$nascimento', resgatado_data = '$data_resgate', resgatado_local = '$local', origem_entrada = '$origem', v6 = '$v6', v6_data = '$v6_data', v6_fabricante = '$v6_fabricante', v8 = '$v8', v8_data = '$v8_data', v8_fabricante = '$v8_fabricante', v10 = '$v10', v10_data = '$v10_data', v10_fabricante = '$v10_fabricante', antirrabica = '$antirrabica', antirrabica_data = '$antirrabica_data', antirrabica_fabricante = '$antirrabica_fabricante', vermifugo = '$vermifugo', vermifugo_data = '$vermifugo_data', vermifugo_fabricante = '$vermifugo_fabricante', banho = '$banho', banho_data = '$banho_data', banho_responsavel = '$banho_responsavel', resumo_medico = '$resumo_medico', criacao = now() WHERE id_dog = '$id_dog'";
    }
    }
    if (mysqli_query($conn, $sql)) {
        header('Location: registro.php');
      } else {
        header('Location: registro_dog.php');
     }
    
    mysqli_close($conn);
    
    ?>

1 answer

1

Pedro, this function mysqli_fetch_array() returns NULL if no result is found as the PHP website says:

Returns an array that corresponds to the obtained row or NULL if there are no more rows in the result set.

Knowing this you could test this way:

if(is_null($rows_id['id_dog'])){
// opção caso não exista o id no bd
else{
 // opção caso já exista o registro
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.