Filtri MySQL

Salve a tutti

io ho la query presente:

SELECT models.nome, models.sesso, models.tratti_somatici, models.capelli, models.occhi, models.altezza, models.seno, models.occhi, models.vita, models.fianchi, models.taglia, models.scarpe, models.nazionalita, models.regione, models.provincia, GROUP_CONCAT( disponibilita.name, '' ) AS disponibile_in
FROM `models` , `models_dispo` , `disponibilita` 
WHERE models.id_model = models_dispo.id_models
AND models_dispo.id_dispo = disponibilita.id_dispo
LIMIT 0 , 30

fin qui tutto bene ...

il mio problema è il seguente

io ho una sorta di 'ricerca avanzata' dove nella voce disponibilita' ho della checkbox (quindi posso selezionare piu' di un valore), ora come faccio ad effettuare una ricerca con questi valori?

cioè che devo fare? una subquery, un filtro, oppure è sbagliato il metodo ... HELP ME! :'(

in pratica nella tabella "disponibilita" ho 2 campi ID e NAME in NAME ho i valori (nord italia, sud italia, etc ...)

inviato 6 anni fa
Mac
Mac
1
X 0 X

puoi fare una query usando "IN".

Esempio: SELECT * FROM tabella WHERE campo IN (valore1, valore2, valore3).

Basta che estrai i valori del checkbox (che spero siano in un array) e poi li implodi con la virgola.

risposto 6 anni fa
Massimiliano Arione
X 0 X

allora la mia query è questa

SELECT DISTINCT models.nome, models.sesso, models.eta, disponibilita.name AS disponibilita, attivita.name AS attivita
FROM models
JOIN models_dispo ON models.id_model = models_dispo.id_models
JOIN disponibilita ON models_dispo.id_models = disponibilita.id_dispo
JOIN models_attivita ON models.id_model = models_attivita.id_models
JOIN attivita ON models_attivita.id_attivita = attivita.id_attivita
LIMIT 0 , 30

ma mi compaiono N duplicati quanti i valori dell'attivita

vorrei raggrupparli ho utilizzato GROUP_CONCAT, ma se l'utilizzo mi stampa solo 1 record, quando in realtà sono 2

nome   |sesso|   eta|  disponibilita|  attivita  
marika femminile 22   nord italia       animatrice/tore 
marika femminile 22   nord italia       attrice/tore 
marika femminile 22 nord italia ballerina/o 
marika femminile 22 nord italia cantante/musicista 
marika femminile 22 nord italia comparsa 
marika femminile 22 nord italia cubista 
marika femminile 22 nord italia fotemodella/o 
marika femminile 22 nord italia hostess accompagnatrice 
marika femminile 22 nord italia hostess fiere/steward 
marika femminile 22 nord italia hostess traduttrice 
giovanna femminile 22 sud italia animatrice/tore 
giovanna femminile 22 sud italia ballerina/o 
giovanna femminile 22 sud italia cantante/musicista 
giovanna femminile 22 sud italia comparsa 
giovanna femminile 22 sud italia cubista 
giovanna femminile 22 sud italia fotemodella/o 
giovanna femminile 22 sud italia attrice/tore
risposto 6 anni fa
Mac
Mac
1
X 0 X

Per forza: avendo una relazione 1-n, o accetti di ottenere righe duplicate dal lato 1 o accetti di avere righe mancanti dal lato n.

risposto 6 anni fa
Massimiliano Arione
X 0 X

Ma io ho una relazione dal molti a molti ... :(

models

==========

id_model, nome, sesso, eta, etc ..

models_dispo

==========

id_models, id_dispo

disponibilita

=========

id_dispo, name

lo stesso vale x le altre presente nella query

risposto 6 anni fa
Mac
Mac
1
X 0 X

Scusa ma a cosa ti serve la relazione n-n?

Non puoi eliminare models_dispo e modificare disponibilita in id_model, name ?

risposto 6 anni fa
Massimiliano Arione
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda