- Home
- Categorie
- Coding e Sistemistica
- PHP
- Subquery returns more than 1 row
-
Subquery returns more than 1 row
Non riesco a capire come mai se nel database vi è un solo record riesco a visualizzare tutti i record associati al primo.. il codice sql è:
SELECT * FROM hotel WHERE prezzo <= (SELECT prezzo FROM ricerca) AND categoria = (SELECT categoria FROM ricerca)
mentre se provo ad aggiungere degli altri la pagina di visualizzazione mi torna questo:
Subquery returns more than 1 rowse qualcuno può darmi una dritta ne sarei grato..
grazie e ciao
-
Ciao paolibo,
ma nella tabella ricerca quanti record hai?
-
ciao, ne ho 10
-
Il problema è quello dovresti fare restituire un solo record.
-
Il problema è che dovrei fare uscire tutti i record della query e non uno..
Comunque grazie mille.
-
Non ho capito cosa devi fare.
Puoi spiegarlo un pò più dettagliatamente? Perchè cosi è impossibile capire cosa vuoi fare.
-
Quello che vorrei fare è semplicemente visualizzare una pagina con tutti i record del database che hanno come filtro il prezzo di ricerca..
Mi spiego meglio..
pagina di ricerca dove l'utente inserisce nome, tel, mail ecc e prezzo..
all'invio questi dati vanno nel database (l'ho chiamato ricerca)..
Se accedo in quella pagina e inserisco un nuovo immobile se il db è vuoto ok visualizzo tutti gli immobili che rispondono al mio criterio di ricerca e cioè "stampami tutti gli immobili che hanno un prezzo minore o uguale a x e contestualmente che siano della categoria uguale (campo categoria delle 2 tabelle)" tradotto in codice:
SELECT *
FROM hotel
WHERE prezzo <= (SELECT prezzo FROM ricerca) AND categoria = (SELECT categoria FROM ricerca)se invece nel database è presente almeno un record, ad ogni inserimento successivo di immobili, la pagina prima citata mi fa vedere il messaggio oggetto del post..
-
e cioè una pagina bianca con scritto:
Subquery returns more than 1 row
-
Ma piuttosto che inserire i dati nel database, e dopo recuperarli nuovamente con delle subquery, che sicuramente hanno tempi più lunghi, non potresti semplicemente utilizzare le variabili provenienti dal form nella query e risparmiare queste subquery?
Che comunque scritte cosi non hanno molto senso perchè dovrei o prendere sempre l'ultimo valore o specificare l'id della ricerca in maniera tale da prendere un solo record.
-
Hai perfettamente ragione infatti ho eliminato le subquery anche se il problema che ho avuto si risolveva aggiungendo ANY prima di SELECT..
Grazie mille per la disponibilità