Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: drzewko - wysietlenie calej struktury do selecta
Forum PHP.pl > Forum > Bazy danych > MySQL
lucek
Witam.
Mam taka strukture bazy danych:
[sql:1:015ad3e4c5]
Tabela KATEGORIE
ID
Parent
Nazwa

-------------------------------
Przykladowe dane:
ID PARENT Nazwa
1 0 a
2 0 b
3 1 c
4 2 d
5 3 e
6 5 f
----------------------------------
2 tabela to PRODUKTY:
id
idkategorii
opis

[/sql:1:015ad3e4c5]
No i problem moj polega na tym ze nie wiem jak wysietlic sciezke gdzie produkt znajduje sie w drzewie kategorii.
NP. majac dane produktu z linku np. pokaz_produkty.php?id=14 (to id to id produktu o ktorym wysietlamy dane) - chce wysietlic liste kategorii
do ktorej nalezy produkt np. HOME > a - > c - > f -
DeyV
temat przeniesiony, dzięki Majdan
lucek
Witam. Z tym juz sobie poradzilem - znalazlem potrzebna funkcje.
Podaje jej kod w razie jakby ktos tego potrzebowal.
[php:1:82ebd3caf2]<?php
<?
include"config.php";

function get_category_tree($id)
{
$qid = mysql_query("SELECT PID, name FROM topics WHERE id = $id");
if (mysql_num_rows($qid)) {
list($parent, $name) = mysql_fetch_row($qid);
$name = "<a href='xx.php?id=$id'>$name</a>";
} else {
$parent = 0;
$name = "";
}

if ($parent > 0) {
return print_category_tree($parent) . " &gt; " . $name;

} elseif ($id > 0) {
return "<a href='xx.php'>Top</a> &gt; " . $name;

} elseif ($id == 0) {
return "<a href='shopping'>Top</a>";
}
}

function print_category_tree($id=false) {
/* prints the category tree by calling get_category_tree */

echo get_category_tree($id);
}
get_category_tree($id);
?>
?>[/php:1:82ebd3caf2]
Z tym problem z glowy lecz nie wiem jak wczytac drzewko z mojej struktury (tablea ma pola : id, parent, name) do pola typu Select w taki sposob.
Kod
aaaaaa

- ab

- ac

    - ac1

    - ac 2

bbbbbb

- bba

   - bbc

    - bbd

itd.

Z gory dzieki za pomoc, bo z tymi drzewkami to mam straszne problemy - a niestety jeszcze na tym forum jest o nich malo.
BzikOS
http://forum.php.pl/viewtopic.php?t=14595 - może to Ci pomoże.
lucek
Witam.
Dzieki kodzik dziala ale chodzi mi o to zeby mozna w nim bylo ustalic od ktorego PID ma wysietlac drzewo. Standardowo ten kod pokazuje cale drzewo a ja chcialbym aby przy braku w linku parametru >link.php?kat wysietlal cale drzeow a jesli bedzie podany KAT to wtedy bedzie rysowal drzewo od tego miejsca.
Probowalem w zapytaniu dac WHERE PID='$kat' lecz skrypt sie wysypal.
Ponadto jak przy wysietlaniu kategorii (drzewa) zliczyc ile produktow nalezy do danej kategorii i napisac te liczbe podczas wysietlania drzewa.
Z gory dzieki za pomoc.


[php:1:001b84eda1]<?php
<?php
include'config.php';
$result = mysql_query("SELECT * FROM topics WHERE PID='$kat'");

$$resultArr = Array();
while( $row = @mysql_fetch_assoc( $result ) )
$resultArr[$row['PID']][] = Array( 'ID' => $row['ID'], 'NAME' =>
$row['NAME'], );

x( $resultArr[0], $resultArr );


function x( $tempArr, &$resultArr )
{
echo('<ul>');

foreach( $tempArr as $aVal )
{
echo( "<li><a href="".$aVal['ID']."">" . $aVal['NAME'] . "</a></li>n" );

if( is_array( $resultArr[$aVal['ID']] ) )
{
x( $resultArr[$aVal['ID']], $resultArr );
}
}

echo('</ul>');
}
?>
?>[/php:1:001b84eda1]
BzikOS
Co do wyświetlania całego drzewa czy jego fragmentów... wyciągaj całość drzewa, a dopiero w samym php decyduj co ma zostać wyświetlone.
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.