Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mysql i rekurencja :) bleh
em1X
post
Post #1





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Witam.. pisze system drobnych ogloszen..
Wiadomo, serwis posiada, kategorie, podkategorie a w nich ogloszenia.

Tabela kategorie to standart:
Kod
cat_id, nazwa, parent_id


Teraz na stronie glownej chcialem wyswietlac wszystkie glowne kategorie, a obok nich w nawiasie kwadratowym ilosc ogloszen dla kazdej z nich. Czyli:

Kategoria pierwsza [9]
Druga [4]
Trzecia [11] itd.

Problem teraz z wyswietleniem tej ilosci. Zrobic rekurencyjną funkcje zaden problem i efekt bym uzyskał - ALE - jaki to ruch bedzie generowac blink.gif Dla kazdego uzytkownika za kazdym razem taka rekurencja po kazdej kategorii - to nie do przyjecia :/

Najlepszy pomysl jaki mi przychodzi to dodac kolumne `ilosc ogloszen` do tabeli kategorie. Przy dodawaniu rekurencyjnie uaktualnialbym te dane. Wyswietlanie to juz wiadomo zwykly select.

Moze ktos spotkal sie z takim problemem i rozwiazal go w jeszcze lepszy sposob?
Czekam niecierpliwie na odpowiedzi smile.gif


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Spójrz co na pisałes i gdzie to napisałeś.
"Mysql i rekurencja smile.gif" w dziale php
Coś tu nie gra, prawda?

Przenoszę na Bazy danych :: MySQL

A co do tematu:
Poza sposobem o którym wspomniałes, żeby dodać kolumną i tam trzymać ilość ogłoszeń. Możesz jeszcze cacheować wyniki zapytań, wtedy nie bedzie to takie czasochłonne i wymagające dla serwera.

Ale ja stawiam na dodatkowa kolumnę. Moim zdaniem to jedyne rozsądne wyjście.
Go to the top of the page
+Quote Post
em1X
post
Post #3





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


jestem tak zakrecony, ze kazdy temat bym do działu php wrzucił smile.gif czyli jednak bede musial to w ten sposob rozwiazac.. dzieki za wsparcie tongue.gif


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
tomekp
post
Post #4





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

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


A jakbyś sobie pobrał do tablicy wszystkie kategorie, a później pętelką dla każdej kategori?
  1. SELECT count( * ) AS ilosc_rekordow FROM rekordy WHERE kategoria = '$kategoria';


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
ave
post
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 2
Dołączył: 29.01.2004
Skąd: Rz-ów

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


a nie mozna o ile twoja wersja sql umozliwia uzywanie podzapytan
  1. SELECT *, (SELECT COUNT(*) FROM ogloszenia WHERE id_parent=k.id ) AS ile FROM kategorie AS k ;


Ten post edytował ave 27.05.2006, 02:09:13
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 Aktualny czas: 19.08.2025 - 19:58