Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nieskończona liczba podgrup w grupach
treewood
post
Post #1





Grupa: Zarejestrowani
Postów: 215
Pomógł: 0
Dołączył: 18.01.2003

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


Jestem w trakcie robienia skryptu i zagięło mnie w pewnym momencie ... albo zaćmiło [;

Wiecie może jak rozplanować bazę danych z minimalną liczbą pól by móc zrobić potem do tego skrypt który wyświetlał by dane?

wg mnie baza wyglądać powinna tak:
id, nazwa czegoś, opis czegoś, przynależność do grupy ID (jeśli jest grupą to wartość 0), nr zagłębienia czyli np. dla podkategorii 2 zagłębienie równe 2

obrazowo:
1,warzywa,spis warzyw,0 (bo jest grupą),1
2,ogórki,tu znajdziesz nasze ogórki,1 (pod grupa grupy warzywa o id 1),2 (zagłębienie 2)
3,kiszone,ogórki kiszone,2 (po przynależy do podgrupy o id 2),3
4,owoce,spis owoców,0 (bo jest grupą),1
5,kiszone z polski,ogórki kiszone z polski,3 (po przynależy do podpodgrupy 3),4

i w sumie dane powinny wyglądać tak

warzywa
-ogórki
--kiszone
---kiszone z polski
owoce

tyle, że problemem jest tutaj dla mnie brak limitu podgrup. oczywiście mógłbym zrobić coś z limitem podgrup ale pomyślałem by zrobić bardziej giętki skrypt

w końcu skrypt u mnie wygląda tak:

[php:1:b8a8a88b13]<?php
$zaglebienia = mysql_query("select zaglebienie from _grupy order by zaglebienie desc limit 1");
while ($row=mysql_fetch_array($zaglebienia)) { $zaglebienie = $row[zaglebienie]; }

$grupy = mysql_query("select * from _grupy where nalezy='0' order by nazwa");
while ($row=mysql_fetch_array($grupy)) {
$id_gr = $row[id];
echo "&<a href='' title='".$row[opis]."' class=grupa>".$row[nazwa]."</a><br>";

for ($lp=1;$lp<=$zaglebienie;$lp++)
{
$podgrupy = mysql_query("select * from _grupy where nalezy='$lp' and nalezy='$id_gr' order by nazwa");
while ($row=mysql_fetch_array($podgrupy)) {

echo "&- <a href='' title='".$row[opis]."'>".$row[nazwa]."</a><br>";

for ($lp=1;$lp<=$row[zaglebienie];$lp++)
{
$podgrupy_2 = mysql_query("select * from _grupy where nalezy='$lp' and nalezy='$id_gr' order by zaglebienie, nazwa");
while ($row=mysql_fetch_array($podgrupy_2)) {

}
}

}
}


}
?>[/php:1:b8a8a88b13]

wychodzi na to, że musiałbym robić ciągle pętle for ... macie jakieś inne pomysły?
może zamiast przynależności zapisanej w formie np. 1 to zapisywać
np. 1.2.4.5
z tych 4 liczb wtedy wynikałoby, że jest to 4 zagłębienie (zliczanie ilości kropek) a zarazem sprawdzanie kolejki spisu grup i podgrup.
np. że ogórek poslki kiszony należy wpierw do grupy warzywa potem podgrupy ogórki, potem ogórki kiszone a w końcu do ogórków polskich kiszonych...

proszę o pomoc ... wiem, że z tym zagmatwałem.
widziałem takie bajery na phpbb czy openbb ale kod jest tam tak napisany, że ciężko się rozeznać i wziąć wzór od nich ...
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 25.08.2025 - 12:19