Visualizzazione dei risultati da 1 a 4 su 4

Discussione: MySQL DELETE

  1. #1

    MySQL DELETE

    Ciao a tutti.
    Ho un problema con il comando DELETE.
    Sto cercando di eliminare dei record dal mio DB ma mi vengono fuori dei messaggi di errore che capisco ma non riesco a risolvere.

    Vi posto il pezzo di codice incriminato :

    codice:
    $queryCanc = "DELETE FROM Voli WHERE (nome_Aeroporto = '$nAeroporto') AND (codice_Aeroporto = '$cAeroporto') AND (nome_Compagnia = '$nCompany') AND (codice_Volo = '$cVolo') AND ( ora_Inizio = $oIn) AND (ora_Fine = $oFi) AND (frequenza = $freq) AND (inizio_Servizio = '$inS') AND (fine_Servizio = '$fiS') AND (partenza_arrivo = '$pa'))";
    	
    	$responseCanc = mysql_query($queryCanc);
    	
    	echo "
    ";
    	
    	if(!$responseCanc){
    		die ("Query di cancellazione tratta non riuscita : " .mysql_error());
    	}else{
    		echo("Tratta cancellata!!!".mysql_error());
    	}
    Il messaggio d'errore e' questo :

    Query di cancellazione tratta non riuscita : 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 ':10:00) AND (ora_Fine = 16:00:00) AND (frequenza = LMMGVSD) AND (inizio_Serviz' at line 1


    Qualcuno riesce a spiegarmi dove forse sbaglio?

    Grazie,
    P.

  2. #2

    Re: MySQL DELETE

    Originariamente inviato da PablitoEscobar
    Ciao a tutti.
    Ho un problema con il comando DELETE.
    Sto cercando di eliminare dei record dal mio DB ma mi vengono fuori dei messaggi di errore che capisco ma non riesco a risolvere.

    Vi posto il pezzo di codice incriminato :

    codice:
    $queryCanc = "DELETE FROM Voli WHERE (nome_Aeroporto = '$nAeroporto') AND (codice_Aeroporto = '$cAeroporto') AND (nome_Compagnia = '$nCompany') AND (codice_Volo = '$cVolo') AND ( ora_Inizio = $oIn) AND (ora_Fine = $oFi) AND (frequenza = $freq) AND (inizio_Servizio = '$inS') AND (fine_Servizio = '$fiS') AND (partenza_arrivo = '$pa'))";
    	
    	$responseCanc = mysql_query($queryCanc);
    	
    	echo "
    ";
    	
    	if(!$responseCanc){
    		die ("Query di cancellazione tratta non riuscita : " .mysql_error());
    	}else{
    		echo("Tratta cancellata!!!".mysql_error());
    	}
    Il messaggio d'errore e' questo :

    Query di cancellazione tratta non riuscita : 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 ':10:00) AND (ora_Fine = 16:00:00) AND (frequenza = LMMGVSD) AND (inizio_Serviz' at line 1


    Qualcuno riesce a spiegarmi dove forse sbaglio?

    Grazie,
    P.
    prova a stampare la query

    a occhio
    $queryCanc = "DELETE FROM Voli WHERE (nome_Aeroporto = '$nAeroporto') AND (codice_Aeroporto = '$cAeroporto') AND (nome_Compagnia = '$nCompany') AND (codice_Volo = '$cVolo') AND ( ora_Inizio = $oIn) AND (ora_Fine = $oFi) AND (frequenza = $freq) AND (inizio_Servizio = '$inS') AND (fine_Servizio = '$fiS') AND (partenza_arrivo = '$pa'))";

    xche' due parentesi?
    Tremal-Naik
    ******************************
    passa a LINUX
    **********
    la religione e' il freno che impedisce al povero di ammazzare il ricco

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Ci fai la echo della variabile $queryCanc prima dell'esecuzione?
    Magari oltre che postarla qua provala anche direttamente sul DB e vedi che dice

    Inoltre indenta le query per renderle più leggibili in questo modo
    Codice PHP:
    $queryCanc "
      DELETE 
      FROM Voli 
      WHERE 
          (nome_Aeroporto = '
    $nAeroporto') 
        AND 
          (codice_Aeroporto = '
    $cAeroporto') 
        AND 
          (nome_Compagnia = '
    $nCompany') 
        AND 
          (codice_Volo = '
    $cVolo') 
        AND 
          ( ora_Inizio = 
    $oIn
        AND 
          (ora_Fine = 
    $oFi
        AND 
          (frequenza = 
    $freq
        AND 
          (inizio_Servizio = '
    $inS') 
        AND 
          (fine_Servizio = '
    $fiS') 
        AND 
          (partenza_arrivo = '
    $pa'))"
    E si vede subito una parentesi di troppo

    O in qualche altro modo a te gradito ma che ti renda facile la consultazione, separando comando (DELETE) da tabelle (FROM) da condizioni (WHERE)
    La stessa cosa la faccio con le SELECT separandole dalle join, dai group by, limit ecc

  4. #4
    Ok perfetto grazie per i consigli, cerchero di essere piu ordinato!

    Ho dovuto cmq rimuovere degli spazi dai campi prelevati tramite form.

    Togliendo poi quella parentesi e inserendo i campi incriminati tramite apici ora m elimina le tratte!

    Grazieeeeeeeeee

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.