Autor Zpráva
Ochechula58
Profil *
Ahojte, mam databazu kategorie a nasledne databazu clanky.

Potreboval by som poradit ako spravit aby sa mi vypisali iba clanky z podkategorii ktore urcim.

Mam napriklad hlavnu kategoriu NOVINKY a pod nou 3 podkategorie ktore maju RODICOVSKE_ID 12

ID........RODICOVSKE_ID........NAZOV
5..........0..............................Novinky
45.......12..............................Vesmir
12.......12..............................Priroda
1.........12..............................Botanika

Skusam to takto ale to nefunguje:

     $result = mysql_query('SELECT id FROM kategorie WHERE rodicovske_id="12" ');    
     $idkategorie = mysql_fetch_array($result ));

    $result2 = mysql_query('SELECT * FROM clanky WHERE '.$idkategorie.' ');     

Alebo som to skusal aj takto ale to je urcite uplna hlupost
     $result = mysql_query('SELECT * FROM kategorie WHERE rodicovske_id="12" ');       
 
 
    $result2 = mysql_query('SELECT * FROM clanky WHERE '.while($idkategorie = mysql_fetch_array($result )) { echo 'id_kategorie="'.$idkategorie [id].'" OR '; } .'  ');  

Problem je v tom ze mi to do WHERE rodicovske_ID doplna NULL vysledok.
Keeehi
Profil
Ochechula58:
Tak nejdříve by to chtělo opravit ukázku databáze. Takhle ty IDčka nedávají smysl.
Ochechula58
Profil *
Dakujem za odpoved ale nechapem ako to myslis ze treba opravit ukazku.

Vysledok z jednej poziadavky na DB bude napriklad 45,12,1
a potrebujem aby sa v druhej poziadavke na DB pouzilo WHERE na porovnanie udajov podla vysledkov z prvej poziadavky.
cize by to malo vyzerat takto:
mysql_query('SELECT * FROM kategorie WHERE id_category="45" AND id_category="12" AND id_category="1" ');
anonymníí
Profil *
Ochechula58:
1. nepoužívej mysql_*
2. mysql_fetch_array vrací něco jiného, než chceš, konzultuj s Manuálem
3. ve 2. SQL dotazu ti ve WHERE chybí název sloupce
4. požadovaný SQL dotaz ve #3 ve WHERE nebude mít AND, ale OR. Lépe použít IN.
Kajman
Profil
Ochechula58:

MySQL nepodporuje nativně hiearchické dotazy. Pokud máte možnost, zvažte použití např. PostgreSQL. Pak vypsání článků v kategorii půjde jednodušeji jedním dotazem.

V MySQL se na takové dotazy často používají předpočítané pomocné sloupce a tzv. traverzování kolem stromu.
Keeehi
Profil
Ochechula58:
Dakujem za odpoved ale nechapem ako to myslis ze treba opravit ukazku.
Problém je, že příroda má jako rodiče uvedeného samu sebe. Pokud je to hlavní kategorie, tak neměl by být rodič 0? Pokud je to podkategorie novinek, pak by měl být rodič 5. Pokud je to podkategorie něčeho, co nemáte uvedené a má to ID 12, pak by měla mít příroda jiné ID. No a pokud hlavní kategorii označujete opravdu tak, že ID a ID rodiče jsou stejné, pak je špatně kategorie novinky, nebo tam chybí rodičovská kategorie novinek s ID 0 (což by bylo mimochodem zvláštní).

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: