Zdravím, mám dotaz....
Abych mluvil ihned v příkladu, mám tabulku o sedmi sloupcích.Lidé mají před sebou formulář, kde zadávají 7 jmen, které je ihned napadli. Každé to jméno je samozřejmě uloženo do svého sloupce v tabulce podle toho jak je zadávali a potřebuji z tohohle seznamu vypsat všechna jména, která ti lidi zadali, ale právě tak, aby se neduplikovali, aby ve výpisu bylo pouze jednou jméno michal, jednou martin atd... Problém je v tom že musím mít těch 7 sloupců, protože potom podle toho budu dělat statistiky že u jména michal toho člověka napadlo i 50x jméno martin atd,.,,,
Mohl by mi někdo prosím poradit jak udělat ten výpis jmen ze sedmi sloupců tak, aby se jména neduplikovala? Díky...
Fórum › MySQL
Filtrování stejných jmen ve výpisu z databáze
Uváděný postup je naprosto chybný. Databáze (aplikace) by měla být navržena tak, aby mohla reagovat na případné změny. Jak se zachováš, pokud si za měsíc řekneš, že by bylo dobré přidat další jméno (a zvětšit počet ze sedmi na osm)? Půjde vůbec s takovouto tabulkou dělat nějaké změny?
Můžeš to obejít vytvořením číselníku, který bude obsahovat jména v kalendáři (při vkládání můžeš dělat kontrolu, jestli uživatel neposlal nějaký jiný vstup nebo pomocí AJAXu uživateli napovídat jména). Na číselník se budeš odkazovat v tabulce záznamů, v které budeš evidovat unikátní identifikátor uživatelského vstupu (konkrétní interakce uživatele), pořadí volby a ID z číselníku se jmény. Do tabulky můžeš zahrnout i čas nebo jiné zajímavé vstupy. (Při dalším rozšiřování se nabízí otázka, jestli nevytvořit ještě jednu tabulku, která bude uchovávat data pro jedno vyplnění formuláře - tím se také urychlí agregování dat.)
Díky tomu získáš flexibilní strukturu, která ti pokryje statistiku jmen vybraných v daném pořadí. Zároveň bez větších potíží můžeš zvýšit/snížit počet záznamů, které bude uživatel moci zadat. (Jak naložíš s případnými chybějícími/přebývajícími informacemi u předchozích záznamů záleží jen na tobě. Díky datumu je můžeš třeba ignorovat.)
K zamyšlení: zkus navrhnout databázový model tak, aby šlo vkládat i jiné varianty testů (např. ABCD atd.)
Alebo aj distict, moc som nepochopil... Uz je neskoro :)
http://www.sql-tutorial.net/SQL-DISTINCT.asp
To toka : ano daneho sloupce, ale pokud sem to dobre pochopil, tak soucasna struktura jeho databaze je takova, ze distinct nebude fungovat(michal se muze na prvni radku vyskytnout v prvnim sloupci, na druhem vsak v patem sloupci).
jak sem pochopil, db vypada takto
id | jmeno1 | jmeno2 | jmeno3 | jmeno4 | jmeno5 | jmeno6 | jmeno7
-----------------------------------------------------------------
pak tedy
1 | michal | adam | martin | lukas | tomas | pavel | jan
----------------------------------------------------
2 | petr | martin | libor | ales | milan | pavel | jana
= distninct je k nicemu, group by rovnez - napr "distinct jmeno3" by vypsalo oba radky
Jak uz psal stepan, databaze je spatne navrzena a souhlasim s jeho navrhem :)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Přepínač obrázků v PHP přez Databáze a výpisu z adresáře — založil cosh-boy
Trideni jmen — založil Lukáš
Posun jmen — založil David
Posun Jmen — založil Radek
Moderátoři diskuze