Autor | Zpráva | ||
---|---|---|---|
Someone Profil |
Dobrý den, už si nad tím vrtám hlavu dobrých pár hodin, ale stále se mi nedaří přijít na to jak to udělat. Jde o to, že mám filtr složený z checkboxů a nazákladě zaškrtnutí/nezaškrtnutí potřebuju vytáhnout data z databáze. Pokusil jsem se o něco takového:
$sql = mysql_query("SELECT * FROM tabulka WHERE tabuka.kategorie IN(".$_POST['kategorie'].") ORDER BY datumpridani DESC LIMIT 4"); Vypisuje mi to: Po zaškrtnutí checkboxů odesílám právě do POSTu, ale nevím jak na základě toho filtrovat data. Děkuji za všechny rady a nápady. Mimo to bych se rád zeptal jak vyřešit to, aby se při zaškrtnutí více checkboxů vypisovala nejdřívě data, která splňují obě podmínky a poté až data, která splňují jen jednu z nich. |
||
Tori Profil |
#2 · Zasláno: 24. 2. 2012, 23:18:39
Someone:
Projít POST data pomocí foreach a poskládat z toho podmínku do SQL. Předpokládám, že v HTML to vypadá nějak jako <input type='checkbox' name='kategorie[]' value='2'>
„jak vyřešit to, aby se při zaškrtnutí více checkboxů vypisovala nejdřívě data, která splňují obě podmínky“ Jen ze zvědavosti se ptám: jak máte uložená ta ID kategorií? (Totiž pokud by tohle byla kompletní podmínka WHERE, tak nerozumím tomu, jak by jeden záznam mohl mít několik různých ID kategorie.) |
||
panther Profil |
#3 · Zasláno: 24. 2. 2012, 23:19:18
Someone:
do IN předáváš pole, ale je očekávaný string s jednotlivými hodnotami oddělenými čárkami - podívej se na implode.
|
||
Someone Profil |
#4 · Zasláno: 25. 2. 2012, 13:45:59
Využuil jsem imlode, děkuji panthere.
Tori: „Jen ze zvědavosti se ptám: jak máte uložená ta ID kategorií?“ Toto ještě vyřešené nemám, ale ptal jsem se na to, abych se nemusel ptát později. Když tak nad tím přemýšlím, tak nemám zdání jak to udělat. Je to tak, že jedna položka může být zařazena ve více kategoriích a při filtrování, kde se např. zaškrtne kategorie 1 a kategorie 2 by se nejdříve měli vypsat položky, které jsou obsaženy v obou kategoriích a pak až ty, které jsou pouze v jedné z kategorií. Jak bych měl takovou situaci řešit? Napadlo mě, že v sloupci kategorie bude VARCHAR typu kategorie1,kategorie3 a pomocí explodu by se to vypsalo, ale jak to pak vyřešit s tím filtrováním? |
||
Tori Profil |
#5 · Zasláno: 25. 2. 2012, 14:12:41
Someone:
„Je to tak, že jedna položka může být zařazena ve více kategoriích“ .. a zároveň jedna kategorie může obsahovat více položek, tedy vztah N:N (nebo M:N, píše se to oběma způsoby, nevím proč) - koukněte na linuxsoft (N:N konkrétně) nebo sem (více o normalizaci DB). Když uvidíte, jak jsou data uložená, mělo by být vidět i podle čeho je budete řadit. |
||
Časová prodleva: 14 let
|
0