confrontare dati

  • Creatore Discussione Creatore Discussione amhal
  • Data di inizio Data di inizio

amhal

Utente Attivo
17 Feb 2011
89
1
8
Ciao a tutti, scusate per i titolo ma non sapevo cosa scrivere.
Ho cominciato da poco con mysql e ho questa necessità:

ho 3 tab:

tab1 : negozi
tab2 : prodotti
tab3 : cap

per il cap selezionato dall'utente, dovrebbero venire visualizzati i negozi appartenenti a quel cap, poi l'utente

sceglierà i prodotti e dovrei vedere quali negozi hanno tutti i prodotti selezionati, come faccio??

es:

TAB negozi : A,B,C,D,E

TAB prodotti: matite, penne, gomme

TAB cap: 00014, 00015


l'utente inserisce il cap 00014 e supponiamo che vengono visualizzati i negozi A, B, D

poi l'utente seleziona matite e gomme, ora dovrei sapere quali negozi tra A, B, D hanno tutte e due i prodotti

selezionati!!!


spero di essere stato chiaro grazie a tutti!!!!
 
ciao
si dovrebbe sapere come hai stutturato le tabelle
poi se non ho capito male non ti bastano le tre tabelle che citi, ma dovresti farti una tabella che lega la "quantità" del prodotto al "negozio"
comunque non è semplicissimo.
devi crearti delle query dinamiche (che linquaggio usi? php o asp o...?) in funzione dei prodotti scelti e fare varie considerazioni anche logiche.
sempre da quello che ho capito tu vuoi che il cliente ti faccia un ordine es
dalla selezione del cap gli risultano i negozi A,B,D (e sin qui ok)
e seleziona gomme e matite, puo succederti che:
A ha le matite ma non le gomme
B non ha matite, ma ha le gomme
D non ha ne matite ne gomme
che fai se il cliente vuole farti un ordine che vale 10.000 euro? rinunci?
prima di buttarti considera bene tutte le possibili situazioni
 
Ciao intanto grazie per aver risposto, hai ragione non ho detto il linguaggio... uso php e mysql 5.0
per quanto riguarda la struttura ho dei campi che collegano i prodotti con i negozi, infatti se lancio una query
select * from prodotti,negozi where negozi.id_cli = id_prodotti; ottengo tutti i prodotti per il negozio selezionato ( ovviamente negozi.id_cli ha il valore di una variabile inviata da php )... quello che non so fare è confrontare un numero di negozi con tutti i prodotti... come risultato vorrei che venissero visualizzati solo i negozi con tutti i prodotti selezionati!!

ti ringrazio ancora
 
ciao
ribadisco devi farti un'altra tabella che leghi la quantità del prodotto al negozio altrimenti come si fa a sapere se il negozio A ha il prodotto selezionato?
in pratica devi farti una gestione di magazzino. cioè una tabella del tipo

tabella magazzino
id
id_prodotto
id_negozio
quantita

per cui l'utente deve trovare il negozio, per quel cap, dove la quantità di prodotto selezionato è > 0

guardo il sistema migliore e se lo trovo te lo posto, però devi avere pazienza sin dopo pasqua
 
ciao, non c'è problema per pasqua, anzi grazie e auguri :D, solo una delucidazione per imparare qualcosa in più: se solo alcuni negozi hanno tutti i prodotti e le quantità le decide l'utente, non basta solo il nome del prodotto agganciato al negozio per sapere se quello stesso negozio ha quel prodotto? In finale a me servono solo i negozi che hanno tutti i prodotti!! quindi confrontare 'n' negozi, uno ad uno, con la lista dei prodotti... se tutti i nomi dei prodotti sono presenti ok, altrimenti non escono...

grazie ancora e scusa se sono di coccio!!!!!!
 
Secondo me,
prima di iniziare a buttare su il codice si dovrebbe fare un'attenta analisi per l'ottimizzazione e l'incrocio dei dati.

In Dettaglio:

N° Aziende
N° Prodotti

Per quanto riguarda la selezione multipla tra aziende>Prodotti>Quantità.

Si potrebbe partire :

-------------------------------------
AZIENDE
|
|- Id
|- Nome Aziende
|- Città
|- Via
|- Cap
-------------------------------------

-------------------------------------
PRODOTTI
|
|- Id
|- Id_Azienda
|- Nome Prodotto
|- Quantità
-------------------------------------

Adesso tramite un form php potresti far vedere all'utente un menu' a tendina con tutte le aziende/CAP della tabella "AZIENDE".
Una volta selezionato premendo il pulsante fai inviare alla pagina successiva l'id Azienda selezionato in $_POST.

Dopo fai selezionare i vari prodotti e la Quantità, e sempre in post ti vai a costruire la query mysql con i dettagli da cercare visto che l'id ricavano in $_POST lo tieni salvato.
 
ciao e grazie per esserti unito. La soluzione che mi proponi la vedo un pò scomoda per l'utente, considerando che se fossi al suo posto, non scorrerei mai una tendina con 'n' voci cercando una delle aziende che mi ispirano di più sperando che ha tutto quello che mi serve. :o
Credo sia più logico:
1) Inserire il cap della mia zona
2) scegliere i prodotti
3) vedere a video le aziende della mia zona che hanno quei prodotti

dimmi se fila!!
grazieeee
 
Si per quanto riguarda la procedura puoi gestirla come vuoi ma visto che devi recuperare informazioni su piu' tabelle il consiglio era quello di ottimizzare con la logica per creare anche un sorgente pulita senza troppi giri.
 
ciao
sono di passaggio,
il metodo che ti ha suggerito mm puo andar bene se la tabella prodotti è così semplice, ma se per esempio contiene oltre al nome altri campi (codice prodotto, prezzo, descrizione e altro) diventa estremamente ridondante
è meglio in questo caso è meglio tener diviso i prodotti dalla loro distribuzione e quantità tra le aziende
 

Discussioni simili