- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [SQL] Aiuto SELECT * FROM
-
Ti ringrazio per la correzione proverò a cambiare il codice.Quello di cui ho bisogno ora è, creare uno script in grado di cercare in un database un'immobile secondo alcune scelte, del tipo:
Primo Select - Tipo: casa,villa,terrano etc...
Secondo Select: Località: Mare, centro urbano, montagna etc...
Terzo Select: Vende, affitta etc...Ora, vi chiedo come devo impostare la riga di comando affinchè il risultato sia la somma delle 3 scelte?
Maggior dettagli su www.salentodomus.it subito sotto l'header.
-
E' semplicemente una select con 3 "where"
proprio in questi casi qui torna utile la struttura come quella che ho illustrato.
Anche perchè adesso hai aggiunto anche la tipologia di contratto (locazione e vendita) e località.Non aver paura di usare più tabelle, quelle non si pagano, l'importante è che strutturi il DB nel modo corretto, poi vedrai che il codice verrà da se.
-
@Icelord said:
E' semplicemente una select con 3 "where"
proprio in questi casi qui torna utile la struttura come quella che ho illustrato.
Anche perchè adesso hai aggiunto anche la tipologia di contratto (locazione e vendita) e località.Non aver paura di usare più tabelle, quelle non si pagano, l'importante è che strutturi il DB nel modo corretto, poi vedrai che il codice verrà da se.
Cioè come 3 where, così?
strsql = "SELECT * FROM [vendita] WHERE tipologia='" & scelta & "' WHERE categoria='" & sceltacategoria & "' ORDER BY ID DESC;"
-
@sraone77 said:
Cioè come 3 where, così?
strsql = "SELECT * FROM [vendita] WHERE tipologia='" & scelta & "' WHERE categoria='" & sceltacategoria & "' ORDER BY ID DESC;"
No. Devi creare un'altra tabella (tipologia) con i campi "id_tipologia(intero-contataore-chiave primaria)" e "tipologia(varchar)". Poi togli il campo testo "tipologia" dalla tab vendita e metti un campo intero "id_tipologia"
Alla fine farai una inner join fra tab vendita e tab tipologia passando nella where il numerico id_tipologia."select vendita.*,tab_cat.tipologia from vendita inner join tab_cat on tab_cat.id_tipologia=vendita.id_tipologia where tab_cat.id_tipologia="&scelta&""
Dove la variabile "scelta" è l'id che corrisponde alla tipologia che ti interessa.
Il problema è che forse non sai cosa è una join visto che hai concatenato 3 where di seguito
Non lo dico per offesa...Apro una parentesi. Stai passando in pasto alle query dei dati non filtrati. Sicurezza zero. In questi casi possono cancellarti l'intero db in 2 secondi.
Ma questo richiederebbe un thread dedicato.P.s. L'ho spiegato una cacca ma a quest'ora sto fuso. Magari domani rileggo cosa ho scritto
Pienamente d'accordo con Icelord
-
Fusionman, mi sa che l'hai mandato in crisi
cmq per concatenare 3 whre basta metterci un AND di mezzo.
Come avrai notato non ti sto riscrivendo la query con queste istruzioni perchè è proprio la base dell'utilizzo del linguaggio SQL e se non stai di cosa si sta parlando meglio studiare un po' prima.Ti consiglio, visto che non hai esperienza in merito, di dare un'occhiata prima a delle guide, su HTML.it ne trovi diverse e ben fatte.
E di guardare anche siti come aspitalia.it e devguru.comPrima di fare lavori del genere sarebbe meglio formarsi ed informarsi. Come dice Fusionman non c'è nulla sulla sicurezza in queste tue chiamate. Rischi di trovarti un sito completamente aperto o svuotato e non ci fai una bella figura.
Formazione è la parola chiave
-
Premetto che non sono così ignorante da non saper scrivere una semplice riga di comando. Certo non sono un veterano dell'asp ma per quello che devo fare mi sono sufficienti le nozioni che ho.
Ora il mio errore era quello di mettere dopo l'AND, dinuovo il comando WHERE. Quindi ho risolto in questo modo:strsql = "SELECT * FROM [vendita] WHERE tipologia='" & scelta & "' AND categoria='" & sceltacategoria & "' ORDER BY ID DESC;"
grazie.
-
Ma io non volevo offendere nessuno. L'ho detto per spronarti ad approfondire la questione e mettere in chiaro che non si possono spiegare certi argomenti se prima non se ne conoscono altri.
Non è mica detto che si deve conoscere tutto? Magari sei un genio del C++ nel quale io sono completamente ignorante
Se poi vuoi usare un metodo che funziona ma che non è il modo giusto allora prosegui per quella strada. Altrimenti vediamo di aiutarti.
Ciao
-
No figurati non mi sono offeso. Ora però non riesco a fare sta cosa:
ho questa queryscelta=request.form("scelta")
sceltacategoria=request.form("sceltacategoria")
sceltalocalita=request.form("sceltalocalita")strsql = "SELECT * FROM [vendita] WHERE tipologia='" & scelta & "' AND categoria='" & sceltacategoria & "' AND localita='" & sceltalocalita & "' ORDER BY ID DESC;"
e tutto va bene, ma se mette nelle scelte, l'opzione "Vedi tutti" quale valore devo dare alla variabile affinchè mi escano tutti i dati di quella colonna?
es.: apparamento --> vende --> Vedi tutti
oppurevdi tutti --> vende --> Mare
-
dovresti usare degli IF e non inserire nella query l'istruzione wher corrispondnde a quel dato.
-
beh si...come dice Icelord dovresti creare una stringa sql dinamica facendo delle if sulle variabili
es.
strsql = "SELECT * FROM [vendita] WHERE id>0 " if scelta<>"" then strsql=strsql & " and tipologia='" & scelta & "' " end if if sceltacategoria<>"" then strsql=strsql & " and categoria='" & sceltacategoria & "' " end if if sceltalocalita<>"" then strsql=strsql & "AND localita='" & sceltalocalita & " " end if strsql = strsql & " ORDER BY ID DESC; "
Per escludere un valore basta che passi alla query quest'ultimo vuoto.
vabè alla fine te l'ho fatta...:D
-
Grazie!