- Home
- Categorie
- Coding e Sistemistica
- PHP
- Gestione utenti, foto preferite ecc, ecc
-
Gestione utenti, foto preferite ecc, ecc
Sto creando un portale in php e mysql, ho un dubbio, o meglio, mi sono totalmente impuntato.
In questo portale ogni utente può (o meglio potrebbe dato ora ho problemi a farlo andare) aggiungere delle foto presenti in una tabella del database come sue preferite.Fino a questo punto ho creato la tabella degli utenti con questi campi.
tabella_utenti
id_utente (primary, auto increment)
username
password
attivo
(e altre impostazioni del utente)La tabella delle foto.
**tab_image
**foto (sarebbe il link all'immagine)
descimage
nomeimage
titolo
data
attivaIl dubbio viene ora, avevo pensato di fare un ulteriore tabella con questi campi:
id (auto increment)
id_img (id del immagine)
id_utente (l'id del utente)ma ora non riesco a trovare il modo di far interagire il tutto, nel senso, ovviamente dentro la tabella delle foto prerite ho inserito tutti i valori, ma poi? Non riesco a creare una query funzionante allo scopo.... mi potete dare una mano??
Altra cosa, come posso fare per non avere doppioni delle foto uguali di un utente?
Esempio.
id 1
id_img 122
id_utente 4id 2
id_img 122
id_utente 4Spero di essermi spiegato, fatico a capirmi anche io, ho passato tutto il giorno a rendere compatibile un sito con ie6...
-
Ciao EaMania,
se ho capito bene il problema, ti occorre fare una query JOIN, impostando l'uguaglianza sul campo id_utente. Una cosa del tipo:**SELECT .tabella_utenti, .tab_image FROM tabella_utenti LEFT JOIN tab_image ON id_utente.tabella_utenti=id_utente.tab_image
In questo caso ottieni di accorpare tutti i campi come se fossere in un'unica tabella. La query scritta però non dovrebbe funzionare correttamente nel tuo caso dando un errore che deriva dall'aver usato nelle due tabelle campi con lo stesso nome, quindi o fai una selezione solo di alcuni campi, o usi un alias (SELECT id_utente.tabella_utenti as id_utente1).
Per quanto concerne i doppioni la soluzione più intelligente è quella di rinominare sempre i file uploadati, creando dei nomi unici, sfruttando ad esempio l'id d'inserimento nel db e/o valori random a molti caratteri.
Alternativamente, puoi lasciare il nome inalterato fecendo una query preventiva sul db per sincerarti che quel nome non sia già presente e solo in caso di omonimia aggiungi un suffisso, come un numero progressivo (es.: xxx_2).Spero di esserti stato d'aiuto!