• User Attivo

    Prova in questo modo:

    
    CREATE TRIGGER gestione_goal
    AFTER UPDATE ON Giocatori
    FOR EACH ROW
    BEGIN
      UPDATE Classifica
      SET Goal_Fatti = Goal_Fatti + 1 
      WHERE Nomesq = NEW.Squadra;
    
      UPDATE Partita
      SET Goal_Sq1 = Goal_Sq1 + 1
      WHERE Sq1 = NEW.Squadra;
    
      UPDATE Partita
      SET Goal_Sq2 = Goal_Sq2 + 1
      WHERE Sq2 = NEW.Squadra;
    END;
    
    

  • User

    Io questo codice che mi hai dato nn l'ho ancora provato! Ma ci sono due problemi di fondo! Ora ti dico meglio quello che vorrei creare perchè ti chiedo scusa ma forse nn sono stato molto chiaro! Con il php quando segna un giocatore vorrei che oltre alla tabella giocatori si modificassero anche la Tabella Classifica e Partita! Ma solo quando aggiorno il goal di giocatori! Giocatori potrei aggiornarlo anche per ammonizioni, espulsioni e nn voglio che in quel caso mi faccia un aumento di goal! Inoltre nn ho capito bene perchè hai messo New. squadra! Pensi che l'errore sia nel fatto che nn riconosca il campo squadra perchè è stato aggiornato il giocatore? Cmq la cosa che mi preme di + p il fatto che le modifiche alle altre tabelle devono esserci solo se viene segnato un goal e nn per altri casi! Ti ringrazio tanto per il tuo aiuto e spero insieme di risolvere il problema!


  • User

    Altre idee??? Sups e gli altri nn mi abbandonate!!! :arrabbiato: :arrabbiato: :arrabbiato:


  • User Attivo

    Prova in questo modo, se non funziona, postami il nome dei capi più significativi che entrano in gioco nella modifica delle tre tabelle.

    
    CREATE TRIGGER gestione_goal
    AFTER UPDATE OF NumeroGoal ON Giocatori
    FOR EACH ROW
    BEGIN
        IF(OLD.NumeroGoal <> NEW.NumeroGoal)
            UPDATE Classifica SET Goal_Fatti = Goal_Fatti + 1 WHERE Nomesq = OLD.Squadra;
            UPDATE Partita SET Goal_Sq1 = Goal_Sq1 + 1 WHERE Sq1 = OLD.Squadra;
            UPDATE Partita SET Goal_Sq2 = Goal_Sq2 + 1 WHERE Sq2 = OLD.Squadra;
        END IF;
    END;
    
    

  • User

    Ho scritto due volte lo stesso messaggio!


  • User

    Sups se metto il codice come mi hai scritto mi da problemi alla riga 2 dove c'è OF Goal ON Giocatori! Se invece metto solo On mi da errore alla riga 6!
    Cmq la tabella Giocatori è cosi:
    Gid Nome``Cognome``Ruolo``Squadra``Goal``Ammonizioni Espulsioni
    La tabella Classifica è :
    Nomesq``Serie``Anno``Punti``V``P``S``Goal_Fatti!

    mentre Partita è:
    'StadioDataSq1Goal_sq1Goal_sq2%Posspalla A%PosspallaBCannoniereCartelliniA``Cartellin iB`

    Nn so se la struttura delle tabelle ti possa essere d'aiuto!


  • User Attivo

    Prova a modificarlo in questo modo:

    
    CREATE TRIGGER gestione_goal
    AFTER UPDATE ON Giocatori
    FOR EACH ROW
    BEGIN
        IF(OLD.NumeroGoal <> NEW.NumeroGoal)
            UPDATE Classifica SET Goal_Fatti = Goal_Fatti + 1 WHERE Nomesq = NEW.Squadra;
            UPDATE Partita SET Goal_Sq1 = Goal_Sq1 + 1 WHERE Sq1 = NEW.Squadra;
            UPDATE Partita SET Goal_Sq2 = Goal_Sq2 + 1 WHERE Sq2 = NEW.Squadra;
        END IF;
    END;
    
    

    Comunque, Nomesq e Squadra, Sq1 e Squadra, Sq2 e Squadra, devono essere dello stesso tipo, es. tipo di dato varchar.
    Se ti da nuovamente errore riportalo nel post.


  • User

    Mi da sempre errore alla sesta riga!
    #1064 - 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 'UPDATE Classifica SET Goal_Fatti = Goal_Fatti + 1 WHERE Nomesq = NEW.Squadra' at line 6
    Sups nn possiamo trovare un modo per parlarci + velocemente? Magari una chat? Perchè anchio sto facendo delle prove ma nn riesco proprio a capire perchè da questi errori! poichè devo consegnare il progetto mi servirebbe una mano abbastanza velocemente! invece cosi riusciamo a parlarci al max 2 volte al giorno! Fammi sapere


  • User

    Sono tutte varchar(20) e in Parita le chiave primaria è composta da Data,Sq1,Sq2 mentre in Classifica da Nomesq,Serie,Anno in Giocatori la chiave è solo il Gid! Poi ho fatto due prove
    Ho tolto l'IF e lasciato solo un Update ma niente sempre errore a quella riga! Poi ho provato a togliere le update e metterci una select dentro l'if ma niente lo stesso! Bhol....


  • User Attivo

    C'è la fai a creare ed a postare il dump file del database.
    Il comando da digitare è questo:

    mysqldump nome_dp > nome_file.sql

    Così posso avere una copia per effettuare i test.


  • User

    Sump se ti do il file zip con il database esportato per te va bene?
    Fammi sapere
    Grazie


  • User Attivo

    Si, va bene se mandi il zip file del dump del DB.


  • User

    Sups come te lo mando? Ti ho mandato il mio msn scrivendoti che è .com nn .it!
    Ti è arrivato? Fammi sapere! io sono qui che sto vedendo!


  • User Attivo

    Devi andare in "Modalità avanzata" e scorrendo c'è una voce "Allegati", li devi inserire il file.
    Io il tuo indirizzo l'ho messo in lista.


  • User

    il file è 338 kbyte e supera il limite! Mi hai messo in lista che vuol dire? mi hai aggiunto tra i contatti di msn?