Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Aiuto con join

  1. #1

    Aiuto con join

    Salve. Avrei un problema e credo che io debba usare join per risolverlo ma non ne sono sicuro e quindi vorrei un consiglio.
    Ho un DB di prodotti che hanno delle caratteristiche per ognuna delle quali è presente un apposito campo nella tabella prodotti ed un'apposita tabella nel DB. Il problema è questo: quando estraggo i prodotti i campi del prodotto corrispondenti alle varie caratteristiche mi restituiscono un valore numerico corrispondente all'id che la caratteristica ha nella propria tabella. Come faccio ad ottenere il nome e non l'id direttamente senza fare una marea di query? Credo che si possa fare con join ma non ho ben capito come funziona.
    Per chiarivi le idee vi preparo un piccolo schema:


    TABELLA MARCHE

    1 intel
    2 amd
    3 sony
    4 philips


    TABELLA PRODOTTI

    id nome marca
    1 lettore cd 4
    2 lettore cd 3
    3 scheda madre 1
    4 scheda madre 2


    Come faccio a fare in modo che quando faccio la query su prodotti in questo modo:

    $query = "SELECT * FROM prodotti WHERE id = 1";

    invece di ottenere " lettore cd 4" io ottenga "lettore cd philips"? Spero di essere stato chiaro! Altrimenti chiedetemi chiarimenti. Ciao e grazie!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2

    Re: Aiuto con join

    SELECT prodotti.id, prodotti.nome, marche.marca FROM prodotti, marche WHERE prodotti.marca = marche.id
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di _kime_
    Registrato dal
    Sep 2003
    Messaggi
    311
    codice:
    SELECT t2.nome, t1.marca FROM prodotti AS t2, marche AS t1 WHERE t2.id = '1' AND t1.id = t2.marca
    magari ho scritto una stronzata provala
    non sto connettendo in questo momento...
    + / Powered by Ubuntu 4.10 "The Warty Warthog"

    + / Manuale PHP.net

    + / Think Free

  4. #4
    Originariamente inviato da _kime_
    magari ho scritto una cavolata ...
    su per giu' e' quello che ho scritto io solo che tu hai preso il solo philips, io pensavo gli servissero tutti
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it L'avatar di _kime_
    Registrato dal
    Sep 2003
    Messaggi
    311
    si alla fine io cercato di raggiungere i due campi fondamentali che gli servivano da quello che avevo capito, non avevo visto che avevi gia postato
    + / Powered by Ubuntu 4.10 "The Warty Warthog"

    + / Manuale PHP.net

    + / Think Free

  6. #6
    OK. Quindi in pratica prima del punto metto la tabella da dove voglio estrarre e dopo il punto il campo che voglio estrarre in quella stessa tabella. Giusto? Con t1 e t2 invece assegno i nomi t1 e t2 alle due tabelle. Credo funzioni così. Mi sbaglio? Se si mi correggete per favore!?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  7. #7
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    La stessa cosa la puoi fare con il join, secondo me è più leggibile (dipende dai gusti).

    SELECT prodotti.id, prodotti.nome, marche.marca FROM prodotti INNER JOIN marche ON prodotti.marca = marche.id WHERE prodotti.id = 1

  8. #8
    Infatti mi sto incasinando tantissimo! Ora provo con inner join. Grazie.

    Cmq come le richiamo?
    Faccio $row = mysql_fetch_array($result);

    Quando stampo le chiamo sempre $row['nome'], $row['marca'] ecc.?
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  9. #9
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Originariamente inviato da mircov
    Cmq come le richiamo?
    Faccio $row = mysql_fetch_array($result);

    Quando stampo le chiamo sempre $row['nome'], $row['marca'] ecc.?
    Si

  10. #10
    Ma non ci riesco! Ho fatto questa query:

    codice:
    $query = "SELECT * FROM catalogo_prodotti , catalogo_marche , catalogo_materiali
                       WHERE catalogo_prodotti.id = '$_GET[product]' AND
                             catalogo_prodotti.marca = catalogo_marche.id AND
                             catalogo_prodotti.materiale = catalogo_materiali.id";
    Mi ha incasinato tutto! Mette il materiale al posto del nome e mi lascia comunque gli id al posto di sostituirli con il nome relativo!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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.