Ako vytvoriť kategórie a podkategórie z textu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako vytvoriť kategórie a podkategórie z textu – PHP – Fórum – Programujte.comAko vytvoriť kategórie a podkategórie z textu – PHP – Fórum – Programujte.com

 

juraj1750
Návštěvník
23. 3. 2018   #1
-
0
-

Zdravím ako z reťazca vytvoriť hlavné kategórie a podkategórie,ktoré sa načítavajú z xml súboru v tvare

<product product_id="1" >
<kategorie>Drogerie / Domov / Autokosmetika</kategorie>
</product>
 
<product product_id="2" >
<kategorie>Drogerie / Praní / Prací prostředky / Speciály</kategorie>
</product>
 

a chcem dostať
hlavná kategória
Drogerie
Kuchyně
Mytí nádobí
Ruční mytí nádobí

a tu je php kód ako som sa dostal ďaleko

<?include_once "connect.php";set_time_limit(0);
ini_set('memory_limit', '2000M');?>
<?php 
$xml=simplexml_load_file("....") or die("Error: Cannot create object");
    $already_used = array();
foreach($xml->children() as $category) {  
 
$catname = $category->kategorie;
                     
$kategoriep = explode("/", $catname);
$kategorieppp =count($kategoriep);    
 $output[]=$kategoriep[0];
 
for($i=0;$i<count($kategoriep);$i++){
if(!in_array($kategoriep[$i],$output)){
 
 print $output[]=$kategoriep[$i];echo "<br>";
 
}
}
} 
?>
Nahlásit jako SPAM
IP: 88.212.36.–
peter
~ Anonymní uživatel
4014 příspěvků
27. 3. 2018   #2
-
0
-

No, a v cem je jako problem. Co ti to dela, nedela. Nejaky funkcni example? Jakoze mluvis o necem jinem nez odpovida xml kodu.

Drogerie
Kuchyně
Mytí nádobí
Ruční mytí nádobí

<kategorie>Drogerie / Praní / Prací prostředky / Speciály</kategorie>

Jakoze explode ti bude fungovat, ale v kodu mas mezery. Ale nejsem si ted uplne jisty, co to udela, kdyz tam lomitko nebude, jestli bys tam nemel mit jeste podminku na strpos().

$kategoriep = explode("/", $catname);
$kategoriep = explode(" / ", $catname);
 

Tam se da pouzit foreach a pak se to da napsat trochu jinak

