• User

    if annidati c'è un errore

    Salve non capisco perchè mi restituisce un errore di sintassi, il blocco funzionava prima che inserissi la parte in grassetto, forse non si possono annidare cosi le if oppure credo che ci sia qualche virgola di troppo.... booohhhh

    if ($_POST['azione'] == 'edit') {
    $sql="UPDATE s_annunci SET ";
    $sql.="codice = '$vcod' ,";
    $sql.="nome = '$vnome' ,";
    $sql.="produttore = '$vproduttore' ,";
    $sql.="tipologia = '$vmenu' ,";
    $sql.="tipologia_stili = '$vmenus' ,";
    $sql.="altezza = '$vdatitecnici' ,";
    $sql.="altdiff = '$valtdiff' ,";
    $sql.="largh = '$vlargh' ,";
    $sql.="lungh = '$vlungh' ,";
    $sql.="prof = '$vprofond' ,";
    $sql.="diametr = '$vdiametr' ,";
    $sql.="quantita = '$vquantita' ,";
    $sql.="prezzo = '$vprezzo' ,";
    $sql.="descrhom = '$vdescrhom' ,";
    $sql.="descrizione = '$vdescrizione' ,";
    $sql.="costi = '$vcosti' ,";
    $sql.="tempi = '$vtempi' ,";
    $sql.="paypal = '$vpaypal' ,";
    $sql.="bonifico = '$vbonifico' ,";
    $sql.="contrassegno = '$vcontrassegno' ,";
    $sql.="descrlam = '$vdescrlam' ,";
    $sql.="tipo_lampadine = '$vlampadinetipo' ,";
    if( $img1_name != "" ){
    $sql.="lampadine = '$vlampadine' ,";
    ** if( $img4_name != "" ){$sql.="img2 = '$img4_name ,'";}
    if( $img5_name != "" ){$sql.="img3 = '$img5_name ,'";}
    if( $img6_name != "" ){$sql.="img4 = '$img6_name ,'";}
    if( $img7_name != "" ){$sql.="img5 = '$img7_name ,'";}**
    $sql.="img = '$img1_name'";
    }else{
    ** if( $img4_name != "" ){$sql.="img2 = '$img4_name ,'";}
    if( $img5_name != "" ){$sql.="img3 = '$img5_name ,'";}
    if( $img6_name != "" ){$sql.="img4 = '$img6_name ,'";}
    if( $img7_name != "" ){$sql.="img5 = '$img7_name ,'";}**
    $sql.="lampadine = '$vlampadine'";
    }
    $sql.="where id = ". $_POST['id_annuncio'];
    $risultato=mysql_query($sql, $conn) or die (mysql_error());
    }


  • User

    Ci puoi dire quale errore ti da?


  • User

    si certo.. questo è l'errore:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'img = 'primo_3152013102113.jpg'where id = 69' at line 1

    mi dà errore solo se si verifica una delle condizioni if annidate sia nel primo blocco che nel secondo

    if( $img1_name != "" ){
    $sql.="lampadine = '$vlampadine' ,";
    if( $img4_name != "" ){$sql.="img2 = '$img4_name ,'";}
    if( $img5_name != "" ){$sql.="img3 = '$img5_name ,'";}
    if( $img6_name != "" ){$sql.="img4 = '$img6_name ,'";}
    if( $img7_name != "" ){$sql.="img5 = '$img7_name ,'";}

    $sql.="img = '$img1_name'";
    }else{
    ** if( $img4_name != "" ){$sql.="img2 = '$img4_name ,'";}
    if( $img5_name != "" ){$sql.="img3 = '$img5_name ,'";}
    if( $img6_name != "" ){$sql.="img4 = '$img6_name ,'";}
    if( $img7_name != "" ){$sql.="img5 = '$img7_name ,'";}**
    $sql.="lampadine = '$vlampadine'";
    }


  • User Attivo

    Ho dato solo un'occhiata veloce, ma metti uno spazio prima del WHERE, perché nell'errore mysql che hai postato il problema dovrebbe essere proprio quello.

    E soprattutto... proteggi quel $_POST["id_annuncio"]. Non passarlo alla query così come proviene dal POST, o prima o poi ti ritroverai una brutta sorpresa.