Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203

    PHP inner join - while

    Ciao!

    Non credo sia una cosa difficile, ma non ne riesco a venire a capo!
    Ho una tabella nel database fatta così:
    idGallery - nomeGallery - fotoGallery

    Poi ho un'altra tabella strutturata così:
    idFoto - idGallery - nomeFoto - minFoto

    Vorrei visualizzare le immagini presenti nelle galleria collegato i database con inner join, ma qualcosa non funziona!
    Mi chiamo la pagina così:
    Codice PHP:
    [url="gallery_foto_elenco.php?idGallery=<?php echo $riga->idGallery?>"]Mostra immagini[/url]
    E questa è la pagina:
    Codice PHP:
    <table width="100%" border="1">
      <tr><?php
              $idGallery 
    str_replace("@@@@","'",$_REQUEST['idGallery']);
              
    $sql "SELECT gallery.nomeGallery, gallery_foto.nomeMin, gallery_foto.idFoto FROM gallery_foto INNER JOIN gallery ON gallery_foto.idGallery = gallery.idGallery WHERE idGallery = '$idGallery' ORDER BY gallery.nomeGallery  ;";
              
    $risultato mysql_query($sql,$con);
              while(
    $riga mysql_fetch_object($risultato)){
              
    ?>
       <td>[img]<?php echo $riga->nomeMin;?>[/img]
       </td>
              <?php
              
    }
              
    ?>
       </tr>
    </table>
    Ma mi da errore sulla riga del "while".
    Potete aiutarmi?

  2. #2
    Codice PHP:
    $sql "SELECT gallery.nomeGallery, gallery_foto.nomeMin, gallery_foto.idFoto FROM gallery_foto INNER JOIN gallery ON gallery_foto.idGallery = gallery.idGallery ORDER BY gallery.nomeGallery;";
    $risultato mysql_query($sql$con); 
    echo 
    "<table width='100%' border='1'>";
    $column 1;
    while(
    $riga mysql_fetch_object($risultato)) { 
        if (
    $column == 1) {
            echo 
    "<tr>";
        }
        echo 
    "<td>[img]".$riga->nomeMin."[/img]</td>";
        if (
    $column == 5) {
            echo 
    "</tr>";
            
    $column 1;
        } else {
            
    $column++;
        }
    }
    if (
    $column != 1) {
        echo 
    "</tr>";
    }
    echo 
    "</table>"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Ok, provo, grazie!

    Però credo di aver sbagliato comunque l'inner join... ho modificato il post!

  4. #4
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Niente da fare:
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\iken\cms\gallery_foto_elenco.php on line 65

    codice:
    while($riga = mysql_fetch_object($risultato)) {

  5. #5
    Controlla che $idGallery sia correttamente valorizzato, inoltre se esso è numerico togli gli apici dalla select, infine modifica:

    Codice PHP:
    $risultato mysql_query($sql$con); 
    in:

    Codice PHP:
    $risultato mysql_query($sql$con) or die ("Error: ".mysql_error()); 
    e vedi che errore ti tira fuori.

    P.S.
    La parte di visualizzazione invece dovrebbe andare bene.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Error: Column 'idGallery' in where clause is ambiguous

  7. #7
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Togliendo WHERE dalla stringa
    codice:
        $sql = "SELECT gallery_foto.nomeMin, gallery_foto.nomeFoto, gallery_foto.idFoto FROM gallery_foto INNER JOIN gallery ON gallery_foto.idGallery = gallery.idGallery WHERE idGallery = $idGallery ORDER BY gallery.nomeGallery  ;";
    funziona, ma il problema è che qualsiasi gallery apra, mi visualizza tutte le immagini senza tener conto dell'idGallery!

  8. #8
    Originariamente inviato da Reiko81
    Error: Column 'idGallery' in where clause is ambiguous
    Più chiaro di così...entrambe le tabelle hanno la colonna idGallery per cui è ambiguo a quale delle due si siferisca:

    Codice PHP:
    $sql "SELECT gallery.nomeGallery, gallery_foto.nomeMin, gallery_foto.idFoto FROM gallery_foto INNER JOIN gallery ON gallery_foto.idGallery = gallery.idGallery WHERE gallery.idGallery = '$idGallery' ORDER BY gallery.nomeGallery"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Originariamente inviato da Reiko81
    Togliendo WHERE dalla stringa
    codice:
        $sql = "SELECT gallery_foto.nomeMin, gallery_foto.nomeFoto, gallery_foto.idFoto FROM gallery_foto INNER JOIN gallery ON gallery_foto.idGallery = gallery.idGallery WHERE idGallery = $idGallery ORDER BY gallery.nomeGallery  ;";
    funziona, ma il problema è che qualsiasi gallery apra, mi visualizza tutte le immagini senza tener conto dell'idGallery!
    Anche se fa un caldo boia cercherò di mantenere la calma dato che questo genere di tentativi illogici e senza senso mi urtano un poco!
    A cosa serve la prova che hai fatto?! I problemi vanno risolti non bypassati togliendo parti di codice!!!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Originariamente inviato da satifal
    Più chiaro di così...entrambe le tabelle hanno la colonna idGallery per cui è ambiguo a quale delle due si siferisca:

    Codice PHP:
    $sql "SELECT gallery.nomeGallery, gallery_foto.nomeMin, gallery_foto.idFoto FROM gallery_foto INNER JOIN gallery ON gallery_foto.idGallery = gallery.idGallery WHERE gallery.idGallery = '$idGallery' ORDER BY gallery.nomeGallery"
    Ma il FROM non dovrebbe indicare la tabella da cui prendere i dati?
    E l'INNER JOIN non dovrebbe necessitare di un id comune a entrambe le tabelle?

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.