Diskuze: Výpis selectu

PHP PHP Výpis selectu American English version English version

Avatar
Jakub Lopata
Člen
Avatar
Jakub Lopata:

Zdravím Vás.
Mám tento skript: http://codepad.org/xiQE5LDr, zatím nedodělaný, ale funguje jak má, až na jednu věc. V databázi mám uložené možnosti v enum, ale vypisuje mi to jen jednu možnost v selectu nevíte proč?

 
Odpovědět 1. července 14:03
Avatar
shaman
Člen
Avatar
Odpovídá na Jakub Lopata
shaman:

Takze vypisuje ti to len aktualnu hodnotu, ktora je ulozena.

<option value="'.$order['stav'].'">'.$order['stav'].'</option>

Budes musiet pridat vsetky options do tohto bloku. Kedze nevieme ake enum hodnoty tam mas tak si dopln tuto funkciu

function get_enum_values( $table, $field )
{
    $sql = $mysql_query( "SHOW COLUMNS FROM {$table} WHERE Field = '{$field}'" );
    $type = mysql_fetch_array($sql)->row( 0 )->Type;
    preg_match("/^enum\(\'(.*)\'\)$/", $type, $matches);
    $enum = explode("','", $matches[1]);
    return $enum;
}

a potom pre kazde najdenu moznost si vytvoris jedno options, asi takto:

<?php
foreach(get_enum_values('orders', 'stav') as $type) {
        if($type == $order['stav']){
        echo '<option value="'.$type.'" selected>'.$type.'</option>';
        } else {
        echo '<option value="'.$type.'">'.$type.'</option>';
        }
}
?>
Nahoru Odpovědět 1. července 14:48
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
Jakub Lopata
Člen
Avatar
Odpovídá na shaman
Jakub Lopata:

enum hodnoty budu později předělávat tak, že jej budu moci upravovat v databázi, teda skrze administraci

Editováno 4. července 11:21
 
Nahoru Odpovědět 4. července 11:21
Avatar
Jakub Lopata
Člen
Avatar
Jakub Lopata:

Takže jsem výpis selectu nakonec vyřešil takto, kód níže. Ovšem není to moc dobré řešení, jelikož vypisuje jen předepsané hodnoty, ale jak jsem napsal výše hodnoty budu později přidávat skrze administraci webu. Jak vyřešit aby vypisoval všechny hodnoty v databázi?

$setting = mysql_query("SELECT suma FROM setting WHERE suma");

$typs = array ('CZK (Koruna česká)','€');

while($s = mysql_fetch_assoc($setting)){

$oznaceni[$s['suma']] = 'selected';

echo '<p>Měna</p>

<select name="suma">';

foreach($typs as $typ):

echo '<option value="'.$typ.'" '.$oznaceni[$typ].'>'.$typ.'</option>';

endforeach;
Editováno 31. července 17:33
 
Nahoru Odpovědět 31. července 17:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.