Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di flavietta
    Registrato dal
    Jan 2008
    residenza
    Pisa
    Messaggi
    48

    problema: stampa più volte la stessa cosa

    Ciao!
    Nel mio database c'è una cartella VIDEO e una cartella ATTORI, strutturate in questo modo:

    VIDEO:
    CodiceVideo, Titolo, Regista, [...]

    ATTORI:
    CodiceAttore, Video (riferimento a Video.CodiceVideo), Nome, Cognome, Sesso

    Ora, quando devo fare un elenco di tutti i video che ci sono nel browser faccio così:
    Codice PHP:
    $sql "SELECT * FROM Video, Attori WHERE Video.CodiceVideo=Attori.Video ORDER BY codiceVideo";
    $res mysql_query($sql,$conn) or die ("Errore! Selezione dati dalle tabelle Video e Attori non riuscita. " .mysql_error ());

    if (
    mysql_num_rows($res) == "0") {
    echo 
    "Spiacente. Non è stato ancora caricato alcun [i]VIDEO[/i] in questa categoria.";
    }
    else {
    while (
    $row mysql_fetch_array($res)) {
    $id $row['CodiceVideo'];
    $titolo $row['Titolo'];
    $regista $row['Regista'];
    [...]
    echo 
    "[...]";

    E stampo le informazioni sul video.

    Il problema è che se quel video ha, ad esempio, tre attori, le informazioni su quel video mi vengono stampate 3 volte, cioè quanti sono gli attori...
    Come posso fare per evitare questo? Cioè che mi stampi le informazioni sul video una sola volta per video, a prescindere dal numero degli attori (ovviamente mi servono comunque i nomi di tutti gli attori, perchè poi nelle informazioni li stampo).
    Credo di dover specificare qualcosa all'interno del WHILE o dopo di esso, ma non so esattamente COSA e COME.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    ciao,
    devi fare una GROUP BY che ti permette, appunto, di raggruppare i risultati che sono uguali.

    (esempio)
    Codice PHP:
    $sql "SELECT Video.Titolo FROM Video, Attori WHERE Video.CodiceVideo=Attori.Video GROUP BY Video.Titolo ORDER BY Video.codiceVideo"
    purtroppo quando usi GROUP BY non puoi usare SELECT * ma devi specificare tutti i campi che ti servono e metterli anche nella GROUP BY....

  3. #3
    Utente di HTML.it L'avatar di flavietta
    Registrato dal
    Jan 2008
    residenza
    Pisa
    Messaggi
    48
    Grazie, funziona benissimo! Mi ero scordata del GROUP BY
    Comunque funziona anche col SELECT *.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    di niente

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.