Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-05-2011, 15:39   #1
espanico
Senior Member
 
L'Avatar di espanico
 
Iscritto dal: May 2007
Messaggi: 4305
[php+mysql]Inserimento date...

Salve, ho un piccolo script dove mediante un form htm, inserisco dei dati in un db mysql, ora vorrei che quando effettuo la query di inserimento posso inserire e quindi registrare anche la data...e poi successivamente visualizzarla...Come potrei procedere?
__________________
Feedback Mercatino
espanico è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2011, 16:55   #2
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Beh hai l'imbarazzo della scelta:
- Memorizzi il timestamp unix come attributo long nel database. Da php la funzione che ritorna il timestamp è time() (hai informazioni anche sull'ora)
- Memorizzi la data in un formato "leggibile", usando attributi DATE (AAAA-MM-GG) oppure DATETIME (AAAA-MM-GG OO:MM:SS) e li puoi ricavare sia da mysql con la funzione NOW() o da php convertendo il timestamp nel formato desiderato.

Poi puoi sbizzarrirti come vuoi per esempio registrando le date come stringhe in un formato che decidi te via php o altro ancora.
In realtà sotto mysql la gestione delle date e del tempo è così varia che spesso si fa un po' di confusione. Io per abitudine preferisco usare il timestamp unix, lo trovo più semplice da usare per i confronti e mediante php lo puoi trasformare in stringa nel formato che preferisci.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2011, 17:10   #3
espanico
Senior Member
 
L'Avatar di espanico
 
Iscritto dal: May 2007
Messaggi: 4305
Infatti può sembra un argomento semplice, invece... adesso faccio qualche prova con timestamp e a limite posto il codice. Un altra cosa siccome lo script/sito che sto realizzando prevede la modifica più aggiunta di dati successivamente al primo inserimento....quindi io vorrei:

Che venga registrata la data del primo inserimento, fin qui dovrebbe essere semplice, mi creo un campo timestamp nel db che vado a popolare con la query di inserimento giusto? poi ho la pagina di aggiornamento dove ci sono 5 campi che potrebbero essere aggiornato oppure no successivamente e vorrei che per ogni campo ci sia la data di modifica, come potrei fare non so se mi sono spiegato bene....
__________________
Feedback Mercatino
espanico è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2011, 19:34   #4
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Se ho capito bene tu devi inserire in una tabella dei dati i quali poi possono essere modificati e devi tenere traccia delle modifiche (della data almeno).
Io userei due tabelle: la prima tabella contiene i dati veri e propri aggiornati, nell'altra invece registri le date delle modifiche.
La prima tabella potrebbe essere del tipo:
DATI (id_dato, attributo_1, attributo_2, attributo_3, data_primo_inserimento)
la seconda tabella protrebbe essere:
MODIFICHE (id_modifica, id_dato, attributo_modificato, data_modifica)

L'uso della tabella DATI è logico: quando inserisci un nuovo insieme di dati, crei un nuovo record che avrà un id_dato univoco (puoi farlo autoincrement) che sarà anche la chiave primaria, gli attributi di interesse e la data di primo inserimento.
La tabella MODIFICHE contiene un id_modifca anche questo autoincrement e primary key, una chiave esterna id_dato che riporta l'id del dato modificato, un valore che indica quale attributo è stato modificato e la data di modifica.
Il valore "attributo_identificato" devi decidere te come usarlo. Se per esempio tratti dati anagrafici, potresti dire che "attributo_modificato" assume valori da 1 a 3 dove 1=nome, 2=cognome, 3=C.F...
Potresti anche usare una terza tabella dove associ i numeri agli attributi, ma non è necessario.
In questo caso, se modifichi più attributi alla volta dovrai fare tante query di inserimento quanti sono gli attributi modificati.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight

Ultima modifica di demos88 : 25-05-2011 alle 19:37.
demos88 è offline   Rispondi citando il messaggio o parte di esso
Old 29-05-2011, 19:18   #5
espanico
Senior Member
 
L'Avatar di espanico
 
Iscritto dal: May 2007
Messaggi: 4305
Ciao ho fatto qualche prova e non sono riuscito a risolvere, in pratica, non ho capito come fare, ecco un esempio questi sono i campi che possono vengono aggiornati singolarmente e in giorni diversi quindi la data deve essere indipendente...

Campo 1 = xxxxxx Data campo 1 = dd/MM/yyyy
Campo 2 = yyyyy Data campo 1 = dd/MM/yyyy
Campo 3 = zzzzzz Data campo 1 = dd/MM/yyyy

Io per aggiornare i dati nei campi utilizzo questa query:

Codice PHP:
$sql "UPDATE acconti SET acc_1='$_GET[acc_1]', acc_2='$_GET[acc_2]', acc_3='$_GET[acc_3]',  data_mod=sysdate() WHERE id='$_GET[id]'"
Nel database ho creato un campo data_mod, ma in questo modo qualsiasi valori vado ad aggiornare, avrà sempre l'ultima data, come faccio a sdoppiare il tutto, ne senso che vado a creare x campi quando valori ho da modificare in modo che se modifico solo il valore del campo 2 la data viene aggiornata solo per quel campo. Non so se mi sono spiegato bene....
__________________
Feedback Mercatino
espanico è offline   Rispondi citando il messaggio o parte di esso
Old 29-05-2011, 22:43   #6
demos88
Senior Member
 
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
Quello a cui avevo pensato era qualcosa del genere:
creo le due tabelle che mi servono
Codice:
CREATE TABLE `db`.`accounts` (
`account_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nome` VARCHAR( 16 ) NOT NULL ,
`cognome` VARCHAR( 16 ) NOT NULL ,
`cf` VARCHAR( 16 ) NOT NULL ,
`data_creazione` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = InnoDB;

CREATE TABLE `db`.`modifiche` (
`id_modifica` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`account` INT NOT NULL ,
`dato_modificato` INT NOT NULL ,
`data_modifica` INT NOT NULL ,
INDEX ( `account` )
) ENGINE = InnoDB;

ALTER TABLE `modifiche` ADD FOREIGN KEY ( `account` ) REFERENCES `db`.`accounts` (
`account_id`
) ON DELETE CASCADE ON UPDATE CASCADE ;
L'inserimento di un nuovo account avviene semplicemente così:
Codice:
INSERT INTO `db`.`accounts` 
VALUES (
NULL , 'Paolo', 'Rossi', 'PLARSS',
CURRENT_TIMESTAMP
);
La modifica di un dato deve essere in parte gestita da php.
Ipotizzo che tu abbia delle caselle di testo da riempire con i nuovi dati (nome, cognome, cf); se all'atto della conferma una casella di testo è vuota oppure corrisponde al contenuto già presente nel DB, allora consideri il dato come non da modificare.
Nello script che riceve i dati (presumiamo via GET) dovrai fare i vari controlli per verificare quali siano i dati da modificare.
Ipotizziamo che tu abbia ricevuto nome e cf nuovi (l'esempio è infelice perchè se cambi il nome è ovvio che cambi anche il cf, ma tralasciamo...).
Nello script php ti ritrovi $_GET['nome'] e $_GET['cf'] non nulli e diversi da quelli nel db (devi aver prima fatto un select ricercando l'id_account dell'account da modificare).
Per modificare i 2 dati, userai in tutto 3 query:
2 per registrare le modifiche:
Codice:
$sql="INSERT INTO `db`.`modifiche`
VALUES (NULL , '". $id_account ."', '1', CURRENT_TIMESTAMP);"

$sql="INSERT INTO `db`.`modifiche`
VALUES (NULL , '". $id_account ."', '3', CURRENT_TIMESTAMP);"
La differenza fra le due query sta nel 3° valore di inserimento che nel primo caso è 1 (indica che la modifica è apportata al nome), nel secondo è 3 (apportata al codice fiscale). Se avessi cambiato il cognome, avrei scritto 2.
Ovviamente $id_account è l'id dell'account che modifichi e devi saperlo.

Poi modifichi i dati veri e propri con una query di UPDATE:
Codice:
$sql="UPDATE `db`.`accounts` SET `nome` = '". $_GET['nome'] ."',
`cf` = '". $_GET['cf'] ."' WHERE `accounts`.`account_id` =". $id_account . ";";
Una cosa del genere...
Al posto dei numeri, per indicare l'attributo modificato puoi usare delle stringe tipo: "n", "c", "cf". Però il confronto fra numeri è in generale più veloce...
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight
demos88 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
CAS Space ha lanciato per la prima volta...
Qualcomm boccia Samsung: i futuri chip S...
Il razzo spaziale cinese Tianlong-3 di S...
Samsung cambia i piani: aumenta la produ...
TSMC non si ferma più: fatturato ...
Xiaomi porta in Italia il nuovo Redmi A7...
Mercato smartphone: Q1 2026 positivo (+1...
YouTube punta sull'AI: gli utenti potran...
Il prossimo chip a 2 nm di Samsung punte...
Due smartphone REDMAGIC sono stati rimos...
La beta della One UI 8.5 è ora di...
Addio al Pannello di Controllo di Window...
Il chip N1 di NVIDIA per i laptop del fu...
YouTube Premium costerà di pi&ugr...
I nuovi Samsung Galaxy A57 5G e A37 5G a...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v