Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 04-01-12, 13:17   #1 (permalink)
User Newbie
 
Data di registrazione: Jan 2012
Ubicazione: firenze
Messaggi: 6
Tabella caratteristiche dei prod

Ciao ,
sto creando un e-commerce ma ho un problema,
nel database ho una tabella prodotti che contiene diversi tipi di prodotti ad esempio hard disk , cpu , ram , ecc.
ogni tipo di prodotto ha delle caratteristiche quindi ho pensato di creare una tabella che contiene il nome della caratteristica associata ad una tipologia di prodotto e un altra tabella che contiene il prodotto e il valore della sua caratteristica.
Esempio

caratterisitche
id -------tipologia ----- caratteristica
-------------------------------------------
1 --------cpu --------------numero core
2 -------- hard disk-------- memoria
3 --------cpu--------------- marca
--------------------------------------------

valori caratteristiche
id_caratteristica ------ valore_caratteristica ------- id_prodotto
---------------------------------------------------------------------
1------------------------- 2 core -------------------------54
3 -------------------------nome_marca ------------------32
2 -------------------------70 GB ------------------------- 22
-----------------------------------------------------------------------

Mettiamo io voglia filtrare la ricerca per far uscire solo le cpu con 2 core , faccio una select che mi va a estrarre l' id_prodotto dove l' id_caratteristica è quello del numero di core e il valore_caratteristica è 2 core .
Fin qui tutto ok, il problema nasce quando ci sono più caratteristiche per una tipologia .....se io voglio estrarre le cpu che hanno 2 core e hanno una determinata marca come faccio'??
der23 non in linea   Rispondi citando
Vecchio 13-01-12, 10:15   #2 (permalink)
 
Data di registrazione: Feb 2010
Messaggi: 136
Quindi hai una tabella con i computer e una seconda tabella con le caratteristiche generali. Ok.
Ogni computer ha le sue caratteristiche che saranno gli ID delle caratteristiche generali.
Quello che fai tu è inserire l'id del prodotto nei valori caratteristiche. Invece lì metti tutto quello che hai: 2 core, 4 core, le varie dimensioni degli hard disk e così via. I nomi delle marche magari gestiscili in una maniera differente, magari inserendoli nella tabella del singolo prodotto.
Quando fai una ricerca basta che indichi i due valori da cercare:
Codice PHP:
SELECT FROM computer WHERE cpu=32 AND marca='Asus' 
Può andare bene per quello di cui hai bisogno?

Ultima modifica di portapipe : 13-01-12 10:17.
portapipe non in linea   Rispondi citando
Vecchio 13-01-12, 17:45   #3 (permalink)
User Newbie
 
Data di registrazione: Jan 2012
Ubicazione: firenze
Messaggi: 6
grazie per la risposta ...ma non è quello che cercavo , forse non sono stato abbastanza chiaro .
Innanzitutto non si tratta di computer ma di prodotti per computer singoli ,
quindi cpu, ram ecc.
come dicevo ogni prodotto ha le sue caratteristiche , queste caratteristiche mi servono per filtrare la ricerca
quindi se voglio tutte le cpu con due core vado a selezionare dalla tabella prodotti le cpu poi faccio una join con la tabella caratteristiche tramite id del prodotto e nella tabella vado a prendere quelle con 2 core...
Il problema nasce quando devo filtrare per più caratteristiche (ho fatto un esempio per marca ma potevo benissimo utilizzare un' altra caratteristica) quindi devo fare la join e prendere tutte le cpu che hanno 2 core e marca intel ....il problema è che non posso fare una select con where caratteristica='2 core' and caratteristica='intel' perchè utilizzano lo stesso campo.... per ora ho risolto con una self join , ma non so se esiste un modo più efficente di scrivere questa query
der23 non in linea   Rispondi citando
Vecchio 13-01-12, 19:34   #4 (permalink)
 
Data di registrazione: Feb 2010
Messaggi: 136
Per me strutturi male la tabella del database.
Scusa ma oggi ho lavorato molto e sono un pò lento. Mi spieghi come spiegheresti ad un bambino cosa vuoi ottenere? Hai scritto quello che vorresti e l'ho diciamo capito ma prova a dirlo senza lato tecnico, come visto da un utente comune.
portapipe non in linea   Rispondi citando
Vecchio 14-01-12, 01:00   #5 (permalink)
User Newbie
 
Data di registrazione: Jan 2012
Ubicazione: firenze
Messaggi: 6
ok , entro nel sito , vado nella sezione computer e li ci sono i vari prodotti senza filtri , in questa sezione posso cliccare su una delle sottosezioni indicate (cpu, ram, hard disk, ecc.) , clicco su cpu , e mi trovo le varie cpu , però ci sono delle select che mi permettono di filtrare i risultati ...per capirci c' è la select del numero di core quindi 1 core , 2 core , 4 core ecc.
select tipo di socket e i vari tipi di socket
select marca , le varie marche elencate

scegliendo uno o più filtri mi trova solo le cpu che corrispondono ai filtri scelti.
der23 non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:41.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.