Autor | Zpráva | ||
---|---|---|---|
james2210 Profil |
#1 · Zasláno: 24. 2. 2015, 23:01:09
Ahojte , mam taký menši problém a už sa sni trápim nejaký ten čas.
Problém pozostáva : Mám spravený výpis užívateľov z DB (MySQL) na : <select></select> výpis funguje až ne jednu drobnú chybu ktorú by som potreboval vyriešiť a to je že chcem rozdeliť užívateľov do skupín a tu nastáva problém. mám napr. DB tabuľke : ID user pass hodnost 1 Fero **** user 2 Alena **** sponzor 3 Emil **** user 4 Lucia **** user 5 Daniel **** moderator 6 Erik **** moderator <select class="message_komu_select" name="komu_poslat" > <?php $s1= mysql_query("SELECT * FROM account"); while($row= mysql_fetch_assoc($s1)) { ?> <optgroup label="<?php echo "".ucfirst($hodnosti[$row['hodnost']])."" ?>"> <option value="<?php echo "".$row ['id_account']."" ?>"><?php echo "".ucfirst($row ["username"])."" ?></option> </optgroup> <?php } ?> </select> keď použijem súčasný kód ktorý som tu dal tak sa to vypíše všetko až na to že label ( hodnost ) sa duplikuje. Ak do dotazu na výpis z DB pridám : group by hodnost vypíše iba raz ale iba s jedným menom ale napr.: v hodnost : user majú 3 užívatelia (Fero , Emil , Lucia) pritom sa vypísše iba : Fero. vedel by mi niekto pomoc ako toho docielim. Živá ukážka |
||
juriad Profil |
#2 · Zasláno: 24. 2. 2015, 23:04:20
Chceš si upravit toto:
Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze Seřadit podle hodnost a začít optgroup kdykoli uvidiš novou hodnot. Žádný GROUP BY nechceš. |
||
lionel messi Profil |
james2210:
SQL dotaz je v poriadku, zoskupovanie nepotrebuješ. Odporúčam riadiť sa juriadovou odpoveďou. |
||
james2210 Profil |
#4 · Zasláno: 25. 2. 2015, 22:40:18
Skúsil som čo navrhoval juriad lenže nejak mi to nejde a neviem kde mam chybu ...
$pamet = "" .$row ['hodnost']. ""; <?php $s1= mysql_query("select hodnost, username from account order by hodnost, username"); $pamet = ''; while($row= mysql_fetch_assoc($s1)) { if ($row ['hodnost'] != $pamet) { $pamet = "" .$row ['hodnost']. ""; echo "<optgroup label=" $pamet "</optgroup>"; } echo "<option value=" .$row ['id_account']. ">" .ucfirst($row ["username"]). "</option>"; } ?> |
||
Alphard Profil |
#5 · Zasláno: 25. 2. 2015, 23:02:44
Uvozovky pro html je třeba escapovat (nebo použít apostrofy, nebo tam dát
. pro spojení řetězců (s tím, že na výstupu uvozovky nebudou vůbec))
echo "<optgroup label=\"$pamet\"></optgroup>"; „ $pamet = "" .$row ['hodnost']. ""; “
Tohle vypadá strašně, připojovat prázdný řetězec nemá žádný smysl, stačí psát $pamet = $row['hodnost']; |
||
james2210 Profil |
#6 · Zasláno: 26. 2. 2015, 00:16:53
Ďakujem všetky za pomoc, už mi to funguje.
|
||
Časová prodleva: 10 let
|
0