birmarco
06-01-2012, 21:46
Ciao a tutti!
Sto creando un'applicazione web in PHP che si occupa inserire e visualizzare informazioni contenute in una base di dati. Come DBMS uso MySQL, ultima versione. Il PHP è anch'esso all'ultima versione. Ho incontrato un paio di problemi, spero che qualcuno di voi possa aiutarmi.
Venendo al primo problema: ho creato un form compilabile da parte dell'utente che, una volta inviato, inserisce tramite query SQL i dati in alcune tabelle. Utilizzo il campo INSERT e tutto fuziona tranquillamente tranne che per il campo ID della tabella. E' una chiave primaria che corrisponde al numero della "riga" della tabella. E' a scopo identificativo. Vorrei che questo numero sia inserito in maniera automatica senza dover andare a leggere l'ultimo valore ID inserito precedentemente e incrementarlo di 1. Esiste un metodo automatico o per lo meno un pochino più elegante del mio? :)
Problema 2: Ho creato una vista che è il JOIN di 4 tabelle, collegate tramite il campo ID. Mi spiego meglio: la tabella A è collegata con C perchè contiene un campo ID_C che fa riferimento al capo ID di C. Lo stesso avviene tra B e C e B e D. Il problema è che questa vista ora ha delle colonne in più che non vorrei avere e che sono quelle dei campi ID che collegano le varie tabelle. Come posso eliminarle? O meglio, evitare di crearle? Il codice SQL che ho usato è questo:
CREATE VIEW `Schema1`.`Vista1`
AS SELECT *
FROM `A`, `B`, `C`, `D`
WHERE `A`.`ID_versoC` = `C`.`ID_C` AND `C`.`ID_versoB` = `B`.`ID_B` AND `C`.`ID_versoD` = `D`.`ID_D`
ORDER BY `A`.`ID_A` ASC;
Ho chiamato per semplicità le tabelle A, B, C e D e il loro ID chiave primaria come ID_* dove * è il nome della tabella. Gli attributi ID_verso* (dove * è sempre la tabella) contengono l'ID della tabella * a cui sono riferiti.
:) :)
Sto creando un'applicazione web in PHP che si occupa inserire e visualizzare informazioni contenute in una base di dati. Come DBMS uso MySQL, ultima versione. Il PHP è anch'esso all'ultima versione. Ho incontrato un paio di problemi, spero che qualcuno di voi possa aiutarmi.
Venendo al primo problema: ho creato un form compilabile da parte dell'utente che, una volta inviato, inserisce tramite query SQL i dati in alcune tabelle. Utilizzo il campo INSERT e tutto fuziona tranquillamente tranne che per il campo ID della tabella. E' una chiave primaria che corrisponde al numero della "riga" della tabella. E' a scopo identificativo. Vorrei che questo numero sia inserito in maniera automatica senza dover andare a leggere l'ultimo valore ID inserito precedentemente e incrementarlo di 1. Esiste un metodo automatico o per lo meno un pochino più elegante del mio? :)
Problema 2: Ho creato una vista che è il JOIN di 4 tabelle, collegate tramite il campo ID. Mi spiego meglio: la tabella A è collegata con C perchè contiene un campo ID_C che fa riferimento al capo ID di C. Lo stesso avviene tra B e C e B e D. Il problema è che questa vista ora ha delle colonne in più che non vorrei avere e che sono quelle dei campi ID che collegano le varie tabelle. Come posso eliminarle? O meglio, evitare di crearle? Il codice SQL che ho usato è questo:
CREATE VIEW `Schema1`.`Vista1`
AS SELECT *
FROM `A`, `B`, `C`, `D`
WHERE `A`.`ID_versoC` = `C`.`ID_C` AND `C`.`ID_versoB` = `B`.`ID_B` AND `C`.`ID_versoD` = `D`.`ID_D`
ORDER BY `A`.`ID_A` ASC;
Ho chiamato per semplicità le tabelle A, B, C e D e il loro ID chiave primaria come ID_* dove * è il nome della tabella. Gli attributi ID_verso* (dove * è sempre la tabella) contengono l'ID della tabella * a cui sono riferiti.
:) :)