Se fai il login qui e vai su database->accedi a phpmyadmin clicca my_allianzpescarariviera (sei entrato nel database) clicca sql per creare la tabella con un esempio di sintassi proposta più avanti.
Codice:
CREATE TABLE IF NOT EXISTS `Costumer` (
`id` INT NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(20) NOT NULL,
`cognome` VARCHAR(20) NOT NULL,
`dataDiNascita` DATE NOT NULL,
`luogoDiNascita` VARCHAR(60) NOT NULL,
`sesso` ENUM('M','F') NULL,
`codiceFiscale` CHAR(16) NOT NULL,
`indirizzo` VARCHAR(60) NOT NULL,
`polizza` TEXT(65535) NOT NULL,
CONSTRAINT uq_po UNIQUE (`polizza`),
PRIMARY KEY (`id`))
ENGINE = InnoDB;
Creerà se già non esiste una tabella di nome Costumer con una chiave primaria auto-incrementata (integer di mysql e php se con sistema operativo a 32 bit è di 4 bytes con segno),questo serve a racchiudere tutti i clienti che potrebbero anche avere più polizze in un unico id. VARCHAR e CHAR sono dati di tipo stringa per mysql, se si ha una stringa costante si può utilizzare l'ultima che occupa meno memoria. CONSTRAINT sto indicando un indice UNIQUE unico uq_po per tabella. Mentre con ENGINE indico quale tipo di motore di mysql che in questo caso è "InnoDB". Il carattere ";" finisce l'istruzione di mysql. *Note DATE di mysql accetta YYYY-MM-DD come formato di data, ENUM (sesso) può non esserci (NULL) o M o F come valore. Mi baso sul presupposto che siano maggiori i clienti con un'unica polizza e la rendo univoca, in caso di più polizze direi di aggiungere un carattere che non compare mai es. 10000,10001,10002 qui è la virgola. Quindi sql per la ricerca di polizza cambierebbe con l'aggiunta di like
Codice:
SELECT `id`,`nome`,`cognome`,`dataDinascita`,`luogoDinascita`,`sesso`,`codiceFiscale`,`indirizzo`,`polizza` FROM `Costumer` WHERE `polizza` LIKE '%10001%';
es. su stringhe di n lunghezze uguali. Dopo aver creato il database puoi continuare a fare interrogazioni sql o aggiungi in modo visuale i valori. Se devi inserire nuovi dati è bene verificare che non siano già presenti
Codice:
SELECT `id` , `polizza` FROM `Costumer` WHERE `codiceFiscale`='codice_valido' AND `indirizzo`='sempre_valido';
Se è presente esattamente un risultato e dopo aver confrontato (con un'altra sql mostrata più avanti) se non sono già presenti polizze potrai fare una sql UPDATE, se è più di un risultato dovresti mostrare errore e non procedere lo script. Indipendentemente dalla sql di prima devi effettuare sempre e comunque un'altra sql che ti recuperi tutte le polizze
Codice:
SELECT `id`,`polizza` FROM `Costumer`;
nel frattempo che fai i cicli ricordati di conservare l'id e polizza per quel id, inoltre ricordati di suddividere eventuali stringhe presenti nella colonna polizza tramite un carattere di delimitazione di inizio nuova polizza "," sia che provengono dal database o sono presenti nel tuo script, confrontale e se uguali verifica se è presente un unico id poi elimini le polizze uguali ,in caso di più id è dunque con più polizze uguali scrivi un errore, mentre in caso di più polizze uguali sullo stesso id e verificando che non sia in altri id un'altro tipo d'errore, se polizze sono presenti in entrambe, dunque più di una in un id e più in diversi id un'altro tipo di errore è dopo aver valutato i primi due controlli e a seconda se siano presenti insieme (terzo controllo) finisci lo script con adeguato errore.
EDIT meglio non creare
Codice:
CONSTRAINT uq_po UNIQUE (`polizza`)
.
Beh che dite è già qualcosa no? hahaha (domanda retorica)