Visualizzazione dei risultati da 1 a 9 su 9

Discussione: inner join

  1. #1

    inner join

    salve a tutti....
    ho un grosso problema, x me.... ma penso molto semplice x voi.....
    ho cercato ma nn ho trovato la soluzione...... magari l'avevo sotto il naso......

    allora.....
    il mio db è strutturato così:

    codice:
    tab: categorie
    id | categoria
    
    tab2: foto
    id | cat | foto
    faccio la query
    Codice PHP:
    mysql_select_db($database_connMia$connMia);
    $query_prova "SELECT * FROM categorie INNER JOIN foto ON categorie.id=foto.cat";
    $prova mysql_query($query_prova$connMia) or die(mysql_error());
    $row_prova mysql_fetch_assoc($prova);
    $totalRows_prova mysql_num_rows($prova); 
    e fin qui tutto ok... mi estrapola tutti i dati.... ora però io ho la necessità di vedere la prima foto di ogni categoria, quindi ho provato questo codice ma nn funziona

    Codice PHP:
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td><?php if ($row_prova['cat']==1){
    echo 
    $row_prova['foto'];
    ?></td>
    <td><?php if ($row_prova['cat']==2){
    echo 
    $row_prova['foto'];
    ?></td>
    </tr>
    </table>
    dove sbaglio?!

    Grazie

  2. #2

    Re: inner join

    in che senso no funziona? Mi sembra corretto...

  3. #3
    nn mi visualizza il record.... solo l'ultimo inserimento nel db....

  4. #4
    Ah capito, non avevo guardato bene l'insieme e mi ero concentrato sulla visualizzazione

    SELECT * FROM foto INNER JOIN categorie ON categorie.id=foto.cat

    Ecco

  5. #5
    mi fa vedere solo il primo inserimento..... se faccio un ciclo me li vede tutti e sarebbe perfetto..... io però devo estrapolare solo il primo di ogni gruppo....
    es.

    codice:
    tab: categorie
    id | categoria
    1 | mare
    2 | montagna
    3 | città
    .....
    
    tab2: foto
    id | cat | foto
    1 | 1 | fotoMare1.jpg
    2 | 1 | fotoMare2.jpg
    3 | 1 | fotoMare3.jpg
    4 | 2 | fotoMontagna1.jpg
    5 | 3 | fotoCitta1.jpg
    6 | 2 | fotoMontagna2.jpg
    io devo estrapolare:
    fotoMare1.jpg | fotoMontagna1.jpg | fotoCitta1.jpg

  6. #6
    SELECT ft1.* FROM foto as ft1
    INNER JOIN (SELECT * FROM foto ORDER BY id DESC) AS ft2 ON ft1.id = ft2.id
    INNER JOIN categorie ON ft1.cat = categorie.id
    GROUP BY ft1.cat

    Provala, non ti assicuro niente

  7. #7
    ORDER BY id ASC

  8. #8
    Perfetto... grazie funziona alla grande....

    grazie

    come si è ben capito.... le query annidate nn sono proprio il mio campo....

    se volessi estrapolare anche il campo "categoria" dalla tabella "categorie"?!

  9. #9

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.