come si fa a fare una query simile?
"DELETE FROM files WHERE
id_C = '$user_id'
AND
//qui viene il difficile
volgio cancellare anche quei record
che abbiamo il campo
id_C [che è anche una key in un'altra tabella]
nulla in quell'altra tabella
come si fa a fare una query simile?
"DELETE FROM files WHERE
id_C = '$user_id'
AND
//qui viene il difficile
volgio cancellare anche quei record
che abbiamo il campo
id_C [che è anche una key in un'altra tabella]
nulla in quell'altra tabella
Si capiva di piu' prima che modificassi. Premetto che devi fare due queries. Una cancella i dati che sono equi-join, cioe' presenti in entrambe le tabelle e puoi cancellare in entrambe le tabelle, un'altra che cancella i dati della prima tabella dove non ci sono corrispondenze nella seconda tabella.
Essendo una cancellazione, o tieni prima copia, oppure provi con SELECT. Quando ottieni il risultato aspettato passi al delete con gli stessi criteri di ricerca.
Vediamo:
Prova con e senza la riga dove c'e' NULL. Quando il risultato atteso e' corretto cambia la SELECT con IL DELETE corrispondente.codice:DELETE tab_a a cosi' cancella solo tab_a DELETE tab_a a, tab_b b cosi' cancella entrambe Tu pero' prima fai: SELECT * FROM tab_a a, tab_b b where a.id_C = b.id_C AND b.id_C IS NULL <-- dopo togli questa riga AND a.id_C = '$user_id'
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
grazie piero
unultima cosa
ho settato la scadenza dei cookie in questo modo
$scadenza = time()+(3600*6)
e il campo in cui registro la data di creazione è un datetime
scusa la mia pura pigrizia
potrei fare anche una ricerca o leggermi il mio librone
però sono fusa e non ne posso +
se faccio
"SELECT ......
WHERE data > $scadenza
i valori sono della stessa razza e l'operazione andrà a buon fine
o ho sbagliato nel scegliere il tipo di campo
grazie se riposponderai
per ora nelle select sei un punto di riferimento
mi sa sempre riprendendo una recente discussione di piero che nn sono della stessa razza
time->unix timestamp
mysql->formato suo (aaaammgghhmmss)
anzi date time è n'altro ancora me pare..
poi piero viene e ti aiuta![]()
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
Se hai un campo DATETIME si presenta in questo modo:Originariamente inviato da recensore
ho settato la scadenza dei cookie in questo modo
$scadenza = time()+(3600*6)
"SELECT ......
WHERE data > $scadenza
yyyy-mm-dd H:m:s
Lo puoi tradurre in unix timestamp e verificare i record nel where.
where UNIX_TIMESTAMP(data) > '$scadenza'
in questo caso ti seleziona i record dove data e' superiore a scadenza.
![]()
@luke83... che fai l'apripista????![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
ohhh grazie mille
![]()
sono
domandina...non è importante che sia un datetime
se imposto il campo della data di creazione con un TIMESTAMP invece di un datetime è lo stesso?
Nel tuo caso e' lo stesso, come pero' e' lo stesso come ti ho detto sopra... il vantaggio del datetime e' che e' leggibile direttamente, l'altro va interpretato.Originariamente inviato da recensore
ohhh grazie mille
![]()
sono
domandina...non è importante che sia un datetime
se imposto il campo della data di creazione con un TIMESTAMP invece di un datetime è lo stesso?
UNIX TIMESTAMP sta in un INT(10) 4 byte, datetime occupa esattamente il doppio 8 byte. Vedi tu come ti e' piu' comodo... sono solo spiccioli di spazio...
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
allora uso TIMESTAMP
perchè la data mi serve solo per sapere se è scaduta l asessione
non devo visualizzare il dato
e poi così risparmio in byte no?!! :=)
grazie mille
mhhh
ho appena modificato il campo
mhhh
TIMESTAMP e UNIX TIEMSTAMP come tipo campo per te sono lo stesso?
perchè il secondo non me lo da
e poi TIMESTAMP è un int di 14
sono lo stesso tipo o il mysql ceh uso è vecchio?
UNIX_TIMESTAMP non TIMESTAMP di mysql....
campo INT(10) unsigned
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
mhhh
UNIX STAMP non c'è
sto usando mysql su ...
va bhe on si può far nomi di host a pagamento giusto?
veramente non c'è!!!