• User

    estrarre record di due tabelle

    Ciao ragazzi, ho un problema semplicissimo ma che non riesco a risolvere, forse sto "combattendo" da troppo tempo e il codice mi scorre come quello di Matrix.

    Vado al punto
    ho 2 tabelle:
    UTENTI
    id, nome, cognome, ecc.

    e

    OGGETTI
    id, id_utente, ecc.

    estraggo tutti gli utenti
    SELECT * FROM UTENTI

    estraggo gli oggetti
    SELECT * FROM OGGETTI

    devo semplicemente mostrare la lista degli oggetti con il relativo utente, es:
    oggetto1 inserito da nomeUtenteX
    oggetto2 inserito da nomeUtenteY

    come posso fare?


  • ModSenior

    Ciao ghost,

    puoi fare una query cosi:

    
    SELECT OGGETTI.*,UTENTI.* FROM OGGETTI INNER JOIN UTENTI ON OGGETTI.id_utente=UTENTI.id
    
    

  • User

    ciao Thedarkita e, anche se un po' in ritardo, ti ringrazio per la risposta, la tua soluzione funziona!


  • User

    ciao Thedarkita, ho un altro problema... piu' difficile:
    dovrei mostrare la lista, degli utenti con i relativi oggetti, es.:

    nomeUtenteX ha inserito i seguenti oggetti:

    • oggetto1, oggetto2, oggetto5, ecc

    nomeUtenteY ha inserito i seguenti oggetti:

    • oggetto7, oggetto9, ecc

    non riesco ad integrare GROUP BY all'interno del tuo codice (sempre se questa e' la soluzione)

    ti ringrazio anticipatamente per la tua disponibilita'!


  • ModSenior

    Per fare una cosa del genere la soluzione migliore sarebbe fare una query che preleva gli utenti, e ciclandola ricavare tutti gli oggetti inseriti da ogni utente.
    Farlo con una singola query non è conveniente, a meno che non devi semplicemente mostrare oggetto1, oggetto2, oggetto3 senza fare su questi altri tipi di operazioni caso in cui potresti concatenerare direttamente nella query ed evitare tutto ciò che ti ho detto sopra.


  • User

    si, giusto, ma in questo caso si dovrebbe fare un ciclo all'interno di un ciclo, es.:

    estraggo i dati
    CICLO UTENTI
    nomeUtenteX

    • CICLO OGGETTI
      oggetti di nomeUtenteX

    giusto?


  • ModSenior

    Si, esatto.


  • User

    non vorrei approfittare troppo... questo ciclo all'interno di un ciclo e' un problema che ho sempre evitato...
    mi puoi fare un esempio pratico?

    es.:
    estraggo tutti gli utenti:
    <?php echo $row_utenti['nomeUtente']; ?>
    <?php } while ($row_utenti = mysql_fetch_assoc($utenti)); ?>

    se voglio includere i relativi oggetti:
    <?php echo $row_utenti['nomeUtente']; ?>
    <?php echo $row_utenti['nomeOggetto']; ?>
    <?php } while ($row_utenti = mysql_fetch_assoc($utenti)); ?>

    il risultato sara' la lista degli utenti e gli oggetti che non saranno relativi agli utenti stessi, ma saranno uguali per tutti gli utenti!