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

    evitare duplicazione record con lo stesso id

    Salve a tutti ho problemino che vorrei risolvere ma non so come
    ho fatto la correlazione di 2 tabelle
    la prima relativa alla correlazione della sede con l'artista e l'evento chiamata "sede_artista_evento"
    la seconda relativa all'artista chiamata "artisti"
    quello che vorrei ottenere è l'elenco degli artisti che hanno lavorato in una sede
    il problema è che nella mia tabella "sede_artista_evento" un artista può aver partecipato a più eventi nella stessa sede, pertanto quando faccio la query mi stampa il nome dell'artista tante volte quanti sono gli eventi ai quali quell'artista ha partecipato.
    esiste una funzione che mi permetta di stampare il nome dell'artista una sola volta facendo un controllo sul nome, tipo se paolo bianchi è presente 3 volte stampalo solo una?
    la query che mi stampa tutti è questa
    $query = "SELECT * FROM sede_artista_evento as o LEFT JOIN artisti as c ON o.artista_id = c.artista_id WHERE evento_sede_id='".$_GET['id']."'";
    $result = mysql_query($query);
    while($row = mysql_fetch_assoc($result)) {
    $artisti[] = $row;
    }

  2. #2
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    posta anche la struttura delle tabelle.....

  3. #3
    tabella "sede_artista_evento"
    campi:
    sede_id - artista_id - evento_id
    1 - 1 - 1
    1 - 1 - 2
    1 - 1 - 3
    2 - 2 - 2
    ecc...

    tabella "artisti"
    campi:
    artista_id - nome - cognome - nome_cognome
    1 paolo - bianchi - paolo_bianchi
    2 mario- rossi - mario_rossi

    quando faccio la query
    $query = "SELECT * FROM sede_artista_evento as o LEFT JOIN artisti as c ON o.artista_id = c.artista_id WHERE sede_id='".$_GET['id']."'";
    $result = mysql_query($query);
    while($row = mysql_fetch_assoc($result)) {
    $artisti[] = $row;
    }

    mi stampa
    paolo bianchi
    paolo bianchi
    paolo bianchi
    mario rossi

    quello che vorrei io è
    paolo bianchi
    mario rossi

    è possibile fare un controllo attraverso per esempio il campo nome_cognome della tabella artisti per ottenere questo?

  4. #4
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    dunque....premetto che è consigliabile avere un campo "id" ,ma non obbligatorio...
    bè puoi fare in svariati modi....

    1)$query = "SELECT * FROM sede_artista_evento as o LEFT JOIN artisti as c ON o.artista_id = c.artista_id WHERE sede_id= '".$_GET['id']."'";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);

    echo $row[nome];

    // array associativo

    2)$query = "SELECT * FROM sede_artista_evento as o LEFT JOIN artisti as c ON o.artista_id = c.artista_id WHERE sede_id= '".$_GET['id']."'";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);

    echo $row[4];
    // array numerico

    o come hai fatto te..però senza while

    3)$query = "SELECT * FROM sede_artista_evento as o LEFT JOIN artisti as c ON o.artista_id = c.artista_id WHERE sede_id= '".$_GET['id']."'";
    $result = mysql_query($query);
    $row = mysql_fetch_assoc($result);

    echo $row[nome];


    ciao

    ps non capisco quel campo nome_cognome....

  5. #5
    ho provato come dici ma mi stampa solo l'ultimo record non l'elenco degli artisti presenti in quella sede,
    il campo nome_cognome l'ho inserito per fare un possibile controllo

  6. #6
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    utilizza GROUP BY nella query..

  7. #7
    grazie tante così funziona benissimo

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.