- Home
- Categorie
- Coding e Sistemistica
- PHP
- Ricerca tra più tabelle in DB sql
-
Ricerca tra più tabelle in DB sql
ciao a tutti, ho sempre lavorato con una sola tabella ma adesso ho l esigenza di usarne tre per il mio progetto. trovo delle difficoltà a far funzionare queste query e non so dove sia l errore
[php]
if(isset($filtro_ricerca) and $filtro_ricerca != NULL){
$query = "SELECT COUNT(prodotti.nome, categoria.nome_categoria, marca.nome_marca) FROM prodotti, categoria, marca WHERE prodotti.nome LIKE '%$filtro_ricerca%' AND categoria.nome_categoria LIKE '%$filtro_ricerca%' AND marca.nome_marca LIKE '%$filtro_ricerca%'";
}
else{
$query = "SELECT COUNT(*) FROM prodotti";
}
[/php]
[php]
if(isset($filtro_ricerca) and $filtro_ricerca != NULL){
$query = "SELECT prodotti.nome, categoria.nome_categoria, marca.nome_marca FROM prodotti, categoria, marca WHERE prodotti.nome LIKE '%$filtro_ricerca%' AND categoria.nome_categoria LIKE '%$filtro_ricerca%' AND marca.nome_marca LIKE '%$filtro_ricerca%' AND prodotti.id_categoria = categoria.id AND prodotti.id_marca = marca.id ORDER BY prodotti.id, prodotti.nome LIMIT $prima_riga, $righe_per_pagina";
}
else{
$query = "SELECT prodotti.nome AS nome, prodotti.prezzo AS prezzo, categoria.nome_categoria AS categoria, marca.nome_marca AS marca FROM prodotti, categoria, marca WHERE prodotti.id_categoria = categoria.id AND prodotti.id_marca = marca.id ORDER BY prodotti.id, prodotti.nome LIMIT $prima_riga, $righe_per_pagina";
}
[/php]spiego un po. c è una pagina che visualizza dati estratti, poi c è un form per la ricerca che indirizza ad uno script per memorizzare una sessione con il nome inserito nel form. la sessione viene memorizzata in $filtro_ricerca
ora se $filtro_ricerca non esiste deve visualizzare tutti i prodotti, e questo funziona, invece se $filtro_ricerca esiste le query che dovrebbero rispondere non danno segni di vita. so che esistono le JOIN ma chenon ho ancora studiato, ma anche quella sintassi dovrebbe andare bene o sbaglio?
dimenticavo, le tabelle sono queste:
prodotti
id | nome | id_categoria | id_marca |marca
id | nome_marcacategoria
id | nome_categoria