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: xsyihwk
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
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...
huh huh 3.2.2010 16:52  2949
BIGHead [2945]:
SELECT @poradi := @poradi + 1 AS poradi, jmeno, pocet FROM (SELECT @poradi := 0) p, body ORDER BY 1;
nebo
SELECT (select count(*) from body b where b.pocet > body.pocet) + 1 AS poradi, jmeno, pocet FROM body ORDER BY 1;
themajkl themajkl All those moments will be lost in time - like tears in rain. 3.2.2010 11:21  2948
MySQL nevím, informix by byl něco jako
select a.zavodnik,
  (select count(*) from tabulka b)  - (select count(*) from tabulka c
                where c.body<a.body) poradi
  from tabulka a
order by 1  desc
bighead BIGHead Pořádáte akci, vyzkoušejte - naše moderátory 3.2.2010 11:12  2947
no ideálně přímo ten select :)
themajkl themajkl All those moments will be lost in time - like tears in rain. 3.2.2010 10:44  2946
čili
pořadí závodníka X = (počet všech účastníků) - (počet účastníků, co mají body menší, než závodník X)
? :-)
Nebo chceš přímo ten select?
bighead BIGHead Pořádáte akci, vyzkoušejte - naše moderátory 3.2.2010 10:18  2945
počítání umístěníMám výsledky závodů v bodech. Každý závodník má svůj vlastní profil a já tam potřebuju k těm bodům ještě dopočítat správné pořadí. Tzn. nějak porovnat body aktuálního závodníka se všemi ostatními závodníky a na základě toho mu určit pořadí.
Body jsou uloženy v MySQL. Není možné, aby měli dva závodníci stejný počet bodů. Závodníků může být i několik set.

Můžete poradit jak na to?
puschpull puschpull být nad věcí, pohoda a klid ... - AV-Com (Homepage) 30.1.2010 17:31  2944
jsem takový malý "prasák"

:-)

ale čistý kód se mi vždy líbil a líbí a postupně se k němu posouvám ....
makovec makovec Chuck Norris snědl jídlo od Babicy - a ještě si přidal 30.1.2010 14:09  2943
aha!! tak sem necet pozorne. ja si z toho vybral jen to ze je to prasarna. na empty cells se mrknu, slysim o tom prvne. diky moc
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 30.1.2010 13:57  2942
Aha, takze jde o to, co jsem tu zminoval i s resenim pred nejakymi tremi dny. :-) Kdokoliv [2921]
(A ano, ze strany IE i Opery je to poruseni specifikace, protoze to ma bejt vychozi hodnota, ze strany Opery bych cekal, ze je to pokus o kompatibilitu.)
makovec makovec Chuck Norris snědl jídlo od Babicy - a ještě si přidal 30.1.2010 13:13  2941
mluvim o tomhle. nicmene sem ted koukal ze s tim nema trabl jen IE ale i opera.



nahore prazdna bunka, dole s nedelitelnou mezerou. ale jak sem psal, s tabulkama sem se nepotkal uz peknou radku let, takze mozna je na to nejake jednoduche reseni (trebas i pres CSS) o kterem nevim. ja kdysi pouzival prave nedelitelnou mezeru a prave diky puschpullovi a tvy poznamce ze to je prasarna me jen tak napadla otazka (treba nekdy do budoucna. kdo vi) jak to vyresit jinak

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

(c) 2001-2011 Lopuch.cz   
Kontakt