Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Problema doppia query

  1. #1

    Problema doppia query

    Buongiorno a tutti. Ho un problema con la visualizzazione di una doppia query.

    Praticamente io nella pagina di visualizzazione del sito voglio che ci sia una tabella a 3 colonne come segue:

    NOME COGNOME IMMAGINE

    C'è la tabella persona e la tabella medaglie.

    Per semplificare le cose vi dico che persona ha (pid, nome, cognome) e medaglie (id, pid, immagine) e referenzia persona.

    Magari mi manca qualcosa di stupido che mi sfugge ma non ci riesco:

    Io faccio una query che mi restituisce tutti i nomi e i cognomi delle persone.
    Poi faccio while($row = mysql_fetch_array($res)

    e dentro ci metto:

    <td align=\"center\">$nome</td>

    <td align=\"center\">$cognome</td>";

    La tabella in teoria avrebbe una terza colonna per l'immaginetta (che non è detto che le persone hanno)

    <td align=\"center\"><img src=\"$immagine\"></td>

    Io quindi dopo la colonna cognome faccio una seconda query che mi seleziona l'immagine e l'id.
    faccio quindi un altro while in modo che mi seleziona (metti che una persona ha vinto 5 medaglie me le dovrebbe visualizzare tutte) tutte le immagini di quella persona.

    Il problema è che ora non mi visualizza più la lista delle persone.
    Spero che si è capito.

  2. #2
    Oppure domanda alternativa.
    C'è un modo per far si (in PHP) che io faccio due query:

    $query1
    $query2

    $res1
    $res2

    e poi nel while ho i valori di entrambe le query?
    Considerando che la query 1 sicuramente non è mai vuota mentre la query 2 può anche essere vuota?

  3. #3
    Aspetta...aspetta...la mia sfera di cristallo mi dice che:
    ...c'è un errore nella query...no, scusa, mi dice che il ciclo while è errato...no, no, forse una delle variabili non è valorizzara...o forse...cavolo s'è fulminata la sfera
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    E' un modo carino per dirmi: posta tutto il codice sennò non capisco una mazza? XD

  5. #5
    Originariamente inviato da AyeyeBrazorv
    E' un modo carino per dirmi: posta tutto il codice sennò non capisco una mazza? XD
    Tu che ne dici?

    Se prima funzionava e poi, a fronte di tue modifiche non funziona più, ...sarà mica che c'è qualche problema nel codice?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Codice PHP:
    $persona "SELECT nome,cognome id,FROM persona";

                    
    $res mysql_query($persona,$conn);

                    echo <
    table style=\"float:left\" border=\"1\">

                    <tr>

                        <td align=\"center\">[b]Nome[/b]</td>

                                            <td align=\"center\">[b]Cognome[/b]</td>

                        <td align=\"center\">[b]Medaglie[/b]</td>

                    </tr>"
    ;

                    while(
    $row mysql_fetch_array($res)){

                        
    $nome=$row['nome'];

                        
    $cognome=$row['cognome'];

                                            
    $id $row['id'];
                        echo 
    "<tr>

                        <td align=\"center\">
    $nome</td>

                                            <td align=\"center\">
    $cognome</td>";
                        
    $medaglie "SELECT immagine FROM medaglie WHERE id='$id' ";
                        
    $res2mysql_query($medaglie,$conn);
                        
    $numero mysql_num_rows($res2);
                        if(
    $numero==0){
                            echo 
    "<td align=\"center\"></td></tr>";
                        }
                        else{
                            while(
    $row mysql_fetch_array($res2){
                                
    $immagine $row['immagine'];
                                echo 
    "<td align=\"center\"></td><img src=\"$immagine\"></tr>";
                            }
                        }

                    } 
    Aggiungo che prima che creassi la cartella immagine avevo echo "<td align=\"center\"></td></tr>"; sotto a <td align=\"center\">$cognome</td>"; e mi stampava tutte le persone con la casella medaglie vuota. Ora che ho fatto questa cosa mi stampa tutto bianco. Che fare?

  7. #7
    Una furbata utilizzare la stessa variabile $row per entrambi i cicli while:

    Codice PHP:
    ...
                    while(
    $row mysql_fetch_array($res)){
    ...
                            while(
    $row mysql_fetch_array($res2){ 
    ... 
    Cambia così:

    Codice PHP:
    ...
    while(
    $row2 mysql_fetch_array($res2){
                                
    $immagine $row2['immagine'];
                                echo 
    "<td align=\"center\"></td><img src=\"$immagine\"></tr>";
                            } 
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Non è cambiato nulla. Non si vede comunque

  9. #9
    Questo come lo vedi?

    Codice PHP:
    ...
    echo 
    "<td align=\"center\"></td><img src=\"$immagine\"></tr>"
    ... 
    forse così è meglio:

    Codice PHP:
    ...
                            while(
    $row2 mysql_fetch_array($res2){
                                
    $immagine $row2['immagine'];
                                echo 
    "<td align=\"center\"><img src=\"$immagine\"></td>";
                            } 
    echo 
    "</tr>";
    ... 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Ho modificato così:

    Codice PHP:
    echo "<td align=\"center\"></td>";                     
    while(
    $row2 mysql_fetch_array($res2)){                             
    $immagine $row2['immagine'];                             
    echo 
    "Gol";                              
    //echo "<img src=\"$immaginegol\">";                         
    }                     
    echo
    "</tr>"
    E mi stampa le persone ma non l'immagine.
    Per fare una prova (pensando che fosse un problema di immagine) ho fatto stampare GOL ma non mi stampa neanche questo.
    Ora mi stampa tutte le persone ma non le immagini delle medaglie vinte

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.