Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    mysql - select - troppo tempo

    ciao a tutti,

    devo creare una select in html e recuperare i valori delle opzioni da una tabella di un database mysql.

    nella tabella ci sono 57 record,
    con la query recupero solo due campi della tabella e precisamente:
    - codice (campo numerico da max 3 numeri)
    - nome (campo alphanum da max 10 carattari)

    poi faccio un ciclo while e finchè il ciclo non si conclude stampo:

    <option value="codice">nome</option>

    per restituire il tutto in locale ci metto almeno 5 secondi.

    eppure non mi sembra che i dati da recuperare siano tanti...


    se invece di recuperare i dati in una select li stampo in questo modo:

    ciclo while
    print"codice - nome
    ";

    la pagina viene restituita in pochissimo tempo..

    sapete aiutarmi?

    Ciao !
    aquatimer2000

  2. #2
    posto il codice... magari è di aiuto:

    codice:
    <html>
    <select name="selezione">
    <php
    $sql="SELECT nome,codice FROM tabella ORDER BY id";
    $res=mysql_query($sql,$db);
    while($row=mysql_fetch_array($res))
    {
        print"<option value=\"".$row[codice]."\">".$row[nome]."</option>";
    }
    ?>
    <html>
    aquatimer2000

  3. #3
    codice:
      print "<option value='$row[codice]'>$row[nome]</option>";
    non dovrebbero esserci problemi....

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

  4. #4
    a parte che il tag html se lo apri lo dovresti anche chiudere ... a parte che una select se la apri la dovresti anche chiudere


    codice:
    <?php
    $select = '<select name="selezione">';
    $query = mysql_unbuffered_query("SELECT nome,codice FROM tabella ORDER BY id", $db);
    while(@$r = mysql_fetch_row($query))
    	$select .= '<option value="'.$r[1].'">'.$r[0].'</option>';
    $select .= '</select>';
    echo $select;
    ?>




    [edit]
    ciao marchigiano
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    codice:
    <?php
    $select = '<select name="selezione">';
    $query = mysql_unbuffered_query("SELECT nome,codice FROM tabella ORDER BY id", $db);
    while(@$r = mysql_fetch_row($query))
    	$select .= '<option value="'.$r[1].'">'.$r[0].'</option>';
    $select .= '</select>';
    echo $select;
    ?>


    [edit]
    ciao marchigiano
    il codice che mi hai postato funziona alla grande!!

    ora però ho fatto delle piccole modifiche a quello che avevo scritto io (non ne capisco pratcamente niente..)

    la restituzione della pagina è sempre molto lenta...

    eppure adesso i tag dovrebbero essere ok? no?

    codice:
    <?php
    print'<select name="selezione"';
    $sql="SELECT codice,nome FROM tabella ORDER BY id";
    $res=mysql_query($sql,$db);
    while($row=mysql_fetch_array($res))
    {
        print"<option value=\"".$row[codice]."\">".$row[nome]."</option>";
    }
    print"</select>";
    ?>
    ciao !!
    aquatimer2000

  6. #6
    continui a scordarti pezzi di html in giro per lo script (manca > di chiusura nel tag iniziale della select)

    inoltre fare 329847987 print o echo che siano rallenta a prescindere.
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Originariamente inviato da andr3a
    inoltre fare 329847987 print o echo che siano rallenta a prescindere.

    manca un numero...

    ho capito, siccome tanto ti capisco poco o niente utilizzo il tuo codice che funziona!!

    non è che mi spieghi come hai utilizzato il codice così almeno cerco di capire ed evito di rompere per altre situazione simili!

    Grazie ancora dell'aiuto!!
    aquatimer2000

  8. #8
    tu hai carenze in php o in html ? ... cosa devo spiegarti ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    non ho capito le parti in grassetto del seguente codice:

    codice:
    $query = mysql_unbuffered_query("SELECT nome,codice FROM tabella ORDER BY id", $db);
    while(at$r = mysql_fetch_row($query))
    	$select .= '<option value="'.$r[1].'">'.$r[0].'</option>';
    $select .= '</select>';
    aquatimer2000

  10. #10
    codice:
    // la stringa è la query che fai, la puoi passare
    // come variabile o direttamente come stringa
    
    // la variabile $db è a variabile di connessione a mysql
    // parametro utile ma non indispensabile (in alcuni casi)
    // per dire alla fnzione _query in quale connesione operare
    // di default la prima che trova se non specificato
    // (in alcuni casi ci si potrebbe connettere a più di un database)
    
    // la funzione mysql_unbuffered_query è simile a mysql_query 
    // solo che non memorizza i risultati (non è possibile sapere se la query
    // ha dato risultati o meno con mysql_num_rows, ad esempio)
    $query = mysql_unbuffered_query("SELECT nome,codice FROM tabella ORDER BY id", $db);
    
    // il ciclo while serve a leggere i dati restituiti dalla query
    // la chiocciola serve ad evitare errori o notice qualora la query 
    // non dovesse restituire nessun dato.
    // è un' alternativa veloce ad una query tipo
    // $query = mysql_query($myquery, $mydb);
    // if(mysql_num_rows($query) > 0) {
    // 	while($r = mysql_fetch_ ... eccetera) {}
    // }
    
    // siccome tu non usavi il controllo sul risultato
    // tanto valeva usare la più veloce mysql_unbuffered_query e strtturare
    // il ciclo while in quel modo
    while(@$r = mysql_fetch_row($query))
    
    	// per prendere il risultato di una query abbiamo diverse funzioni
    	// tra cui mysql_fetch_row, la più veloce, che non restituisce
    	// il nome dei campi (più pulito e leggibile) ma le sole posizioni
    	// $r[0] = primo field restituito dalla query
    	// $r[1] = secondo fields ... e così via
    	// "SELECT a, b, c FROM table"
    	// $r[0] sarà a o l'equivalente di $r['a'] in mysql-fetch_assoc / mysql_fetch_array
    	// $r[1] sarà b
    	// $r[2] sarà c
    	$select .= '<option value="'.$r[1].'">'.$r[0].'</option>';
    
    // l' operatore di assegnazione .=
    // serve ad accodare una stringa ad un altra già esistente
    // in questo caso chiude la select aperta in dichiarazione 
    // della variabile $select = '<select name="selezione">';
    $select .= '</select>';

    tutto questo e molto di più su rieducascional channel


    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.