Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    Probelam query UPDATE su JOIN

    Ecco la mia situazione:

    TABELLA articoli:
    -id
    -comm_num

    TABELLA commenti:
    -id
    -id_art
    -deleted

    In pratica quando cancello un commento di cui conosco l'$id devo effettuare una query che:

    1)peschi dalla tabella dei commenti l'id dell'articolo a cui si riferisce il commento
    2)imposti quel commento come cancellato ('deleted=1')
    3)decrementi di uno il numero di commenti all'articolo corrispondente (sulla tabella articoli)

    Per fare tutto ciò in una query unica ho usato JOIN:
    codice:
    "UPDATE (articoli INNER JOIN commenti     ON articoli.id = commenti.id_art        ) SET articoli.comm_num = articoli.comm_num -1, commenti.deleted     =1 WHERE commenti.id     = $id; "
    PROBLEMA: questa query mi decremente MISTERIOSAMENTE il campo comm_num di DUE e non di UNO. Cosa c'è di sbagliato? Qualche suggerimento?
    :master: :master:

    Grazie
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  2. #2
    codice:
    "UPDATE articoli, commenti 
    SET 
    articoli.comm_num = articoli.comm_num -1, 
    commenti.deleted = 1
    WHERE articoli.id = commenti.id_art
    AND commenti.id = $id;"
    prova cosi' senza INNER JOIN.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Nulla, ancora un decremento doppio....
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Originariamente inviato da Xadoom
    Nulla, ancora un decremento doppio....
    forse esegui due volte l'update? ...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Veramente strano, in effetti sembrerebbe che la query sia eseguita due volte, eppure mi sono fatto stampare tutte le query eseguite nella pagina (le eseguo tutte tramite un'unica funzione) ed è chiamata solo una volta. Sembrerebbe che lo script sia chiamato due volte... Ho risolto mettendo un ceck sulla commenti.deleted, se il commento è già cancellato allora non decremento il contatore; così si risolve, ma rimane un mistero per me...

    Grazie
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

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.