Autor | Zpráva | ||
---|---|---|---|
Slark Profil * |
#1 · Zasláno: 16. 2. 2015, 10:58:38
Dobrý den,
poprosil bych Vás prosím o radu. Mám tabulku kde jsou řádky: id_attr | id_val 1 1 2 3 3 3 a potřeboval bych vybrat všechny tyto řádky id_attr i id_val mám ve foreach ale nedaří se mi poskládat dotaz, abych vybral všechny řádky (ne jen např. polovinu, ale všechny). A ještě k tomu počet řádků může být neomezený. Nevěděl by někdo jak takový select poskládat? Děkuji Všem za radu. |
||
Taps Profil |
Slark:
<? mysql_query("SELECT * FROM tabulka"); ?> |
||
juriad Profil |
Ukaž svůj kód v PHP a dotaz do databáze, který používáš.
|
||
Ivan M. Profil * |
#4 · Zasláno: 16. 2. 2015, 11:11:15
Dotaz pro výběr záznamů z databáze:
SELECT * FROM tabulka |
||
Slark Profil * |
#5 · Zasláno: 16. 2. 2015, 11:34:40
Jedná se o získání varianty produktu z url mám tam např. parm[barva]=cerna&parm[velikost]=xxl a potřebuji najít všechny řádky kde id_attr = velikost & val = xxl a zároveň id_attr = barva & val = cerna.
|
||
juriad Profil |
Aha, takže chceš něco, co ze zadání nebylo vůbec zřejmé:
Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení položek mající všechny hledané vlastnosti |
||
Ivan M. Profil * |
#7 · Zasláno: 16. 2. 2015, 11:40:36
Tak upřesnit výběr z DBA:
mysql_query("SELECT * FROM tabulka WHERE barva='".$barva."',velikost='".$velikost."'"); |
||
juriad Profil |
Chceš tu variantu se dvěma parametry.
Ivan M.: Jsi uplne mimo. Vlastnosti produktu nejsou v tabulce produktů, ale ve vazební tabulce mezi produkty a atributy spolu s hodnotou. SELECT p.* FROM produkty p JOIN parametry pa ON p.id = pa.produkt JOIN atributy a ON pa.atribut = a.id WHERE (a.name, pa.value) IN (('barva', 'cerna'), ('velikost', 'xxl')) GROUP BY p.id HAVING COUNT(DISTINCT a.name, pa.value) = 2 Přicemž ty máš nejspis hodnotu parametru uloženou ještě jinde; asi tedy použiješ ještě jeden JOIN. Ale bez databázového schématu je těžké říct, jak přesně to bude. Pokud uživatel může zadat více přípustných hodnot pro kazdý atribut, změní se jen klauzule HAVING, kde se bude uvažovat jen první část: COUNT(DISTINCT a.name) .
|
||
Slark Profil * |
#9 · Zasláno: 16. 2. 2015, 11:59:23
juriad_
díky moc přesně toto jsem potřeboval (s kódem jste se psát nemusel mám to tam ještě trochu komplikovanější) |
||
Časová prodleva: 8 let
|
0