Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Komu se nelení,
tomu se zelení.

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: ywoxyqy
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 22:14  2965
huh nějaké screeny výsledků z localhostu
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

první je výpis před tou poslední úpravou od Tebe (huh 8.2.2010 21:14)
druhý a třetí je s přidaným kodem na konec scriptu




cílem by mělo být (alespoň, jak bych to chtěl) seznam ul/li, ostylovaný jako vertikální menu, kde se budou jednotlivé podkategorie otevírat po kliknutí
nebo tak nějak

hledal jsem na webu intenzivně ale bohužel jsem nenašl moc použitelných příkladů, které bych využil ke svému záměru:

mít v tabulce MySQL strom kategorií (který si budu postupně upravovat) a díky této tabulce se mi pomocí php načte vertikální menu pro generování obrázků dané kategorie do výsledné fotogalerie
:-)
huh huh 8.2.2010 21:14  2964
$cat_array = $cat_obj->getCategoriesArray('NULL', "--", "");
echo '<select>';
foreach($cat_array['name'] as $key =>$catname) {
    echo '<option name="neco" value="' . $cat_array['id'][$key] . '">' .
         htmlspecialchars($catname) . '</option>';
}
echo '</select>';
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 20:29  2962
takto


$cat_obj = new Categories();
$cat_array =$cat_obj->getCategoriesArray();

//For dropdowns
$cat_array = $cat_obj->getCategoriesArray("0", "--", "");

foreach($cat_array['name'] as $key =>$catname) {
echo $cat_array['id'][$key];
echo $catname;
}

?>



to nějak funguje
nevím zda správně
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 20:25  2961
ještě moc nerozumím tomu konci


$cat_obj = new Categories();
$cat_array =$cat_obj->getCategoriesArray();

//For dropdowns
//$cat_array = $cat_obj->getCategoriesArray(0, "--", "");

foreach($cat_array['name'] as $key =>$catname) {
//id---->echo $cat_array['id'][$key];
echo $catname;
}

?>




a sice té zmíněné variantě
//For dropdowns

po "odkomentování zůstává obrazovka bílá"
?
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 20:12  2960
použita rada ad b)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 20:11  2959
jejdaty vado
!
:-)

vono to funguje

smekám!
Máš to u mě

Moc děkuji

puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 20:06  2958
aha
tak na komentář jsem se, přiznám, nekoukal ...
huh huh 8.2.2010 20:04  2957
Chyba je v tom článku, je popsaná v tom jediném komentáři, který u článku je. Spočívá v tom, že v tabulce mají kořenové položky nastaveno NULL, ale ten PHP kód tam cpe 0. A nula není NULL. Řešení:
a) rychlé a hnusné:
* odstranit FOREIGN_KEY z tabulky
* změnít parentid z NULL na 0
b) korektní:
změnit hlavičku metody getCategoriesArray na:
function getCategoriesArray($parent_id ='NULL', ....
a metodu getAllSubCategories změnit na:
    function getAllSubCategories($parent_id) {
        $result = mysql_query("SELECT * FROM categories WHERE parentid" . ($parent_id == 'NULL' ? ' is ' : '=') . $parent_id);
        return $result;
    }
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 19:28  2956
nesmyslchyba bude mezi klávesnicí a židlí
no jo

musím se s tím nějak poprat, řádek o řádku
těžké pro neprogramátora
ty moje metody pokus-omyl jsou v jistých fázích vývoje webu úžasné a někdy frstrující
:-)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 19:17  2955
kod umím sem vložit, ale bez řádků ...