for($i=0;$i<count($kategoriep);$i++){
foreach($kategoriep as $key=>$value){
if(!in_array($kategoriep[$i],$output)){
if(!in_array($value,$output)){
 

A ted zbyva zjistit, co presne chces docilit. Chces udelat seznam vsech stringu, co se muzou vyskytovat v $category->kategorie? Nebo tam chces resit i level? S levelem by to mohlo vypadat takhle:

if (!isset($output[$key])) {$output[$key] = array();}
if(!in_array($value,$output[$key])){
$output[$key][] = $kategoriep[$i];
 

A mimochodem, tohle bych prejmenoval

foreach($xml->children() as $category) { $catname = $category->kategorie;
foreach($xml->children() as $product) { $catname = $product->kategorie;
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
juraj1750
Návštěvník
28. 3. 2018   #3
-
0
-

#2 peter
napr z tejto adresy

https://dedra.blob.core.windows.net/cms/xmlexport/cs_xml_export.xml?ppk=285765

export tieto položky do php a mysql, nejaký jednoduchý skript

aby sa  kategorie s podkategóriami uložili do jednej tabulky ,tovary do druhej tabulky k prislušným kategóriám a do tretej tabuľky s obrázky

Nahlásit jako SPAM
IP: 88.212.36.–
peter
~ Anonymní uživatel
4014 příspěvků
28. 3. 2018   #4
-
0
-

Trochu jsem upravil nekolik prikladu z manualu. Zajimave je, ze i cyklus i in_array tam dava nektere kategorie 2x. Zatim mne nenapada proc? Zkusil jsem i udelat base64 encode, takovy jednoduchy test, zda jsou stringy stejne. in_array mi na lokalnim pc dela 0.57s, cyklus 0.6s

<?php

/*include_once "connect.php";*/

set_time_limit(0);
ini_set('memory_limit', '2000M');

function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

$filename = 'cs_xml_export.xml';
if (file_exists($filename))
	{
	$xml = simplexml_load_file($filename) or die("Error: Cannot create object");
	}
else	{
	exit('Error: Failed to open '.$filename.'.');
	}

$out = array();
foreach ($xml->children() as $children)
	{
	$str = $children->kategorie;
//	echo $str.'<br>';
	$arr = strpos($str,' / ') ? explode(' / ', $str) : array($str);
	foreach ($arr as $name)
		{
		if ($name=='' || in_array($name, $out))
			{
			continue;
			}
//		foreach ($out as $value)
//			{
//			if ($name==$value)
//				{
//				continue 2;
//				}
//			}
//		$out[] = $name . '_' . md5($name);
		$out[] = $name;
		}
	}

function cmp($a, $b)
	{
	$a = strtolower($a);
	$b = strtolower($b);
	if ($a == $b)
		{
	        return 0;
		}
	return ($a < $b) ? -1 : 1;
	}
//sort($out);
uasort($out, 'cmp');

foreach ($out as $key=>$value)
	{
	$out[$key] .= ' ' . base64_encode($value);
	}

echo count($out).'<hr>';
echo implode('<br>',$out);

echo '<br>' . 'Cas: '.(microtime_float()-$time_start).'s';

                     
/*
http://php.net/…oad-file.php
*/
?>
Nahlásit jako SPAM
IP: 2001:718:2601:258:89ff:85...–
peter
~ Anonymní uživatel
4014 příspěvků
28. 3. 2018   #5
-
0
-

Kdyz podminku v tom cyklu upravim kodovanim na base64, tak to zobrazi 244 kategorii. Asi to nejak souvisi s utf-8 kodovanim. Ale cas je dvojnasobny 1.2s. Ale to by se dalo optimalizovat pomocnym polem s uz hotovymi base64. Spis je treba nekde neco prepnout v php ohledne kodovani a pak snad to bude ok.

            if (base64_encode($name)==base64_encode($value))
Nahlásit jako SPAM
IP: 2001:718:2601:258:89ff:85...–
peter
~ Anonymní uživatel
4014 příspěvků
28. 3. 2018   #6
-
0
-

V excelu z tech 280, kdyz jsem dal odebrat duplicity, tak vyslo 241 radku :) Tak ja nevim, jako.
dal jsem to vedle sebe jako sloupce. Zrusil mi tam asi velikost pismen. ikdyz jsem mu ji nezaskrtaval. Asi je to tam default.

VarMix 1, Varmix 1 - zustalo jen Varmix 1
totez
Školní potřeby, školní potřeby
Šperky, šperky

Ono, tech duplicit je tam vic, ale to jsem neresil, ani excel nemohl, protoze jsou tam trochu jine znaky.

Nahlásit jako SPAM
IP: 2001:718:2601:258:89ff:85...–
juraj1750
Návštěvník
28. 3. 2018   #7
-
0
-

#6 peter
Zdravím tu je celý skript a ako to hodiť do mysql.Neviem prečo tu sa spomína excel ,ked je to v xml subore

<?include_once "connect.php";set_time_limit(0);
ini_set('memory_limit', '2000M');?>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
<?php 
$xml=simplexml_load_file("https://dedra.blob.core.windows.net/cms/xmlexport/cs_xml_export.xml?ppk=285765") or die("Error: Cannot create object");
    $already_used = array();
foreach($xml->children() as $category) {  
 
$catname = $category->kategorie;
   $tovar = $category->text1;        
                 $product_id = $category->product_id;          
$kategoriep = explode("/", $catname);
$kategorieppp =count($kategoriep);    
 $output[]=$kategoriep[0];
 
for($i=0;$i<count($kategoriep);$i++){
foreach($kategoriep as $key=>$value){
if(!in_array($kategoriep[$i],$output)){
if(!in_array($value,$output)){
 
 print $output[]=$kategoriep[$i];
  echo $product_id;
  echo $tovar;
 echo "<br>";
 
}
}
} } } 
?>
 </body>
</html>
Nahlásit jako SPAM
IP: 88.212.36.–
peter
~ Anonymní uživatel
4014 příspěvků
28. 3. 2018   #8
-
0
-

Ha, uz to dava smysl. V xml jsou nejake CCDATA. Ty se odstranuji pomoci

        $name = strip_tags($name);

A pak uz funguje spravne i in_array.

Tys ten muj kod vubec nezkoukl, nespoustel, ze? :) Excel jsem si vzal jako pomucku, protoze mi duplikoval kategorie.

Nahlásit jako SPAM
IP: 2001:718:2601:258:89ff:85...–
peter
~ Anonymní uživatel
4014 příspěvků
28. 3. 2018   #9
-
0
-

Kdyz z tama vyhodim vsechny pomucky, tak zustane jen tohle, podobne tvemu kodu 

<?php

set_time_limit(0);
ini_set('memory_limit', '2000M');

header('Content-Type: text/html; charset=utf-8');


$filename = 'cs_xml_export.xml';
if (file_exists($filename))
	{
	$xml = simplexml_load_file($filename) or die("Error: Cannot create object");
	}
else	{
	exit('Error: Failed to open '.$filename.'.');
	}

$out = array();
foreach ($xml->children() as $children)
	{
	$str = $children->kategorie;
	$arr = strpos($str,' / ') ? explode(' / ', $str) : array($str);
	foreach ($arr as $name)
		{
		$name = strip_tags($name);
		if ($name=='' || in_array($name, $out))
			{
			continue;
			}
		$out[] = $name;
		}
	}

echo count($out).'<hr>';
echo implode('<br>',$out);
Nahlásit jako SPAM
IP: 2001:718:2601:258:89ff:85...–
peter
~ Anonymní uživatel
4014 příspěvků
28. 3. 2018   #10
-
0
-

   

    <kategorie><![CDATA[Domácnost / Praktické / Pro prodejce / Pomůcky prodejce]]></kategorie>

By se mozna dalo spravit uz tady:
	$str = $children->kategorie;
        $str = strip_tags($str);


Ale v tom xml to nema, co delat, si myslim. Ikdyz nekde jsem to videl vyzadovat.
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:89ff:85...–
juraj1750
Návštěvník
28. 3. 2018   #11
-
0
-

#8 peter
Skúšal a nejde mi to vôbec spustit

Nahlásit jako SPAM
IP: 88.212.36.–
juraj1750
Návštěvník
28. 3. 2018   #12
-
0
-

#10 peter
Hlavné kategórie sa uložili do tabuľky mysql,ako docieliť, aby sa uložili podkategórie k hlavným kategóriám

hlavná kategória napr Drogerie

a pod drogériu by sa uložili 

Praní

  Vychytávky

Kosmetika 

   Péče o tělo

    Mýdla a pěny na ruce

<?include_once "connect.php";set_time_limit(0);
ini_set('memory_limit', '2000M');?>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
<?php 
$xml=simplexml_load_file("https://dedra.blob.core.windows.net/cms/xmlexport/cs_xml_export.xml?ppk=285765") or die("Error: Cannot create object");
    $already_used = array();
foreach($xml->children() as $category) {  
 
$catname = $category->kategorie;
	$catname = strip_tags($catname);
   $tovar = $category->text1;        
                 $product_id = $category->product_id;          
$kategoriep = explode("/", $catname);

$kategorieppp =count($kategoriep);    
 $output[]=$kategoriep[0];
 
for($i=0;$i<count($kategoriep);$i++){
foreach($kategoriep as $key=>$value){
if(!in_array($kategoriep[$i],$output)){
if(!in_array($value,$output)){
 echo $kategoriep[0];
 print $output[]=$kategoriep[$i];
  echo $product_id;
  echo $tovar;
 echo "<br>";
if($kategoriep[0]){//ulozili sa hlavne kategorie
  echo    $sql = "SELECT id,name,patrikhlavnejkatid from kategorie WHERE name = '$kategoriep[0]'";
          $result = mysql_query($sql);
         $count=mysql_num_rows($result);
         if($count > 0) {
print " Kategoria uz existuje";
}
else {
   $sql = "SELECT id,name,patrikhlavnejkatid from kategorie WHERE name = '$kategoriep[0]'";
if($kategoriep[0]){
 $result =  mysql_query("INSERT INTO kategorie (name,parent_id) VALUES ('$kategoriep[0]','0')");
}
     
}
}
}
}
}
}
} 
?>
Nahlásit jako SPAM
IP: 88.212.36.–
peter
~ Anonymní uživatel
4014 příspěvků
29. 3. 2018   #13
-
0
-

juraj175 - Kdyz to nejde spustit, si tam na zacatek pridej error_reporting a melo by to vypsat chyby, proc. Jsem doufal, ze se v tom kodu vyznas, kdyz je v podstate stejny, jako tvuj.

@ini_set('error_reporting', E_ALL);
@ini_set("display_errors", "on");
error_reporting(E_ALL);

Ok, ale problem je malinko slozitejsi. Tak, musis ukladat i level, uroven kategorie.

$out[] = array(count($out), $i, $arr[$i]); // id, level, name

Ted vznika rozpor, zda pouzit in_array nebo spis array_search. Pres array_search ziskas key, kde to je v $outu; $nalezeno = $out[$key]. Pokud to nenajde, pridas to nakonec. Pokud to najde, tak $key = $id rodice, parent, nadrazene kategorie. 

if ($nalezeno===false)
  {
  array(count($out), $i, $arr[$i]); // id, lvl, name - id = nova polozka pole
  }
else
  {
  array($out[$nalezeno][0], $i, $arr[$i]); // id, lvl, name - id = id nalezene kategorie
  }

A s timhle to uz muzes nasoukat do sql.
Level ukladat nemusis, v podstate. Ale muzes, pro kontrolu a mozna ti to pomuze s nekterymi sql dotazy.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
peter
~ Anonymní uživatel
4014 příspěvků
29. 3. 2018   #14
-
0
-

// id, lvl, name
id - je id rodice, nadrazene kategoie.
Kdyz id==i pro cyklus vypisovani pole $out[$i], tak je to hlavni kategorie, lvl=0.
kdyz id!=i, tak je to podkategorie, lvl=1,2,3.... Id je tudiz odkaz na nadrazenou kategorii, $out[$id][2] je nazev nadrazene kategorie.

Nebo muzes pouzit zapis pomoci textovych klicu, indexu... 

array(count($out), $i, $arr[$i]); // zmenis na
array('id' => count($out), 'lvl' => $i, 'name' => $arr[$i]);
$out[$id][2] // zmenis na
$out[$id]['name']

id, name potrebujes pak pro databazi. Mozna i lvl. S lvl se to da zkomplikovat tak, ze muzes mit stejny nazev kategorie, ale s jinym lvl

obleceni / spodni pradlo / plavky / zeny
obleceni / kalhoty / zeny

Kdezto ten muj kousek kodu tohle neresi. On by v $out nasel 'zeny' maji nadrazenou kategorii 'plavky' a kalhoty i plavky by byli pod plavkami. Takze, krome nalezeno bys musel zkontrolovat jeste 

if ($nalezeno===false && $out[$nalezeno]['lvl']==$i-1) // level nebo lepe...
if ($nalezeno===false && $out[$nalezeno]['name']==$arr[$i]) // name a nebo jeste lepe oboje lvl i name

A uplne nejlepe vsechny name vsech nadrazenych kategorii, proc?

hracky / drevene / modre
zidle / drevene / modre

Tady by ti zas 'modre' 'drevene' 'zidle' zaradil pod 'hracky' :)


Jenze, nastava tu trochu problem, zda chces do db pridat nove kategorie nebo kompletne prepsat celou db. Pridani by bylo malinko slozitejsi. Musel by sis vytahnout z db nejvetsi id kategorie a pak pri zapise k nemu pricitat $i pri prochazeni pole $out. jinak si prepises v db nejakou kategorii, ktera tam uz je.
A dalsi problem, pokud v db uz je stejne nazvana kategorie.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
juraj1750
Návštěvník
29. 3. 2018   #15
-
0
-

#14 peter
Mohol by si mi upraviť ten kód, všetky podkategórie sa uložili k hlavnej  ale k podkategóriam neviem správne priradit parent_id

<?include_once "connect.php";set_time_limit(0);
ini_set('memory_limit', '2000M');?>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
<?php 
$xml=simplexml_load_file("https://dedra.blob.core.windows.net/cms/xmlexport/cs_xml_export.xml?ppk=285765") or die("Error: Cannot create object");
    $already_used = array();
    $vsetkykat = 0;
foreach($xml->children() as $category) {  
 
$catname = $category->kategorie;
	$catname = strip_tags($catname);
   $tovar = $category->text1;        
                 $product_id = $category->product_id;          
$kategoriep = explode("/", $catname);

$kategorieppp =count($kategoriep);    

$output[]=$kategoriep[0];
for($i=0;$i<count($kategoriep);$i++){ 
foreach($kategoriep as $key=>$value){   $id=mysql_insert_id()+1;

if(!in_array($kategoriep[$i],$output)){
if(!in_array($value,$output)){

 $kategoriep[0]; 
 $output[]=$kategoriep[$i];

echo "Hlavnakat" ; echo $kategoriep[0];
  echo $kategoriep[$i];
  echo $product_id;
  echo $tovar;
 echo "<br>"; 

if($kategoriep[0]){//ulozili sa hlavne kategorie
    $sql = "SELECT id,name,patrikhlavnejkatid from kategorie WHERE name = '$kategoriep[0]'";
          $result = mysql_query($sql);
         $count=mysql_num_rows($result);
         if($count > 0) {
print " Kategoria uz existuje";
}
else {
   $sql = "SELECT id,name,patrikhlavnejkatid from kategorie WHERE name = '$kategoriep[0]'";

    
     $sql="INSERT INTO kategorie(name,parent_id,patrikhlavnejkatid)
VALUES('$kategoriep[0]','0','$id')"; 
$result=mysql_query($sql);
     
     
}
}if($kategoriep[$i]){//ulozili sa hlavne kategorie
    $sql = "SELECT id,name,patrikhlavnejkatid from kategorie WHERE name = '$kategoriep[$i]'";
          $result = mysql_query($sql);
         $count=mysql_num_rows($result);
         if($count > 0) {
print " Kategoria uz existuje";
}
else {
echo "juraj"; echo $kategoriep[0];

  // $sql = "SELECT id,name,patrikhlavnejkatid from kategorie WHERE name = '$kategoriep[$i]'";
   $sql = "SELECT id,patrikhlavnejkatid from kategorie WHERE name = '$kategoriep[0]'";
        $result = mysql_query($sql);
     WHILE(LIST($id,$patrikhlavnejkatid) = mysql_fetch_row($result)) {
 //$resulti =  mysql_query("INSERT INTO kategorie (name,parent_id,patrikhlavnejkatid) VALUES ('$kategoriep[$i]','55','$patrikhlavnejkatid')");
 

      $sqlf="INSERT INTO kategorie(name,parent_id,patrikhlavnejkatid)
VALUES('$kategoriep[$i]','$id','$patrikhlavnejkatid')"; 
$resultf=mysql_query($sqlf);

 echo $value;echo"fff";

}

}
}
}    
}
}      
} $vsetkykat++;
}
if($vsetkykat==$vsetkykat){
       echo "koniec kategorii,nvlozia sa tovary";
}
?>

  </body>
</html>
Nahlásit jako SPAM
IP: 88.212.36.–
peter
~ Anonymní uživatel
4014 příspěvků
3. 4. 2018   #16
-
0
-

mne napadlo pres svatky, ze to porovnani pro parent id by slo udelat jako string a neni treba pak nic vyhledavat. Jakoze nejdriv to explodujes a pak implodujes. Zhruba neco takove. Je to spis myslenka, nezkousel jsem to.

arr = explode(' / ', str);
parent = ''
cyklus (i = 0..count(arr))
{
name = arr[i];
cyklus (j = 0..count(out))
{
if (out[name]==name && out[parent]==parent)
  {break}
}
if (j<count(out))
  {out[] = array('name'=name,'parent'=parent)}
parent .= arr[i].' ';
}
Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
peter
~ Anonymní uživatel
4014 příspěvků
4. 4. 2018   #17
-
0
-

Zkusim do sveho kodu zabudovat to prirazovani kategorii. Ale chvili mi to asi zabere to promyslet. Hlavne se v tom o malinko vic vyznam nez ve tvem kodu :)

Nicmene, chtel jsem ti rici, ze tam mas explode podle '/', ale v xml pouzivas jako oddelovac ' / '. Takze ti to nebude spravne fungovat. Mozna, kdybys pridal jeste trim(). Divej, misto mezer pouziji x, ju?
obleceniX/Xspodni pradloX/Xplavky -> obleceniX, Xspodni pradloX, Xplavky
obleceniX/Xspodni pradloX/XplavkyX/Xzeny -> obleceniX, Xspodni pradloX, XplavkyX
Jenze
Xplavky a
XplavkyX jsou 2 ruzna slova.
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:70a2:6d...–
peter
~ Anonymní uživatel
4014 příspěvků
4. 4. 2018   #18
-
0
-

   

<?php
@ini_set('error_reporting', E_ALL);
@ini_set("display_errors", "on");
error_reporting(E_ALL);

set_time_limit(0);
ini_set('memory_limit', '2000M');

header('Content-Type: text/html; charset=utf-8');


$filename = 'cs_xml_export.xml';
if (!file_exists($filename))
	{
	exit('Error: Failed to open '.$filename.'.');
	}
$xml = simplexml_load_file($filename) or die("Error: Cannot create object");

$out = array();
$i = 0;
foreach ($xml->children() as $children)
	{
	$cat_str = $children->kategorie;
	$cat_arr = strpos($cat_str,' / ') ? explode(' / ', $cat_str) : array($cat_str);
	$p_str  = '';
	$p_id   = -1;
	$p_name = '';
	$level  = 0;
	foreach ($cat_arr as $name)
		{
		$name = trim(strip_tags($name));
		if ($name=='')
			{
			continue;
			}
		foreach ($out as $index=>$row)
			{
			if ($row['name']==$name && $row['level']==$level && $row['p_str']==$p_str)
				{
				$p_id   = $index;
				$p_str .= $name.'/';
//				$p_name = $name;
				$level++;
				continue 2;
				}
			}
		$out[]  = array(
			'name'  => $name,
			'p_id'  => $p_id,
			'level' => $level,
			'p_str' => $p_str
//			'p_name'=> $p_name
			);
		$p_id   = $i;
		$p_str .= $name.'/';
//		$p_name = $name;
		$level++;
		$i++;
		}
	}

echo count($out).'<hr>';
echo '<style>thead td {font-weight:bold;} td {padding:0 3px;}</style>';
echo '<table style="border-spacing:0;border:0;">';
	echo '<thead><tr><td>id</td><td>'.implode('</td><td>',array('name','p_id','lvl','p_str')).'</td></tr></thead>';
foreach ($out as $index=>$row)
	{echo '<tr><td>'.$index.'</td><td>'.implode('</td><td>',$row).'</td></tr>';}
echo '</table>';
?>
Nahlásit jako SPAM
IP: 2001:718:2601:258:70a2:6d...–
peter
~ Anonymní uživatel
4014 příspěvků
4. 4. 2018   #19
-
0
-

To lvl tam mam jen proto, ze to rychleji prohledava. Nema smysl porovnavat 200 znaku p_str, kdyz nesouhlasi lvl.

Nahlásit jako SPAM
IP: 2001:718:2601:258:70a2:6d...–
juraj1750
Návštěvník
4. 4. 2018   #20
-
0
-

#19 peter
Ďakujem

a ešte keď ťa môžem poprosiť ako  priradiť tovary aj s obrázkami ku kategóriám ,xml veľmi o tom neviem

ešte raz vďaka za ochotu

Nahlásit jako SPAM
IP: 88.212.36.–
peter
~ Anonymní uživatel
4014 příspěvků
5. 4. 2018   #21
-
0
-

S tim ti neporadim. Spis nekdo jiny. Zas tolik o xml nevim. Tam bys mel asi parsovat xml jinym zpusobem. Najit zbozi a jeho kategorie. Ten kod, ktery jsi dal na zacatku vybere vsechny tagy <kategorie> z celeho xml nezavisle na tom, zda patri ke zbozi nebo ne. Ty bys tam mel mit se zbozim neco jako
$zbozi  = $children->zbozi;
$cat_str = $zbozi->kategorie;
Ale nejsem si jisty, zda to jde takhle napsat.
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 45 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý