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 ... |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 18.01.2003 Ostrzeżenie: (0%)
|
kurtz << jak mam rozumieć to wskazanie referencyjne?
jakby to miało wyglądać? mam wywołać dodatkowe zapytanie czy jak? domyślam się, że chodzi o tą funkcję: [php:1:d918aa09f5]<?php function grupy($id){ $grupy = mysql_query("select _podgrupy.first_id, _podgrupy.last_id, _podgrupy.glebia, _grupy.nazwa, _grupy.opis, _grupy.id from _grupy, _podgrupy where glebia >'0' and _podgrupy.last_id = _grupy.id and _podgrupy.first_id = '$id' order by _podgrupy.glebia desc"); while ($row=mysql_fetch_array($grupy)) { $last_id = $row[last_id]; $GLOBALS[$last_id] = $last_id; $id = $row[id]; for ($l=0;$l<=$row[glebia];$l++) { $pokaz[$id] = "-".$pokaz[$id]; } echo $pokaz[$id]."&<a href='' title='".$row[opis]."'>".$row[nazwa]."</a><br>"; grupy($id); } } ?>[/php:1:d918aa09f5] myślałem, żeby to jakoś do globalnych zmiennych przekazać, albo do pliku zapisywać albo tablice wczesniej zrobic wystarczy przeciez by TYLKO raz wyciagane byly dane a nie po kilka razy ... |
|
|
|
treewood Nieskończona liczba podgrup w grupach 26.05.2003, 15:48:27
Cudi rekurencja -> wywołanie funkcji wewnątrz samej ... 26.05.2003, 16:39:51
treewood tzn ze mam to wywolac jakos tak:
<?php
functio... 26.05.2003, 21:37:42
scanner Tylko pamiętaj, zeby się nie zapętlić. 26.05.2003, 21:43:40
spenalzo :arrow: http://webcity.pl/porady.php/t/69 26.05.2003, 22:43:07
treewood w sumie myslalem by uzyc funkcji ... ale dzieki ba... 26.05.2003, 23:43:09
DeyV trafiłeś na problem, na który w pewnym momęcie tra... 27.05.2003, 09:15:19
treewood deyv ... super pomysl ja zrobilem to inaczej
ze ni... 27.05.2003, 10:41:48
DeyV twoje rozwiazanie - choć wydawałoby się bardzo pro... 27.05.2003, 10:53:53
treewood no w sumie tak .. tyle, ze nie mam wiekszego pojec... 27.05.2003, 11:13:04
DeyV nie bardzo cie pokrzepię, ale zmontownie w pełni f... 27.05.2003, 11:24:38
treewood nie no raczej problemu z joinem nie mam ... tylko ... 27.05.2003, 11:38:24
treewood No niby zrobiłem i wyświetla ale nie do końca dobr... 27.05.2003, 13:54:28
kurtz CytatNo niby zrobiłem i wyświetla ale nie do końca... 27.05.2003, 15:20:25 ![]() ![]() |
|
Aktualny czas: 24.12.2025 - 07:05 |