Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378

    [php & Mysql]Problema con le unioni

    Salve ragazzi,
    ho un problema con uno script in php con cui non riesco a risolvere il problema di poter stampare una lista con cinque titoli di eventi appartenenti ad una stessa categoria e scorrere questi titolo che però hanno lo stesso titolo e quindi la stessa chiave di ricerca.

    vi spiego cosa sto facendo + nel dettaglio.

    Da consiglio di un utente del forum ho strutturato il database in questo modo:

    tabella titolo:
    id_titolo - titolo

    tabella categoria:
    id_categoria - categoria

    tabella foto:

    id - id_titolo - id_categoria -foto - data

    ----------------------------------------------------------------



    cosi per la ricerca della categoria ho creato questa query:

    $query="SELECT id_categoria,nome FROM categoria";

    $result = mysql_query($query, $db);



    while ($row = mysql_fetch_array($result)){

    $id=$row['id_categoria'];
    $nome=$row['nome'];

    echo"<a href=\"vedi_categoria.php?categoria=$id\">$nome</a>
    ";



    con questa stampo solo un risultato per ogni id_titolo(codice molto grezzo)proprio per questo volevo anche chiedervi se conoscevate una funzione che mi stampi solo il primo risultati di ogni id_titolo identico:

    if(!isSet($_GET['categoria'])){
    $id_categoria=NULL;
    }else{ $id_categoria = $_GET['categoria']; }

    $query="SELECT titolo.titolo,titolo.id_titolo,foto.data,foto.foto ,categoria.id_categoria
    FROM titolo,foto,categoria
    WHERE foto.id_titolo = titolo.id_titolo AND foto.id_categoria = categoria.id_categoria AND categoria.id_categoria = '$id_categoria'";

    $result = mysql_query($query, $db);
    $titolo=NULL;
    $titolo1=NULL;

    while($row = mysql_fetch_array($result)){

    $titolo1=$titolo;

    $titolo=$row['titolo'];
    $id_titolo=$row['id_titolo'];

    if($titolo==$titolo1){
    echo"";}
    else
    {
    $id=$row['id_titolo'];
    $data=$row['data'];
    $foto=$row['foto'];


    echo"<a href=\"vedi_titolo.php?titolo=$id\">$titolo.$data. $foto</a>
    ";}

    }
    come notate ho dovuto utilizzare un if che non mi stampa nulla se le iterazioni successive hanno id_titolo identico al precedente.

    poi vorrei sapere come poter scorrere la pagina con la lista degli eventi per ogni categoria sapendo che nella tabella foto si puo' trovare una chiave identica e quindi viene ripetuta a differenza dei link che invece grazie
    a questo (if($titolo==$titolo1)) evito di far ristampare.
    Grazie

  2. #2
    prova ad aggiungere dopo il where il raggruppamento dei record per id_categoria.

    GROUP BY nome_campo


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    Originariamente inviato da piero.mac
    prova ad aggiungere dopo il where il raggruppamento dei record per id_categoria.

    GROUP BY nome_campo

    Potresti farmi un esempio scritto di come risolveresti tu??
    grazie..

  4. #4
    Originariamente inviato da XvOg1
    Potresti farmi un esempio scritto di come risolveresti tu??
    grazie..
    E' una richiesta strana. Io lo risolverei secondo il mio bisogno. In altre parole bisognerebbe conoscere l'obiettivo che vuoi raggiungere. Da come lo hai presentato si direbbe che di n record presenti stampi solo il primo che capita, quindi a caso, ma un caso sempre uguale ... nel senso che saranno sempre e solo gli stessi record, il primo che pesca.

    quindi in questo caso fai come ti ho detto, o almeno prova. Aggiungi la clausola di raggruppamento GROUP BY nome del campo che vuoi raggruppare dopo la condizione WHERE.

    http://dev.mysql.com/doc/refman/5.0/en/select.html

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    strana forse perchè io in realtà non so bene se tu hai capito a fondo quello che volgio fare...cosi da vedere come si comporta..cmq ora mi documento su cosa fa il gorup by,il problema è che nn ho manuali e neppure internet a casa..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    allora...la query che sono andato a creare va benissimo,l'unico problema sta ora nel poter contare le pagine dei titolo delle varie categorie io avevo pensato di basarmi sulla tabella titolo,cercando il totale delle pagine con count su id.titolo tenendo in considerazione id.categoria....

    vi faccio sapere..ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.