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

    Stessa query MySQL su due menu a discesa

    Salve a tutti! Ho un problema con una pagina. Vorrei visualizzare due menu a discesa contenenti entrambi le stesse date prese da un database MySQL. Questo è il mio codice:

    Codice PHP:
    <?php
    $dbcnx 
    mysql_connect('localhost'rootroot);
    if (!
    $dbcnx) {
        echo 
    '

    Non posso connettermi con il database.</p>'
    ;
        exit ();
    }

    if (!
    mysql_select_db('db_cassa')) {
        exit (
    '

    Non riesco a trovare il database.</p>'
    );
    }

    $sql 'SELECT id, data FROM cassa GROUP BY data DESC';
    $date = @mysql_query($sql);
    if (!
    $date) {
        exit (
    '

    Non sono riuscito ad ottenere l\'elenco di date disponibili dal database. Contattare l\'amministratore.</p>'
    );
    }

    if (isset (
    $_GET['datainizio']) and isset ($_GET['datafine'])):
        
    ?>

    <?php else: ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
        

    Dal:
            <select name="datainizio" size="1">
                <?php
                
    while ($datainizio mysql_fetch_array($date)) {
                    
    $dvaloreinizio $datainizio['data'];
                    echo 
    "<option value='$dvaloreinizio'>$dvaloreinizio</option>\n";
                }
                
    ?>
            </select> Al:
           <select name="datafine" size="1">
                <?php
                
    while ($datafine mysql_fetch_array($date)) {
                    
    $dvalorefine $datafine['data'];
                    echo 
    "<option value='$dvalorefine'>$dvalorefine</option>\n";
                }
                
    ?>
            </select> 
            <input type="submit" value="Ricerca" />
        </p>
    </form>

    <?php
    endif;
    ?>
    Il problema è che nel primo menu ("datainizio") le date sono visualizzare correttamente, il secondo menu ("datafine") invece risulta vuoto. Se invece faccio un'altra connessione al database e un'altra volta la stessa query il tutto funziona alla perfezione. Qualcuno saprebbe spiegarmi come mai il mio codice non va?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    scope della variabile.
    $date viene deallocata alla fine del primo while
    risolvi con due variabili diverse

  3. #3
    imho.

    ho sbagliato concetto per mysql_fetch_array temo

    meglio la risposta sopra.

  4. #4
    Grazie mille!!!
    Ho aggiunta una seconda variabile e tutto ha funzionato alla perfezione!

  5. #5
    Il fatto è che con il primo while cicli tutto l'array $date fino alla fine
    e quando cerchi di ciclarlo di nuovo nel secondo while ti trovi già alla fine dell'array e quindi non entra neppure nel ciclo.

    Devi solo mettere il puntatore dell'array $date all'inizio prim di ciclare di nuovo

    Codice PHP:
       

    Dal:
            <select name="datainizio" size="1">
                <?php
                
    while ($datainizio mysql_fetch_array($date)) {
                    
    $dvaloreinizio $datainizio['data'];
                    echo 
    "<option value='$dvaloreinizio'>$dvaloreinizio</option>\n";
                }
                
    ?>
            </select> Al:
           <select name="datafine" size="1">
                <?php
                mysql_data_seek
    ($date0);// <---------- porti il puntatore all'inizio!!
                
    while ($datafine mysql_fetch_array($date)) {
                    
    $dvalorefine $datafine['data'];
                    echo 
    "<option value='$dvalorefine'>$dvalorefine</option>\n";
                }
                
    ?>

  6. #6
    Grazie mille philbert, spiegazione e soluzione perfetta!

    Grazie a tutti ragazzi, siete mitici!

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.