Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][myql] wyświetlanie kategorii ja w katalogu
Forum PHP.pl > Forum > Przedszkole
oomaster
Witam

Mam okropny problem. Otóż mam problem z pobraniem rekordów z mysql w estetycznej formie. Chodzi mi aby pobrać rekordy w ten sposób:

Kategoria
Podkategoria, podkategoria, podkategoria

Kategoria1
Podkategoria1, podkategoria1, podkategoria1

A pobiera mi sie z bazy w ten sposób:
Kategoria
Podkategoria
Kategoria
Podkategoria
Kategoria1
Podkategoria1
Kategoria1
Podkategoria1

Komletnie nie wiem co robić. Próbowałem z pętlami ale taki meksyk sie robi na stronie ,że szkoda gadać.

Tutaj jest to co obecnie wymyśliłem i niemge sobie poradzić z tym:
  1. <?
  2. $q = mysql_query("SELECT balor_kat.nazwa, balor_kat_1.nazwa_1 FROM balor_kat, balor_kat_1 WHE
    RE balor_kat.id = balor_kat_1.id_kat"
    );
  3. $i = 0;
  4.  
  5. echo "<table style="width: 500px;" cellpadding="0" cellspacing="0">";
  6. echo '<tr>'; 
  7. while($r = mysql_fetch_assoc($q))
  8. {
  9. echo '<td style="width:245px; vertical-align:top;"><b>' . $r['nazwa'] . '</b><br/>' . $r['nazwa_1'] . '</td>';
  10. $i++;
  11.  
  12. echo ( $i % 2 == 0 ) ? '</tr><tr>' : ''; 
  13. }
  14. echo '</tr>';
  15. echo '</table><br/><br/>';
  16. ?>


Czy ktoś wie jak to zrobić ,żeby było np. coś jak na http://qlweb.info questionmark.gif?
joebezucha
jak sie robi "meksyk" smile.gif to moze odpowiednio przerób te dane w jakiejs funkcji i dopiero bierz sie za wyswietlanie...
Fixus
ja ci powiem jak u siebie zrobiłem smile.gif
Kod
$query = "SELECT * FROM kategoria";
$result = mysql_query($query);
while($item = mysql_fetch_array($result)) {
$kategoria = $item['nazwa_kategorii'];
echo $kategoria.'<br />';
$query = "SELECT * FROM podkategoria WHERE kategoria = '$kategoria'";
$result = mysql_query($query);
while($item = mysql_fetch_array($result)) {
echo $item['nazwa_podkategorii'].'<br />';
}
}


mniej więcej tak smile.gif Pisane od ręki...ale pierw robisz zapytanie do tabeli z kategoriami wyswietlasz jej nazwę a potem dodajesz dodatkową pętle która wyciąga nazwy odpowiednich podkategorii...oczywiście w tabelii podkategorii potrzebujesz pola które przechowuje nazwę kategorii nadrzędnej smile.gif
oomaster
OK działa ale nie wiem czemu ta pierwsza pętla nie działa chyba bo wyświetla mi jedną kategorię sad.gif
sticker
to moze lepiej skorzystaj z kilku zapytań
  1. <?php
  2. $results= mysql_query("pobieranie kategorii");
  3. while( $row = mysql_fetch_row($results) ){
  4. // pobrałeś sobie kategorie i cos tam mielisz bierzesz id i do następnego zapytani
    a dodajesz jako warunek
  5. $sql = "pobieranie podkategori na podstawie pobranego id kategorii";
  6. $results1 = mysql_query($sql);
  7. while( $row = mysql_fetch_row($results1) )
  8. // no i tu masz liste podkategorii i cosik z nią robisz
  9. }
  10. ?>



możesz też skorzystać z union ale to też musisz wiedzieć jak iterować id kategorii
oomaster
W twoim kodzie jest kilka błędów smile.gif ale spróbuje to naprawić

Cyba namieszałeś ze zmiennymi jak możesz to sprawdź ten kod bo u mnie na stronie nic nie ma ohmy.gif
sticker
nie no LoL

uzupełniej sobie zapytania samemu przecież mamy Ci pokazać w jakis sposób coś robić a nie dawać gotowca
oomaster
Ale chodzi mi o błędy typu otwarcie pętli drugiej i w drugiej pętli zmienne musiałem poprawić smile.gif ale spoko poprawna wersja powinna tak wyglądać:]

  1. <?php
  2.  
  3. $results= mysql_query("SELECT * FROM balor_kat");
  4. while( $row = mysql_fetch_row($results) ){
  5. echo '<b>'.$row['nazwa'].'</b>';
  6. $sql = "SELECT * FROM balor_kat_1 WHERE id_kat = ".$row['id']." LIMIT 20";
  7. $results1 = mysql_query($sql);
  8. while( $rowe = mysql_fetch_row($results1) ) {
  9. echo $rowe['nazwa_1'].', ';
  10. }
  11. }
  12. ?>


A wyświetla błąd:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/balor/domains/balor.xvo.pl/public_html/index.php on line 25

aż 11 razy czyli znaczy ,że odczytuje rekordy ale błąd dalej jest w tym 2 zapytaniu

Panowie działa zamiast mysql_fetch_row zastosowałem mysql_fetch_array. A może mi ktoś jeszcze powiedzieć jaka jest różnica między tymi 2 elementami ?
nospor
Cytat
A wyświetla błąd:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/balor/domains/balor.xvo.pl/public_html/index.php on line 25

Dziś miałem z tobą przeprawę. TLumaczylem, krzyczalem, blagalem....
A ty dalej swoje. Juz nie pamietaz ze trzeba robic echo $sql? Juz nie pamietasz ze trzeba robic die(mysql_error())?
No to ja ci przypomne: zamykam i prosze na PW przeslac innemu moderatorowi (mnie zaraz nie bedzie) poprawny kod uwzględniajacy moje poprawki, a topic ci otworza. A jak już ci otworzą to napisz jakie bledy ci wyswietla jesli sam nie dojdziesz po nich co masz źle

ps: ja wiem gdzie masz blad ale za brak twojego rozwoju ci nie powiem smile.gif

edit:
Cytat
Panowie działa zamiast mysql_fetch_row zastosowałem mysql_fetch_array.
spoźnielem sie sad.gif ech....
Cytat
A może mi ktoś jeszcze powiedzieć jaka jest różnica między tymi 2 elementami
zajrzyj do manuala
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.