<?php
class Categories{
function getCategoriesArray($parent_id = 0, $padding=0, $prefix="&raquo;"){
$return = array();
$return = $this->getSubCategoriesArray($parent_id, $padding, $prefix);
return $return;
}
function getSubCategoriesArray($parent_id, $padding, $prefix){
static $i=0;
$resource = $this->getAllSubCategories($parent_id);
static $return = array();
if (@is_resource($resource)){
while ($records_array = mysql_fetch_assoc($resource)) {
$return['id'][$i] = $records_array['id'];
if(is_int($padding)){
$return['name'][$i] = "<div style='padding-left:".$padding."px'>".$prefix ." &nbsp;".$records_array['name']."</div>";
}else{
$return['name'][$i] = $padding. $prefix .$records_array['name'];
}
$i++;
if(is_int($padding)){
$this->getSubCategoriesArray($records_array['id'], ($padding+15), $prefix);
}else{
static $pad ="";
if($pad == ""){
$pad = $padding;
}
$this->getSubCategoriesArray($records_array['id'], $padding.$pad, $prefix);
}
}
}
return $return;
}
function getAllSubCategories($parent_id=0) {
$result = mysql_query("SELECT * FROM categories WHERE parentid='" . $parent_id . "'");
return $result;
}

//when disabling the parent category its all subcategory should be disabled.
function changeAllSubCategoriesStatus($id, $status)
{
static $subcat = array();
$subcat[] = $id;
$result = mysql_query("UPDATE categories set status=$status WHERE id = $id");
$select_result = mysql_query("SELECT id FROM categories WHERE parentid=$id");
$hasSubcat = mysql_result($select_result, 0, 0);
if($hasSubcat){
$this->changeAllSubCategoriesStatus($hasSubcat, $status);
}
return $subcat;
}

//when enabling the subcategory its all parent category should be enabled.
function changeAllParentCategoriesStatus($id, $status)
{
static $parentcat = array();
$parentcat[] = $id;
$result = mysql_query("UPDATE categories set status=$status WHERE id = $id");
$select_result = mysql_query("SELECT parentid FROM categories WHERE id=$id");
$hasParentcat = mysql_result($select_result, 0, 0);
if($hasParentcat){
$this->changeAllParentCategoriesStatus($hasParentcat, $status);
}
return $parentcat;
}

//if you know the level of category then you use this other wise dont use this
function getCategoriesInTreeStructure($level = 10){
$query = " SELECT node0.name AS node0_name, node0.status as node0_status,node0.parentid as node0_parent, node0.id as node0_id";

//select nodes
for($l=1;$l<=$level;$l++) {
$query .= ",node".$l.".name AS node".$l."_name, node".$l.".status as node".$l."_status,node".$l.".parentid as node".$l."_parent, node".$l.".id as node".$l."_id ";
}
//join
$query .= " FROM categories AS node0 ";
for($l=1;$l<=$level;$l++) {
$query .= " LEFT OUTER JOIN categories AS node".$l." ON node".$l.".parentid = node".($l-1).".id";
}
//conditions
$query .= " WHERE ((node0.parentid IS NULL) OR (node0.parentid =0)) ORDER BY node0_name ";
for($l=1;$l<=$level;$l++) {
$query .= ",node".$l."_name ";
}
$resource = mysql_query($query);
return $resource;
}
}

$connect = mysql_connect("localhost", "user", "password");
$dh = mysql_select_db("database", $connect);
$cat_obj = new Categories();
$cat_array =$cat_obj->getCategoriesArray();

//For dropdowns
//$cat_array = $cat_obj->getCategoriesArray(0, "--", "");

foreach($cat_array['name'] as $key =>$catname) {
//id---->echo $cat_array['id'][$key];
echo $catname;
}

?>


puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 19:08  2954
tady ? if(is_int($padding)){
huh huh 8.2.2010 19:04  2953
Máš chybu ve třetím sloupci na patnáctém řádku...
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 19:00  2952
nic ?
:-)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 11:22  2951
prosba a dotazpo delší době jsem se vrátil ke stromové struktuře budu potřebovat vygenerovat z gtabulky v databázi menu

nechal jsem se inspirovat zde:
Display menu in tree structure – mysql parent child relation
první polovina článku je i pro mě (snad) jasná, ale při použití PHP API kódu na své stránce (zatím na localhost) narážím na problém, že se mi nic nezobrazí
...
počítám, že patrně neumím správně použít API ...
nemohl by mě někdo zkusit popostrčit, kde by mohla být chyba ??

Tabulku mám (svou, data vložená do struktury té originální ...)
Ty dva dotazy se také chovají správně a vygenerují to, co se píše v článku
...
takže mi zbává ten "výstup" a tam patrně něco mrvím
:-(
bighead BIGHead Pořádáte akci, vyzkoušejte - naše moderátory 3.2.2010 17:54  2950
Díky vám oběma, vyzkouším a dám vědět jak jsem pochodil...

[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt