Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mysql i rekurencja :) bleh
Forum PHP.pl > Forum > Bazy danych > MySQL
em1X
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
mike
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.
em1X
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
tomekp
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';
ave
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 ;
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.