I'm having trouble on the last else [closed]

0
        if(is_numeric($id) && $id >=1){
            $stmt = $obj_mysqli->prepare("UPDATE 'clientes' SET 'nome'=$nome, 'email'=$email, 'cidade'=$cidade, 'uf'=$uf WHERE id= $id");
            $stmt->bind_param('ssssi', $nome, $email, $cidade, $uf, $id);

            if(!$stmt->execute()){
                $erro = $stmt->error;
            }
            else{
                header("Location:cadastro.php");
                exit;
            }
            /*retorna o erro<!--O PROBLEMA ESTÁ AQUI PRA BAIXO-->
            else{
                $erro = "Número Inválido";
            }*/
    
asked by anonymous 27.07.2018 / 22:33

3 answers

3

You can not use 2 elses without conditions in a row.

Or you put a condition (else if ()), or close the if "parent" with a "}" before the second else:

   if(is_numeric($id) && $id >=1){
        $stmt = $obj_mysqli->prepare("UPDATE 'clientes' SET 'nome'=$nome, 'email'=$email, 'cidade'=$cidade, 'uf'=$uf WHERE id= $id");
        $stmt->bind_param('ssssi', $nome, $email, $cidade, $uf, $id);

        if(!$stmt->execute()){
            $erro = $stmt->error;
        }
        else{
            header("Location:cadastro.php");
            exit;
        }
   }
   else {
       $erro = "Número Inválido";
   }
    
27.07.2018 / 22:38
0

You're making a syntax error, you're missing a key shortly before the second else , like this:

if(is_numeric($id) && $id >=1){
    $stmt = $obj_mysqli->prepare("UPDATE 'clientes' SET 'nome'=$nome, 'email'=$email, 'cidade'=$cidade, 'uf'=$uf WHERE id= $id");
    $stmt->bind_param('ssssi', $nome, $email, $cidade, $uf, $id);

    if(!$stmt->execute()){
        $erro = $stmt->error;
    }
    else{
        header("Location:cadastro.php");
        exit;
    }
}
else{
    $erro = "Número Inválido";
}
    
27.07.2018 / 22:37
-1

I tested your code in PHPTester and had the errors:

  • FATAL ERROR syntax error, unexpected '**' (T_POW) on line number 12
  • FATAL ERROR syntax error, unexpected 'else' (T_ELSE) on line number 13
  • FATAL ERROR syntax error, unexpected '**' (T_POW), expecting end of file on line number 15 Fixed code:

    if(is_numeric($id) && $id >=1){
        $stmt = $obj_mysqli->prepare("UPDATE 'clientes' SET 'nome'=$nome, 'email'=$email, 'cidade'=$cidade, 'uf'=$uf WHERE id= $id");
        $stmt->bind_param('ssssi', $nome, $email, $cidade, $uf, $id);
    
        if(!$stmt->execute()){
            $erro = $stmt->error;
        }
        else{
            header("Location:cadastro.php");
            exit;
        }}
        else{
            $erro = "Número Inválido";
        }
    
27.07.2018 / 23:49