Visualizzazione risultati 1 fino 8 di 8

Discussione: [php & Mysql]difficoltà con le unioni

  1. #1
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito [php & Mysql]difficoltà 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><br>";



    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><br>";}

    }
    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
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  2. #2
    Guest

    Predefinito

    Non ho capito molto, ti posso rispondere solo per quanto riguarda il poter estrarre i record con un campo che può essere uguale tra loro:

    SELECT * FROM tabella WHERE bla bla GROUP BY campo

    dove campo è il campo in questione.

    Per il resto, cerca di spiegare meglio, magari anche semplificando la situazione con un esempio.


    Ciaooooo!!!!!!

  3. #3
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    guarda lo script,in poche parole io ho questa situazione:


    tab.foto

    id data id_titolo id_categoria foto
    1 02/05/05 1 3 foto01.jpg
    2 12/01/05 1 3 foto02.jpg
    3 12/01/05 1 3 foto02.jpg
    4 12/01/05 1 3 foto02.jpg
    5 12/01/05 1 3 foto02.jpg
    6 12/01/05 2 3 foto02.jpg
    7 12/01/05 2 3 foto02.jpg
    8 12/01/05 2 3 foto02.jpg
    9 12/01/05 2 3 foto02.jpg
    10 12/01/05 2 3 foto01.jpg
    11 12/02/2005 3 2 foto01.jpg
    12 12/01/05 3 2 foto03.jpg
    13 12/01/05 3 2 foto03.jpg
    14 12/01/05 3 2 foto03.jpg
    15 12/01/05 3 2 foto03.jpg
    16 12/01/05 3 2 foto03.jpg
    17 12/01/05 3 2 foto03.jpg
    18 12/01/05 3 2 foto03.jpg
    19 12/01/05 3 2 foto03.jpg
    20 12/01/05 3 2 foto03.jpg
    21 12/01/05 3 2 foto03.jpg
    22 12/01/05 4 3 foto01.jpg
    23 12/03/2005 5 3 foto01
    24 12/02/2005 6 3 foto_inesistente.jpg
    25 12/02/2005 7 3 foto_inesistente.jpg

    tab.titolo

    id_titolo - titolo

    1 Party beach
    2 compleanno
    3 natale
    4 festa madonna
    5 festa 001
    6 festicciola
    7 festa di capodanno


    tab.categoria
    id_categoria - nome

    1 generale
    2 festivita
    3 eventi

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

    ora il mio problema è che se io eseguo questa query:

    $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'";

    con un mysql_fetch_array mi stampa tutti i campi che hanno la categoria che è uguale a quella che gli passo,invece io volgio che me ne stampi solo uno,cioè il primo e poi mi ristampi il secondo solo quando trova una chiave diversa.

    se noti nella tabella foto ci sono tanti record con id_titolo uguale a 1,e tanti ugauli a 2 o anche a 3,solo che io vorrei non far stampare il valore del campo titolo per tutti i record che hanno la stessa chiave id_titolo,ma solo uno per ogni valore...

    ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  4. #4
    Guest

    Predefinito

    Sempre se ho capito bene, prova con:

    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' GROUP BY titolo.id_titolo

    Dimmi se ho capito, altrimenti fammi un esempio del risultato che ottieni (errato) e un esempio di risultato che vorresti ottenere.


    Ciaooooo!!!!!

  5. #5
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    ok,appena torno a casa provo con il group..se ho capito bene come si comporta dovrebbe essere il comando esatto.
    Ciao :)
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  6. #6
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    mi da errore dalla query con supplied argument...
    che si fa?
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  7. #7
    Guest

    Predefinito

    Posta l'errore per intero.


    Ciaoo!!

  8. #8
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    grazie debug ho risolto senza utilizzare le unioni sulle tabelle,ho inserito un id_titolo nella stessa tabella è mi gestisco i titoli con questo...grazie cmq...ciao
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •