la select per prendere dati da un campo ENUM ripete dieci volte i valori

odisseo83

Nuovo Utente
14 Apr 2010
6
0
0
Ciao a tutti, ho una tabella su un DB mySql con un campo ENUM. Ho usato una funzione trovata in rete per andare a prendere i valori del suddetto campo, ma poi quando ho creato la select in maniera molto ingarbugliata come risultato mi dà ogni valore dell'enum ripetuto due volte nella tendina e tutti i valori insieme ripetuti una dozzina di volte. in più mi si impalla il browser, non riesce a caricare del tutto la pagina e va in crash.

ecco il codice, aspetto le vostre legnate e i vosti suggerimenti :)

PHP:
function enum_select($table,$field) {
    $result=mysql_query("SHOW COLUMNS FROM `$table` LIKE '$field'");
    if(mysql_num_rows($result)>0){
        $row=mysql_fetch_row($result);
        $options=explode("','", preg_replace("/(enum|set)\('(.+?)'\)/","\\2", $row[1]));
        $options2 = array();
        foreach ($options as $value) {
            $options2[] = array(
                'value' => $value,
                'display' => htmlentities($value)
            );
        }
        echo "<br /><br />";
        print_r($options2);
	#echo $options2;
    } else {
        $options=array();
    }
    return $options2;  
}

echo "
			<select name=\"scegli_tipo\">
		";
while ($matrioshka_tipo = enum_select("opera","opera_tipo")){
		 foreach ($matrioshka_tipo as $array_interno)
			foreach ($array_interno as $valore)
		if (isset($_POST["scegli_tipo"]) && $_POST["scegli_tipo"] == $valore)
		 echo "<option value='{$valore}' selected='selected'>{$valore}</option>";
		else
		 echo "<option value='{$valore}'>{$valore}</option>";
		}
echo "</select>";
 

programmatore

Utente Attivo
21 Ago 2009
111
0
0
programmatore.altervista.org
Secondo me il problema è nel while. La funzione ti restituisce la stessa cosa ogni volta, quindi secondo me hai un loop infinito. Farei così:
PHP:
$valori_enum=enum_select("opera","opera_tipo");
foreach ($valori_enum as $array_interno) 
            foreach ($array_interno as $valore)
Così a occhio forse c'era un ciclo di troppo, ma può essere che non sia così.
 

odisseo83

Nuovo Utente
14 Apr 2010
6
0
0
Grazie, avevi ragione per il loop: eliminando il while si elimina la continua ripetizione dei valori.

I valori rimanevano però ripetuti due volte ognuno, a quel problema ho ovviato modificando l'array $options2 nella funzione: ho tolto la chiave 'display' e ogni valore è dato solo una volta.

ecco il codice:

PHP:
function enum_select($table,$field) {
    $result=mysql_query("SHOW COLUMNS FROM `$table` LIKE '$field'");
    if(mysql_num_rows($result)>0){
        $row=mysql_fetch_row($result);
        $options=explode("','", preg_replace("/(enum|set)\('(.+?)'\)/","\\2", $row[1]));
        $options2 = array();
       foreach ($options as $value) {
            $options2[] = array(
                'value' => $value
            );
        }
        echo "<br /><br />";
        print_r($options2);
	
	foreach ($options as $value) 
	echo $value;
	
    } else {
        $options=array();
    }
    return $options2;  
}

		$matrioshka_tipo = enum_select("opera","opera_tipo");
		 foreach ($matrioshka_tipo as $array_interno)
			foreach ($array_interno as $valore)
		if (isset($_POST["scegli_tipo"]) && $_POST["scegli_tipo"] == $valore)
		 echo "<option value='{$valore}' selected='selected'>{$valore}</option>";
		else
		 echo "<option value='{$valore}'>{$valore}</option>";
 
Discussioni simili
Autore Titolo Forum Risposte Data
Tommy03 Select in ordine per numero di record MySQL 7
S Il metodo $.getJSON() e <select> che non si popola di dati per query troppo grandey Ajax 0
D javascript per select condizionali Javascript 1
P le select vanno per i fatti loro e non a fianco alle label PHP 2
P Recupero dati per select form PHP 9
A Aiuto per Select form dinamica PHP 0
K query per popolare una select tramite ajaxc php e xml ! Ajax 14
F unico submit per più select PHP 2
criric Select per cambiare il font Snippet Javascript 0
M Sicurezza dati form per insert e select in database PHP 11
G Inserire un campo mysql in un select per form PHP 3
L Aiuto per select dinamiche in asp Classic ASP 3
R Variabile per impostare la tabella di una select Classic ASP 2
X select per regioni,provincie e comuni PHP 2
B Integrare Asp/html Per Le Select Classic ASP 0
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
M [PHP] Problema con query select PHP 2
C [PHP] Controllo <select> comportamento anomalo PHP 2
G [PHP] Select con opzioni dipendenti da un'altra select PHP 3
L [Javascript] Select option in campi input Javascript 4
M [PHP] Problemi con select PHP 6
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7

Discussioni simili