Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie kategorii w liście. [Mysql] [Php]
Forum PHP.pl > Forum > Przedszkole
mateuszmz2
Witam

Tworze autorski sklep internetowy i mam jeden problem.

A dokładnie:
Mam baze danych: Category
I w niej kolumny: id | parent_id | name
A dalej rekordy:
1 | 0 | A
2 | 0 | B
3 | 1 | C1
4 | 1 | D1
5 | 2 | E2

I do tego kod który ma mi wyświetlać kategorie i podkategorie w liście
  1. <select name="cetegory">
  2. <option value="id">name</option>
  3. </select>
  4. oraz:
  5. <select name="cetegory_parent">
  6. <option value="parent_id">name</option>
  7. </select>
  8.  
  9. Kod wygląda tak:
  10. <tr>
  11. <td>Category:</td>
  12. <td>
  13. <select name="g_cat">
  14. <?
  15. $sql = $db->Query("SELECT * FROM `Category` WHERE parent_id=0");
  16. for($j=1; $site8 = $db->FetchArray($sql); $j++)
  17. {
  18. ?>
  19. <option value="<?=$site8['id']?>"><?=$site8['name']?></option>
  20.  
  21. </select>
  22. </td>
  23. <td>Subcategory:</td>
  24. <td>
  25. <select name="parent_id">
  26. <?
  27.  
  28. $sql = $db->Query("SELECT * FROM `Category` WHERE
  29. '".$site8['id']."'=parent_id");
  30. for($j=1; $site7 = $db->FetchArray($sql); $j++)
  31. { ?>
  32. <option value="<?=$site7['parent_id']?>"><?=$site7['name']?></option><?}?>
  33. </select><?}?>
  34. </td>
  35. </tr>



------------------------------
W tym momencie wyświetla w liście jedną pierwszą kategorie główną oraz
przypisane do niej podkategorie w drugiej liście.
A Powinno wyświetlać wszystkie kategorie główne i po zmianie kategorii
wyświetlać kolejno inne podkategorie.


nospor
Problem z baza nie ma zadnego zwiazku. PRzenosze.

Zas co do problemu:
nadpisujesz zmienna $sql stad problem.
Turson
Co do samego kodu to robisz tak: otwierasz pętlę, zamykasz kod php i piszesz html. Nie zamykaj i otwieraj co rusz kodu php bo to nie ma sensu. Możesz to zrobić w echo.
mateuszmz2
Ok zminiło się ale pokazuje teraz:
[ motoryzacja ] [ moda i uroda ] [ elektronika ]
[ sub cat 2 ] [ komputery ]
[ rtv ]
----------------------kod
  1. <tr>
  2. <td>Category:</td>
  3. <td>
  4. <select name="g_cat">
  5. <?
  6.  
  7. $sql = $db->Query("SELECT * FROM `Category` WHERE parent_id='0'");
  8. for($j=1; $site8 = $db->FetchArray($sql); $j++)
  9. { ?>
  10. <option value="<?=$site8['id']?>"><?=$site8['name']?></option><??>
  11.  
  12. </select>
  13.  
  14. </td>
  15. <td>Subcategory:</td>
  16. <td>
  17. <select name="parent_id">
  18. <?
  19. $sql2 = $db->Query("SELECT * FROM `Category` WHERE parent_id='".$site8['id']."'");
  20. for($j=1; $site7 = $db->FetchArray($sql2); $j++)
  21. { ?>
  22.  
  23. <option value="<?=$site7['id']?>"><?=$site7['name']?></option><?}}?>
  24.  
  25. </select>
  26. </td>
  27. </tr>

----------------------------------------
a chodzi o to by pokazywało:

Klikam na
Categoria podkategoria:
[ Motoryzacja ] pokazuje się [ osobowe ]
[ dostawcze ]

W select categorie do wyboru mam kilka kategorii
Motoryzacja, moda i uroda, elektronika chodzi by po kliknieciu w select obok pokazywały się podkategorie klikniętej kategorii głównej


Muszą być tylko 2 selekty. mniej więcej jak powyżej.

Prosze o wskazówkę. Szukam w google ale nic nie ma co może mi pomóc :/

Zrobiłem trochę inaczej. Może komuś się przyda:
--------------------kod wyświetlania kategorii i podkategorii w jednym select---
  1. <tr>
  2. <td>Category:</td>
  3. <td>
  4. <select name="g_cat">
  5.  
  6. <?
  7.  
  8. $sql = $db->Query("SELECT * FROM `Category` WHERE parent_id='0'");
  9. for($j=1; $site8 = $db->FetchArray($sql); $j++)
  10. { ?>
  11. <option value="<?=$site8['id']?>" style="background-color:#ddd;"><?=$site8['name']?></option>
  12. <?
  13. $sql2 = $db->Query("SELECT * FROM `Category` WHERE parent_id='".$site8['id']."'");
  14. for($j=1; $site7 = $db->FetchArray($sql2); $j++)
  15. { ?>
  16.  
  17. <option value="<?=$site7['id']?>"><?=$site7['name']?></option>
  18. <?}?>
  19. <?}?>
  20.  
  21. </select>
  22.  
  23. </td>
  24. </tr>

-----------------
sunpietro
a może ten artykul Ci się przyda? Artykuł o listach rozwijanych w jQuery
mateuszmz2
Właśnie o coś takiego chodzi z tym że wyświetlanie podkategorii wyświetlało by się w jednej lini i ograniczyć się do języka php i mysql. Chciałbym swój projekt zbudować szybciej a później rozwijać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.