Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310

    creare unica query per insert/update

    ho un form in questa maniera



    con un campo per ogni giorni di un determinato mese, e nel evento POST ricevo un array in questa forma

    [1-2-2010] => 1
    [2-2-2010] => 2
    [3-2-2010] => 3
    ...
    ...
    [27-2-2010] =>
    [28-2-2010] =>

    la tabella è composta da due campi

    mese_anno
    presenze

    per ogni giorno vorrei salvare le relative presenze.

    Sto creando la query con la sintassi IF EXISTS UPDATE ELSE INSERT..

    IF EXISTS (SELECT * FROM presenze_mensili WHERE mese_anno REGEXP '#2-2010')
    UPDATE presenze_mensili SET 1-2-2010="111", 2-2-2010="222"
    ELSE
    INSERT INTO presenze_mensili VALUES (mese_anno = '1-2-2010', presenza = '111'), (mese_anno = '2-2-2010', presenza = '222')

    ma non riesco a venirne a capo.

    In sostanza, se il campo '01-01-2010' non esiste va inserito, altrimenti va aggiornato il suo contenuto..

    qualche dritta?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  2. #2

  3. #3
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    grazie, è perfetto
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  4. #4
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    mi sono accorto di un problema.

    ogni volta mi fa un insert, e mai un update :master:

    leggendo questo

    REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.

    Note that unless the table has a PRIMARY KEY or UNIQUE index, using a REPLACE statement makes no sense. It becomes equivalent to INSERT, because there is no index to be used to determine whether a new row duplicates another.
    ho impostato la tabella cosi

    id_auto (autoincrement e primary key)
    id (id lavoratore)
    mese_anno
    presenze

    dove sbaglio?

    la query è questa

    Codice PHP:
    REPLACE INTO presenze_mensili (idmese_annopresenzeVALUES (7'1-3-2010'''), (7'2-3-2010'''), (7'3-3-2010''33'), (7'4-3-2010''44'), (7'5-3-2010''55'), (7'6-3-2010'''), (7'7-3-2010'''), (7'8-3-2010'''), (7'9-3-2010'''), (7'10-3-2010'''), (7'11-3-2010'''), (7'12-3-2010'''), (7'13-3-2010'''), (7'14-3-2010'''), (7'15-3-2010'''), (7'16-3-2010'''), (7'17-3-2010'''), (7'18-3-2010'''), (7'19-3-2010'''), (7'20-3-2010'''), (7'21-3-2010'''), (7'22-3-2010'''), (7'23-3-2010'''), (7'24-3-2010'''), (7'25-3-2010'''), (7'26-3-2010'''), (7'27-3-2010'''), (7'28-3-2010'''), (7'29-3-2010'''), (7'30-3-2010'''), (7'31-3-2010'''
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  5. #5
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    basta impostare mese_anno e id come UNIQUE e togliere id_auto, non serve
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

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.