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:
Notice: Array to string conversion in C:\Program Files\soubor.php on line 11
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
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
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
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: