Pobranie wyników z dwóch tabel - problem z wyświetleniem
Autor
Wiadomość
Freelancer
Bobek In Love :)
Znak zodiaku:
Wiek: 20 Dołączył: 22 Maj 2007 Posty: 40 Skąd: Sławice
Wysłany: 2008-08-30, 08:57 Pobranie wyników z dwóch tabel - problem z wyświetleniem
Tak jak w temacie. Zapytanie wygląda tak:
Kod:
$sql = "SELECT m.id, m.cat_id, m.menu_name, c.id as cid, c.cat_name
FROM portal_menu m, portal_menu_cat c
WHERE m.cat_id = c.id
ORDER BY id ASC";
Jako wynik dostaje tabice asocjalną.
Funkcja która wykonuje polecenie wygląda tak:
Kod: function fetcharray(){
global $wynik;
while ($wiersz = mysql_fetch_array($wynik,MYSQL_ASSOC)){
$row[] = $wiersz;
}
return $row;
}
Wszystko jest ładnie gdyby nie to, że nie wiem jak wyświetlić to tak jak należy. Jak do tej pory to udało mi się uzyskać efekt:
Kod: kat1
opcja1
kat1
opcja2
kat2
opcja3
A powinno być:
Kod:
kat1
opcja1
opcja2
kat2
opcja3
_________________ Wiara potrafi czynić cuda. Trzeba tylko mocno wierzyć.
warna
Bobek korektor thecamels
Znak zodiaku:
Pomógł: 1 raz Wiek: 17 Dołączył: 08 Maj 2006 Posty: 56 Skąd: Ozorków
Wysłany: 2008-08-30, 19:16
Zapytanie:
Cytat: $sql = "SELECT m.id, m.cat_id , m.menu_name, c.id as cid , c.cat_name
FROM portal_menu m, portal_menu_cat c
WHERE m.cat_id = c.id
ORDER BY m.id ASC";
Po co 2x pobierać ten sam numerek kategorii z dwóch różnych tabel? Wywal to c.id as cid .
Kod: $cats = $links = array();
while( $row = $db->sql_fetchrow($result) )
{
$links[] = $row;
$cats[$row['cat_name']] = $row;
}
$db->sql_freeresult();
foreach( $cats as $cat => $array )
{
//$cat - nazwa kategorii
foreach( $links as $key => $row )
{
if( $row['cat_name'] == $cat )
{
//$row['id'] - id menu
//$row['menu_name'] - nazwa menu
}
}
}
Pisałem jakiś czas temu bardzo podobny kod. Działał bez zarzutu Pisałem na sucho, ale powinno działać.
Freelancer
Bobek In Love :)
Znak zodiaku:
Wiek: 20 Dołączył: 22 Maj 2007 Posty: 40 Skąd: Sławice
Wysłany: 2008-08-31, 11:34
Hmm... No skrypt działa do tej pory i trzyma się dobrze ale mi nie chodzi o skrypt do przemo To ma być całkiem samodzielny portal. Próbowałem jakoś kombinować z tym kodem co mi podałeś ale mi nie wychodziło No a numer id jest mi potrzebny do edycji w PA
_________________ Wiara potrafi czynić cuda. Trzeba tylko mocno wierzyć.
warna
Bobek korektor thecamels
Znak zodiaku:
Pomógł: 1 raz Wiek: 17 Dołączył: 08 Maj 2006 Posty: 56 Skąd: Ozorków
Wysłany: 2008-08-31, 16:59
Fakt, zapomniałem o klasie db Kod powinien działać, pisałem go w oparciu o Twoje zapytanie.
Kod: $cats = $links = array();
while( $row = mysql_fetch_array($wynik, MYSQL_ASSOC) )
{
$links[] = $row;
$cats[$row['cat_name']] = $row;
}
foreach( $cats as $cat => $array )
{
//$cat - nazwa kategorii
foreach( $links as $key => $row )
{
if( $row['cat_name'] == $cat )
{
//$row['id'] - id menu
//$row['menu_name'] - nazwa menu
}
}
}
Freelancer
Bobek In Love :)
Znak zodiaku:
Wiek: 20 Dołączył: 22 Maj 2007 Posty: 40 Skąd: Sławice
Wysłany: 2008-08-31, 19:26
Wielkie dzięki Zapomniałeś jeszcze o ID kategorii Trochę zmodyfikowałem i jest perfekt
_________________ Wiara potrafi czynić cuda. Trzeba tylko mocno wierzyć.