IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jakub Lopata
Člen
Avatar
Jakub Lopata:1.7.2016 14:03

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.7.2016 14:03
Avatar
shaman
Člen
Avatar
Odpovídá na Jakub Lopata
shaman:1.7.2016 14:48

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.7.2016 14:48
try {...} catch (Exception ignored) { echo " ¯\_(ツ)_/¯ "; }
Avatar
Jakub Lopata
Člen
Avatar
Odpovídá na shaman
Jakub Lopata:4.7.2016 11:21

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

Editováno 4.7.2016 11:21
 
Nahoru Odpovědět
4.7.2016 11:21
Avatar
Jakub Lopata
Člen
Avatar
Jakub Lopata:31.7.2016 17:32

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.7.2016 17:33
 
Nahoru Odpovědět
31.7.2016 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.