• User Attivo

    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_marca

    categoria
    id | nome_categoria