Visualizzazione risultati 1 fino 5 di 5
Like Tree1Likes
  • 1 Post By alemoppo

Discussione: duplicare un ciclo while nella stessa pagina

  1. #1
    OMGFRENK non è connesso Utente giovane
    Data registrazione
    22-01-2020
    Messaggi
    30

    Predefinito duplicare un ciclo while nella stessa pagina

    salve coma da titolo mi servirebbe duplicare in risposta ad una select un ciclo while per utilizzarlo in piu select per selezionare i nomi

    solo che al secondo select non funziona
    ho provato a creare una funzione ma non va
    passo i codici che ho scritto
    spero qualcuno possa aiutarmi

    funzione
    Codice PHP:
    $prova = "SELECT * FROM liquidi WHERE omologa = '1523c'";
    $result = mysqli_query($conn,$prova) or die ("errore".$prova);
    function
    prova() {
    while(
    $row = mysqli_fetch_assoc($result)){
    echo
    "<option value ='".$row['id_id']."'>".$row['cer']."</option>";
    }
    }
    parte select con funzione
    Codice HTML:
    <form action="" method="post" name="1">
    <select name ="a" id="a">
    <option></option>
    <?php prova(); ?>
    
    </select>
    
    </form>
    <hr>
    
    <form action="" method="post" name="2">
    <select name ="b" id="b">
    <option></option>
    <?php prova() ;?>
    
    </select>
    </form>

    select con ciclo while
    Codice PHP:
    <form action="" method="post">
    <select name ="a" id="a">
    <option></option>
    <?php while($row = mysqli_fetch_assoc($result)){

    echo
    "<option value='". $row['id']."'>".$row['id_id']."</option>"; } ?>
    </select>

    </form>
    <hr>

    <form action="" method="post">
    <select name ="a" id="a">
    <option></option>
    <?php while($row = mysqli_fetch_assoc($result)){

    echo
    "<option value='". $row['id']."'>".$row['id_id']."</option>"; } ?>

    </select>

    </form>
    Ultima modifica di OMGFRENK : 30-05-2021 alle ore 11.00.38

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Se utilizzi una query con buffer e quindi conservati nella memoria del processo PHP.
    Assicurati che sia presente il campo id (case sensitive, cioè fai attenzione alle maiuscole o minuscole altrimenti il fetch non le trova) nella tua tabella.
    Se fai un ciclo per ogni riga avrai un n righe di option e non una per select.
    La seconda select così esposta è priva di significato, dal momento che con il primo ciclo potrai stamparle tutte. Discorso a parte per paginazinazione e dunque LIMIT che limita un resultset.

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,574

    Predefinito

    Perché non salvi la stringa in una variabile così da poterla utilizzare più volte senza rifare le query?

    Una cosa del genere:

    Codice PHP:
    $prova = "SELECT * FROM liquidi WHERE omologa = '1523c'";
    $result = mysqli_query($conn,$prova) or die ("errore".$prova);

    $my_options = '';
    while(
    $row = mysqli_fetch_assoc($result)){
    //echo "<option value ='".$row['id_id']."'>".$row['cer']."</option>";
    $my_options .= '<option value =\''.$row['id_id'].'\'>'.$row['cer'].'</option>';
    }

    /* --- */

    echo $my_options; //stampo quante volte voglio

    /* --- */

    echo $my_options; //stampo quante volte voglio
    Ciao!
    OMGFRENK likes this.

  4. #4
    OMGFRENK non è connesso Utente giovane
    Data registrazione
    22-01-2020
    Messaggi
    30

    Predefinito

    credevo daver scritto il messaggio di come avevo fatto chiedendo se ci fosse stata una soluzione migliore..

    Codice PHP:
    $prova = "SELECT * FROM liquidi WHERE omologa = '1523c'";
    $result = mysqli_query($conn,$prova) or die ("errore".$prova);
    $result1 = mysqli_query($conn,$prova)

    select1
    while($row = mysqli_fetch_assoc($result)){
    echo
    "<option value ='".$row['id_id']."'>".$row['cer']."</option>";

    }

    select2
    while($row1 = mysqli_fetch_assoc($result1)){
    echo
    "<option value ='".$row1['id_id']."'>".$row1['cer']."</option>";

    }


    $prova = "SELECT * FROM liquidi WHERE omologa = '1523c'";
    $result = mysqli_query($conn,$prova) or die ("errore".$prova);

    $my_options = '';
    while($row = mysqli_fetch_assoc($result)){
    //echo "<option value ='".$row['id_id']."'>".$row['cer']."</option>";
    $my_options .= '<option value =\''.$row['id_id'].'\'>'.$row['cer'].'</option>';
    }

    /* --- */

    echo $my_options; //stampo quante volte voglio

    /* --- */

    echo $my_options; //stampo quante volte voglio
    voglio provare questa soluzione grazie gentilissimi

  5. #5
    OMGFRENK non è connesso Utente giovane
    Data registrazione
    22-01-2020
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Perché non salvi la stringa in una variabile così da poterla utilizzare più volte senza rifare le query?

    Una cosa del genere:

    Codice PHP:
    $prova = "SELECT * FROM liquidi WHERE omologa = '1523c'";
    $result = mysqli_query($conn,$prova) or die ("errore".$prova);

    $my_options = '';
    while(
    $row = mysqli_fetch_assoc($result)){
    //echo "<option value ='".$row['id_id']."'>".$row['cer']."</option>";
    $my_options .= '<option value =\''.$row['id_id'].'\'>'.$row['cer'].'</option>';
    }

    /* --- */

    echo $my_options; //stampo quante volte voglio

    /* --- */

    echo $my_options; //stampo quante volte voglio
    Ciao!
    geniale e di una banalità assurda grazie ...grazie... provata proprio adesso

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •