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

Když diskuse,
tak s Lopuchem

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: coggyob
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
knedle knedle online - Krabice živých 10.2.2010 13:04  2968
mpdf
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 10.2.2010 11:23  2967
generátor PDFShanim co nejsnazsi metodu jak generovat z PHP generovat pdf fakturu.
uplnej ideal by pro me byl vyrobit ji v html a pomoci neceho z nej udelat PDF...
v prestashopu jsem cosi videl, ale kod potrebnej pro vznik te faktury byl silenej bolehlav, shanim neco lidskeho...
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 22:17 - Oblíbené kluby (18:41) 2966
tabulka mysqlze která by mělo menu s tree strukturou vycházet:

puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 22:14 - Oblíbené kluby (18:41) 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 - Oblíbené kluby (18:41) 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 - Oblíbené kluby (18:41) 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 - Oblíbené kluby (18:41) 2960
použita rada ad b)
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 8.2.2010 20:11 - Oblíbené kluby (18:41) 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 - Oblíbené kluby (18:41) 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 - Oblíbené kluby (18:41) 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 - Oblíbené kluby (18:41) 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 - Oblíbené kluby (18:41) 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...

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

(c) 2001-2011 Lopuch.cz   
Kontakt