Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z zapytaniem
roobik
post 11.08.2009, 23:39:12
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ę...

Ten post edytował roobik 11.08.2009, 23:40:46
Go to the top of the page
+Quote Post
Fifi209
post 11.08.2009, 23:46:56
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


  1. SELECT cat FROM tabela
?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
marian2299
post 12.08.2009, 11:15:49
Post #3





Grupa: Zarejestrowani
Postów: 272
Pomógł: 9
Dołączył: 6.06.2009

Ostrzeżenie: (0%)
-----


Skoro masz
  1. WHERE cat=2

To będzie wyświetlać wszystkie rekordy z "tabela" gdzie kategoria równa jest 2.


--------------------
film edit student
Go to the top of the page
+Quote Post
roobik
post 12.08.2009, 11:28:27
Post #4





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ę)
Go to the top of the page
+Quote Post
Andaramuxo
post 12.08.2009, 11:32:53
Post #5





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


  1. WHERE cat_nr=$zmienna

W tej zmiennej możesz mieć GET, POST i co tam chcesz.

Ten post edytował Andaramuxo 12.08.2009, 11:33:16


--------------------
Go to the top of the page
+Quote Post
roobik
post 12.08.2009, 11:58:14
Post #6





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Fifi209
post 12.08.2009, 12:04:15
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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.

Ten post edytował fifi209 12.08.2009, 12:10:55


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Koldy
post 12.08.2009, 12:09:16
Post #8





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 28.06.2009
Skąd: Great Britan

Ostrzeżenie: (0%)
-----


Przecież napisali, że to nie tak...

Teraz wybierasz tylko jedną kategorie.
Poza tym zamiast gwiazdki ma być cat_nr


--------------------
$progress++;
Go to the top of the page
+Quote Post
roobik
post 12.08.2009, 12:10:28
Post #9





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
Fifi209
post 12.08.2009, 12:12:42
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
motylo
post 12.08.2009, 12:20:21
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 5
Dołączył: 13.07.2008
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


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.  


--------------------
Więcej: blog.juszczak.org
Go to the top of the page
+Quote Post
roobik
post 19.08.2009, 22:56:18
Post #12





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ć? ...



Ten post edytował roobik 12.08.2009, 12:26:21
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 16:19