Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z zapytaniem
Forum PHP.pl > Forum > Przedszkole
roobik
Witam smile.gif
Od razu do rzeczy.
Mam w tabeli pola:
id
cat
tytul
nazwa
nazwa2
tekst
odslon
licznik
Mniejsza o nazwy kolumn winksmiley.jpg
Chodzi o kolumnę cat. W tej kolumnie są nazwy kategorii. W sumie kategorii (tzn ich nazw) jest (aktualnie) 16. Co zamierzam? Wyświetlić wszystkie nazwy kategorii.
Zrobiłem zapytanie:
  1. $zap = "SELECT * FROM tabela WHERE cat=2 ORDER BY title LIMIT 16";
  2. $wyn = mysql_query($zap);
  3. while($r = mysql_fetch_array($wyn)) {
  4. $id = $r['id'];
  5. $ca = $r['cat'];

Niestety - wyświetla mi coprawda ładnie, ale nazwę jednej kategorii. W jaki sposób mam zrobić zapytanie, by uzyskać nazwy wszystkich 16 kategorii?
Pomóżcie, proszę...
Fifi209
  1. SELECT cat FROM tabela
?
marian2299
Skoro masz
  1. WHERE cat=2

To będzie wyświetlać wszystkie rekordy z "tabela" gdzie kategoria równa jest 2.
roobik
smile.gif
Jeszcze jedna sprawa (ponieważ bardzo podobna, to nie zakładam nowego tematu).
Dotyczy innej tabeli, ale o podobnej strukturze.
id
cat_nr (numery kategorii)
cat_title (nazwa kategorii)
text1
text2
licznik
status

W sumie rekordów jest prawie 800 (z każym dniem kilka(naście) przybywa...
Interesują mnie dwa pola: cat_nr oraz cat_title. W jaki sposób mam zrobić zapytanie, by uzyskać nazwy wszystkich cat_title dla np. cat_nr=2? Czyli inaczej mówiąc - chcę uzyskać nazwy kategorii wszędzie tam, gdzie pojawia się 2 (oczywiście nie chcę wyświetlać wszystkich 800 rekordów winksmiley.jpg - tytuły kategorii powtarzają się)
Andaramuxo
  1. WHERE cat_nr=$zmienna

W tej zmiennej możesz mieć GET, POST i co tam chcesz.
roobik
Zrobiłem zapytanie:
  1. $zap2 = "SELECT * FROM tabela WHERE cat_nr=2 LIMIT 9";

Niestety - pokazuje mi wciąż nazwę jednej kategorii... a nie dziewięciu sad.gif
Fifi209
Bo nie czytasz co się pisze...

Wywal:
  1. WHERE cat_nr=2


@down

Możesz sobie szczędzić takich uwag. Powtórzyłeś tylko 2 moje wypowiedzi, bo o tych dwóch sprawach ja pisałem.
Koldy
Przecież napisali, że to nie tak...

Teraz wybierasz tylko jedną kategorie.
Poza tym zamiast gwiazdki ma być cat_nr
roobik
Moim zdaniem WHERE cat_nr=2 powinno zostać. Cyfry w polu cat_nr to kategorie "główne", a podkategorie są w polu cat_title. Tak więc chcę wyświetlić wszystkie podkategorie (bez powtórzeń) z kategorii głównej 2. Dlatego ten warunek... Ale coś jednak nie jest tak...
Fifi209
Cytat(roobik @ 12.08.2009, 12:10:28 ) *
Moim zdaniem WHERE cat_nr=2 powinno zostać. Cyfry w polu cat_nr to kategorie "główne", a podkategorie są w polu cat_title. Tak więc chcę wyświetlić wszystkie podkategorie (bez powtórzeń) z kategorii głównej 2. Dlatego ten warunek... Ale coś jednak nie jest tak...


"coś jednak nie jest tak" - opisz błąd bo zgadywali nie będziemy

Może mysql_error czymś sypie?
motylo
Spróbuj:
  1. SELECT DISTINCT cat_title, cat_nr FROM TABLE

i zobacz co ci zwróci.
Możesz porównać wówczas czy np. cat_nr o numerze 2 ma kilka różnych tytułów.
Wówczas będziesz mógł dodać do tego warunek i zostawić mniej więcej tak:
  1. SELECT DISTINCT cat_title FROM TABLE WHERE cat_id=2
  2.  
roobik
Tak jak pisałem wcześniej. Daję zapytanie:
  1. $zap2 = "SELECT * FROM tabela WHERE cat_nr=2 limit 9";
  2. $wyn2 = mysql_query($zap2);
  3. while($r = mysql_fetch_array($wyn2)) {
  4. $tii = $r['cat_title'];
  5. echo '<br><b>'.$tii.'</b><br>';
  6. }

I wyświetla mi się wciąż nazwa jednej podkategorii, a w kategorii głównej "2" (czyli cat_nr=2) jest 9 podkategorii (czyli dziewięć cat_title). mysql_error tu nie "pomoże". Zła jest konstrukcja zapytania - dlatego postanowiłem napisać na Forum...

//EDIT
Napisałem posta, lecz podczas pisania pojawiła się jeszcze jedna wypowiedź.
motylo - DZIĘKI BARDZO smile.gif O to chodziło smile.gif
Pozdrawiam bardzo! smile.gif

//EDIT
Działa (prawie) wszystko). Wyświetlane są wszystkie tytuły poszczególnych działów. Utknąłem w miejscu jednak - chciałbym wyświetlać losowo "podtytuły" (u mnie nazwa2) każdej kategorii.
SELECT DISTINCT wyswietlił mi elegancko tytuły wszystkich kategorii głównych. Zamierzeniem moim jest, by do tych własnie kategorii głównych zostały losowo wyświetlane odpowiednie nazwa2. W jaki sposób to zrobić? ...

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.