» Poradna » Programy

Php naplnění comboboxu

 |   |  Microsoft Windows 8 Chrome 22.0.1229.79

Zdravím,rád bych se zeptal na radu zkušenějších. Snažím se pomocí php naprogramovat jednoduchý e-shop. Data zobrazuji z databáze v phpmyadmin a momentálně se snažím naplnit combobox daty ze sloupce "druh" a následně podle těchto hodnot filtrovat obsah. Ovšem názvy se zde opakují, tudíž jsem chtěl vytvořit cyklus s podmínkou, kdy se to název vypíše jen jednou, ale ne a ne na to přijít. Data se v comboboxu neustále opakují.Přikládám ukázku kódu.<form name="F1" method="post"> <table border="1" align="center" width="200"> <tr> <th colspan="3"> <h2> Filtrace </h2> </th> </tr> <tr> <th> Druh: </th> <th> <?php $dotaz="select druh trida from zbozi;"; $vysledek = mysql_query($dotaz) or die ("Nelze provézt dotazy"); echo "<select name='druh'>"; echo "<option value='%'>Vše</option>"; while (list($druh) = mysql_fetch_row($vysledek)) { if (isset($_POST['druh']).$druh==$_POST['druh']) $vybrano="selected"; else $vybrano=""; echo "<option value='".$druh."' $vybrano>".$druh."</option>"; } echo "</select>"; ?> </th> <th> <input type="submit" name="filtruj" value="Filtruj" /> </tr> </table> Děkuji za případné návrhy.

Odpovědi na otázku

 |   |  Microsoft Windows 7 Firefox 14.0.1

Ahoj.Rešíš to zbytečně složitě, ale učený z nebe samozřejmě nespadl (to jen někteří borci).Natakovéto filtrování dat je často nejvhodnější pracovat už na úrovni databáze.Databáze zná kouzelné group by, které zajistí výpis jen rozdílných hodnot ve sloupci.Mělo by tedy stačit upravit:$dotaz="select druh trida from zbozi group by druh";Mimochodem nejsem si jistý, jak máš nastaveno při dalších průchodech $vybrano="selected";Nikde totiž stav $vybrano neměníš.To by mělo generovat nevalidní HTML kód, kdy všechny položky jsou s atributem selected.Zatímco podle normy by selected měla být výhradně jedna položka.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 22.0.1229.79

S tím selected jsem si toho všiml, až co jsi to napsal. Následně jsem select přiřadil jen hodnotě "vše". Sice při vyfiltrování podle něčeho mi to select vrátí zase na "vše", ale to je zanedbatelný detail.Děkuji, opravdu mi to ulehčilo práci i pro budoucí programování!S pozdravem,Daniel.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.64

www.devbook.cz - programátorská sociální síť :)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 22.0.1229.79

Díky, takové stránky se vždy hodí pro další problémy, které určitě přijdou. :o)

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Mozilla 18.0

BTW: mašinkový kód (tr td td tr tr tdtdttdtd...) se už v tomto století nepíše bohúšu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 Chrome 26.0.1410.43

Kdybych znal modernější způsob, používal bych ho. Bohužel, když nás to takto vyučují na škole, jsem nucen jej používat, když nám to cpou do hlavy.Naštěstí jsou tu lidé, kteří nás narozdíl od zastaralých způsobů, které nám cpou do hlavy učitelé, naučí jednodušší a modernější způsob.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux AppleMAC-Safari 5.0

No jo, machýrek.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: 10, Druh, Naplnění, Echo, Jednoduchý e-shop




Určitě si přečtěte

Dell XPS 13: Když vás ostatní doženou až za tři roky

Dell XPS 13: Když vás ostatní doženou až za tři roky

** XPS 13 nastartoval trend notebooků bez rámečků ** Letošní model kompletně přechází na USB-C ** Navzdory malému tělu se řadí výkon ke špičce

Tomáš Holčík | 34

České školství čeká revoluce v informatice. Děti se budou učit programovat a logicky myslet

České školství čeká revoluce v informatice. Děti se budou učit programovat a logicky myslet

** Projekt iMyšlení představil 11 nových učebnic pro výuku informatiky ** Cílem je i ty nejmenší děti naučit programovat a logicky uvažovat ** Přichází odklon od současného konceptu učení toho, jak se počítač vůbec ovládá

Karel Javůrek | 104

Roboruka se 100 let učila otočit kostičku. Skutečné A.I. se možná nikdy nedočkáme

Roboruka se 100 let učila otočit kostičku. Skutečné A.I. se možná nikdy nedočkáme

** Strojové učení v posledních deseti letech dokázalo divy ** Používáme ho dnes každý den nejen ve vyhledávači ** A přesto se člověku nepřibližuje ani náznakem

Jakub Čížek | 59


Aktuální číslo časopisu Computer

Jak vytvořit a spravovat vlastní web

Velký test herních klávesnic a DVB-T2 tunerů

Vše o formátu RAW

Vybíráme nejlepší základní desku