Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [mysql] problema funzionamento query

    ciao,

    ho il cervello fuso e ho bisogno di capire cosa non funziona in questa query, o meglio, funziona ma non fa quello che vorrei...

    tbl_category:
    - cat_id
    - cat_name

    tbl_product:
    - pd_id
    - cat_id

    tbl_marchi:
    - id_accessorio
    - nome

    tbl_id_item:
    - cat_id
    - pd_id
    - id_accessorio

    In pratica ho una lista di categorie selezionabili da link in cui passo l'id categoria (cat_id) via GET alla pagina in cui visualizzo i prodotti relativi alla categoria selezionata e i marchi associati ai prodotti ( e quindi alla categoria)

    la query incriminata:

    Codice PHP:
    "SELECT * FROM tbl_marchi AS m JOIN
     tbl_id_item AS i 
    WHERE m.id_accessorio = i.id_accessorio 
    AND i.cat_id = 
    {$_GET['id']}"

    in questo modo però mi trovo stampati ripetutamente il nome del marchio tante volte quanti sono i prodotti associati allo stesso marchio.

    ad esempio:

    ho nella tabella "tbl_product" 4 prodotti a cui ho associato il marchio "pippo" e che appartengono tutti alla stessa categoria

    la query, mi stampa 4 volte il marchio "pippo" mentre io vorrei che me lo stampasse solo una volta, perchè a me basta sapere che per quella categoria ho 4 prodotti a cui è associato un marchio....

    Boh, spero sia chiaro....
    :master:

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Assolutamente no.
    Rispiega quello che vuoi ottenere

  3. #3
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Ciao blur

    Una possibile soluzione potrebbe essere usare distinct:

    [code]
    SELECT DISTINCT(nome), id_accessorio FROM tbl_marchi AS m JOIN
    ... [code]


    però mi incurioscisce la base dati:
    che differenza c'è tra item e product?
    Perchè non fai:

    tbl_marchi:
    - id_marchio
    - nome

    tbl_id_item:
    - cat_id
    - pd_id
    - id_accessorio
    - id_marchio

    Se usassi una cosa del genere, la tua query dovrebbe funzionare
    Spero di non aver detto almeno qualcosa di giusto.. ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  4. #4
    Originariamente inviato da Pastore12
    Ciao blur

    Una possibile soluzione potrebbe essere usare distinct:
    eeessaatto! era questo quello che mi mancava...

    SELECT DISTINCT(img_name)
    FROM tbl_marchi AS m,
    tbl_id_item AS i
    WHERE m.id_accessorio = i.id_accessorio
    AND i.cat_id = {$_GET['id']}


    funziona!

    però mi incurioscisce la base dati: che differenza c'è tra item e product?

    si, è già così! ma siccome a volte sono un pasticcione con i nomi...
    sto riadattando un altro mio vecchio DB e quindi in parte ho conservato i vecchi nomi dei campi


    in pratica "id_accessorio" sarebbe un più facile da capire "id_marchio" e img_name" sarebbe il "nome_marchio".....

    mi scuso con chi avrebbe voluto aiutarmi e non ha capito una mazza...colpa mia!

    Bravo Pastore12 che hai capito lo stesso

    grazie mille!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.