Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    impossibile eseguire 2 volte sul risultato di una query

    Ciao
    mi trovo con questo problema perchè ho necessità, almeno per il momento di presentare in 2 maniere differenti il risultato di una query.
    faccio così:
    - apertura connessione e collegamento al DB
    - creazione di una query
    quindi:
    Codice PHP:
    $query_limit mysql_query($Query$link);
    while(
    $row mysql_fetch_array($query_limit)) {
    ..........................

    fin qui tutto bene, ma se, subito dopo, tento di eseguire di nuovo la while non mi viene restituito nulla.
    Ho pensato che dipendesse da un mio errore.
    Ho invertito i 2 metodi di visualizzazione.
    Ma è sempre il primo ad essere visualizzato e mai il secondo.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Potresti postare il codice completo con i 2 while?

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Perché mysql_fetch_array() "consuma" il risultato della query.
    Dopo il primo while metti

    mysql_data_seek($query_limit, 0);
    o meglio
    mysqli_data_seek($query_limit, 0);
    come suggerito dalla documentazione ufficiale

    poi potrai riusare il while come la prima volta.

  4. #4
    Originariamente inviato da RoTeam
    Potresti postare il codice completo con i 2 while?
    sono 2 normali while
    con una estraggo i dati in maniera manuale:
    Codice PHP:
    while($row mysql_fetch_array($query_limit)) {
                 echo 
    "<td colspan=\"2\">".$row['denominazioni_precedenti']."</td>\n";
                 echo 
    "<td colspan=\"2\">".$row['prima_denominazione']."</td>\n";
                 
    // ecc

    con l'altra estraggo i dati in un ciclo:
    Codice PHP:
    while($row mysql_fetch_array($query_limit)) {
        for (
    $i 2$i count($fields); $i++) {
            echo 
    "<tr>\n";
            echo 
    "<th class=\"CHcolor\">".$fields[$i]."</th>\n";
            echo 
    "<td>".$row[$fields[$i]]."</td>\n";
            echo 
    "</tr>\n";
        }


    con questo modo anche invertendo le 2 while mi viene stampata solo la prima.

    Originariamente inviato da Alhazred
    Perché mysql_fetch_array() "consuma" il risultato della query.
    Dopo il primo while metti

    mysql_data_seek($query_limit, 0);
    o meglio
    mysqli_data_seek($query_limit, 0);
    come suggerito dalla documentazione ufficiale

    poi potrai riusare il while come la prima volta.
    Quindi provo a fare fare:
    codice:
    while($row = mysql_data_seek($query_limit, 0) ) {
           echo "<td>".$row[$fields[$i]]."</td>\n";
    //    ed aanche
           echo "<td colspan=\"2\">".$row['prima_denominazione']."</td>\n";
    }
    Farò sapere

    Grazie per ora e :ciauz:

    PS: ho modificato un errore di copiatura errata

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Originariamente inviato da micdas
    ...
    Quindi provo a fare fare:
    codice:
    while($row = mysql_data_seek($query_limit, 0) ) {
           echo "<td>".$row[$fields[$i]]."</td>\n";
    //    ed aanche
           echo "<td colspan=\"2\">".$row['prima_denominazione']."</td>\n";
    }
    ...
    No, devi fare
    Codice PHP:
    $query_limit mysql_query($Query$link);

    while(
    $row mysql_fetch_array($query_limit)) {
        ..........................
    }

    mysqli_data_seek($query_limit0);

    while(
    $row mysql_fetch_array($query_limit)) {
        ..........................


  6. #6
    Grazie della sollecita precisazione mi hai salvato da un infarto.
    Ho provato in quel modo come avevo scritto io ed ero andato in loop.
    Ora provo così.
    Sicuramente andrà bene.

  7. #7
    Dunque eccomi dopo la prova
    Con mysqli_data_seek mi da questo errore:
    Warning: mysqli_data_seek() expects parameter 1 to be mysqli_result, resource given in C:\AppServ\www\lorettabweb\gestione\vie\vie_table_ 1.php on line 102
    Probabilmente questo richiede l'ambiente mysqli che non ho configurato e mai usato

    Con mysql_data_seek funziona egregiamente in entrambe le chiamate che faccio.

    Grazie di nuovo.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Bene così

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.