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

    [PHP+MySQL] Due query e while in while

    Eseguo due query con MySQL e creo un while per visualizzare in una tabella i risultati:
    Codice PHP:
    <? $query_visualizza_giorno "SELECT * FROM giorni";
    $visualizza_giorno mysql_query($query_visualizza_giorno$connessione) or die(mysql_error());
    $query_visualizza_programmi "SELECT * FROM programmi";
    $visualizza_programmi mysql_query($query_visualizza_programmi$connessione) or die(mysql_error()); ?>
    Ora voglio stampare a video i risultati della prima query ($visualizza_giorno):
    Codice PHP:
    <? while ($row mysql_fetch_array($visualizza_giorno)) {
    echo 
    "Valore 1: ".$row[0];
    echo 
    "Valore 2: ".$row[1];
    echo 
    "Menu' a discesa: <select name=\"programma\">"//continua... ?>
    Ecco, dove sta "Menu' a discesa" dovrei mettere un secondo while che elabori i dati della seconda query ($visualizza_programmi):
    Codice PHP:
    <?
    while ($row2 mysql_fetch_array($visualizza_programmi)) {
    if(
    $row['2'] == $row2['id']) {
        echo 
    "<option selected value=\"".$row2['id']."\">".$row2['descrizione']."</option>";
    } else {
        echo 
    "<option value=\"".$row2['id']."\">".$row2['descrizione']."</option>";
                }
             }
    ?>
    In pratica, nella prima query ho un campo "idprogramma" che contiene l'id del programma corrispondente per quel giorno. E vorrei che quel menu' a discesa venisse ripetuto per ogni riga della prima query. L'unica differenza che si ha di volta in volta è il valore che sarà selezionato (vedi "selected")...
    La cosa che non capisco è che questo mi funziona ottimamente solo al primo ciclo del primo while, dopodiché è come se tutto svanisse e gli altri menu' a discesa sono vuoti...

    PER UN ESEMPIO DI COME NON RIEMPIE GLI ALTRI CAMPI VEDI CLICCA QUI!...
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  2. #2
    Devi spostare il puntatore del result set alla prima riga... Il while lo scorre fino in fondo e quindi riceve un false e li rimane.

    mysql_data_seek()


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    quindi nel mio caso come dovrei fare?
    Codice PHP:
    <? mysql_data_seek($visualizza_programmi,0?>
    E soprattutto, questa funzione in quale zona dello script la devo posizionare?
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  4. #4
    Originariamente inviato da hacker_nait
    quindi nel mio caso come dovrei fare?
    Codice PHP:
    <? mysql_data_seek($visualizza_programmi,0?>
    E soprattutto, questa funzione in quale zona dello script la devo posizionare?
    lo devi posizionare all'uscita del while interno. In pratica finisce di scorrere la visualizzazione dei programmi, esce del while interno e ritorna al primo (while). Lo devi mettere o subito prima, oppure subito dopo il while interno. Prova.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    FUNZIONAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA VVoVe:

    MADO TI ... SE FOSSI DONNA :rollo:
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  6. #6
    Originariamente inviato da hacker_nait
    FUNZIONAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA VVoVe:

    MADO TI ... SE FOSSI DONNA :rollo:
    Puoi sempre mandare un buono per due gelati.... ho dei debiti da pagare....

    (affogato al viski e caffe)



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.