Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    57

    Problemi delete left join

    Buona sera a tutti, ho un problema con delete left join con 2 tabelle, la query che ho usato e' la seguente:

    $sql = "DELETE hotel.*,tariffe.* FROM hotel LEFT JOIN tariffe ON hotel.idhotel=tariffe.idhotel WHERE hotel.idhotel".$_GET["id"];

    la query funziona ma il problema sta che quando clicco sul bottone "cancella" mi elimina tutti i records nella tabella hotel invece che del singolo record, per collegare le due tabelle tra di loro ho usato la chiave univoca idhotel, qualkuno sa dove' il problema?
    Grazie

  2. #2

    Re: Problemi delete left join

    Codice PHP:
    $sql "
    DELETE 
    FROM hotel 
    LEFT OUTER JOIN tariffe 
    ON  hotel.idhotel=tariffe.idhotel 
    WHERE hotel.idhotel='"
    .intval($_GET["id"])."' 
    LIMIT 1"


  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    57
    Grazie per la risposta, ma niente da fare non funziona. Non cancella nessun record dalla tabella hotel e tariffe

  4. #4
    stampa la query senza farla eseguire e vedi cosa ottieni

    exit($sql);

    inoltre con il comando mysql_error() vedi che errore ottieni (se li ottineni)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    57
    Non mi da nessun errore, questo è il problema.

    Edit: adesso metteto il comando che mi hai consigliato esce il seguente errore:
    DELETE FROM hotel LEFT OUTER JOIN tariffe ON hotel.idhotel=tariffe.idhotel WHERE hotel.idhotel='0' LIMIT 1
    cmq letabelle sono cosi' composte se può essere utile:
    hotel (idhotel, nome, tipologia, descrizione)
    tariffe (idtariffe, trattamento, periodo, idhotel)
    Grazie

  6. #6
    Codice PHP:
    if(!isset($_GET['id'])) {exit('la variabile get non esiste!!');}
    $sql 
    DELETE  
    FROM hotel  
    LEFT OUTER JOIN tariffe  
    ON  hotel.idhotel=tariffe.idhotel  
    WHERE hotel.idhotel='"
    .intval($_GET['id'])."'  
    LIMIT 1"


  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    57
    Niente da fare, a questo punto non ci sto capendo più niente!

    Edit: Ok ho risolto! ho usato questa query:
    $sql = "DELETE hotel.*,tariffe.* FROM hotel LEFT JOIN tariffe ON hotel.idhotel=tariffe.idhotel WHERE hotel.idhotel=".$_SESSION["id"];

    Grazie per l'aiuto! Buona notte a tutti

  8. #8
    ... che bella soluzione...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    57
    Non so magari è insolita come soluzione ma funziona! Almeno tra due tabelle, adesso devo provare tra 4 tabelle speriamo bene!

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.