Seite 1 von 2

Wieder mal ein PHP blackout bei mir^^

Verfasst: 12.11.2009, 20:38
von catcat
Ich hab da in diesem Teil nen Fehler und find es nicht:


array_multisort($lens, SORT_NUMERIC, $childs );
foreach($childs as $key =>$child ){
echo
'<li-first"; } echo '"><a href="'.$child['url'].'" title="'.$child['name'].'">'.$child['name'].'</a></li>';
}

Ich habs mal farblich so wie in DW gemacht. Es kann nur in der Zeile, die mit " echo '<li-first";" beginnt sein.

Die Fehlermeldung lautet: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in blabla

Aber ich komm einfach nicht drauf :(
Jemand ne Idee?

Verfasst:
von

Verfasst: 12.11.2009, 20:42
von 007
echo '<li-first";

' != "

;)

Verfasst: 12.11.2009, 20:43
von net(t)worker
hmm... ich würde sagen du wirfst da ' und " wild durcheinander und hast dich dabei verhaddert...

kommste gerade aus der Stammkneipe?

Verfasst: 12.11.2009, 20:44
von Texxter
Probier mal so:

Code: Alles auswählen

echo "<li><a href='".$child&#91;'url'&#93;."' title='".$child&#91;'name'&#93;."'>".$child&#91;'name'&#93;."</a></li>";

Verfasst: 12.11.2009, 20:55
von catcat
Öhm... dakommt dasselbe raus Texxter^^

@net(t)worker): jep.

Also hier mal der gesamte Kot:

Code: Alles auswählen

<div>
<h2>Shop Categories</h2>
</div>
<div>
<table cellspacing="0" id="cat-list">
<?php
$allCats=$this->getStoreCategories&#40;&#41;;
$i=0;
foreach &#40;$allCats as $category&#41;&#123;
 if&#40;$i==30&#41;&#123;
 break;
 &#125;
 if &#40;!$category->getIsActive&#40;&#41;&#41;&#123;
 continue;
 &#125;
 $children = $category->getChildren&#40;&#41;;
 $childrenCount = $children->count&#40;&#41;;
 $catName=$category->getName&#40;&#41;;

 if&#40;$i++%3==0&#41;&#123;
 echo '<tr>';
 &#125;
 echo '<td><div style="background&#58;url&#40;'.$this->getSkinUrl&#40;'images/'.$category->getId&#40;&#41;.'.jpg'&#41;.'&#41; no-repeat bottom center;">
 <ul><a href="'.$this->getCategoryUrl&#40;$category&#41;.'" title="'.$catName.'">'.$catName.'</a><br>';
 $j=0;
 if &#40;$children && $childrenCount&#41; &#123;
 $childs=array&#40;&#41;;
 $lens=array&#40;&#41;;
 foreach &#40;$children as $child&#41; &#123;
 if &#40;$child->getIsActive&#40;&#41;&#41; &#123;
 $childName=trim&#40;preg_replace&#40;"/^$catName */",'',$child->getName&#40;&#41;&#41;&#41;;
 preg_match_all&#40;'/m/',$childName,$letters&#41;;
 $count=count&#40;$letters&#91;0&#93;&#41;;
 $strlen=strlen&#40;$childName&#41;+$count;
 if&#40;$strlen>12 && substr&#40;$catName,0,4&#41;!="Rept"&#41;&#123;
 continue;
 &#125;
 $childs&#91;$j&#93;=array&#40;&#41;;
 if&#40;$childName=='Supplements & Medications'&#41;&#123;
 $childName='Supplements';
 &#125;
 $childs&#91;$j&#93;&#91;'name'&#93;=$childName;
 $lens&#91;$j&#93;=$strlen;
 $childs&#91;$j&#93;&#91;'url'&#93;=$this->getCategoryUrl&#40;$child&#41;;
 $j++;
 if&#40;$j==5&#41;&#123;
 break;
 &#125;
 &#125;
 &#125;
 array_multisort&#40;$lens, SORT_NUMERIC, $childs&#41;;
 foreach&#40;$childs as $key=>$child&#41;&#123;
 echo '<li-first"; &#125; echo '"><a href="'.$child&#91;'url'&#93;.'" title="'.$child&#91;'name'&#93;.'">'.$child&#91;'name'&#93;.'</a></li>'; //und hier steckt der Hund drin
 &#125;
 &#125;
 echo '';
 if&#40;$i%3==0 || $i==6&#41;&#123;
 echo '</tr>';
 &#125;
&#125;
?>
</table>
</div><br />
Das sollte mir die Kategorien aus der DB ziehen und mir fein säuberlich, wie bei Preussens, auf der Startseite anzeigen in 3-er-Reihen.

Verfasst: 12.11.2009, 21:07
von net(t)worker
hast du die Zeile von Texxter nu ganz rüberkopiert, also deine vorher gelöscht, oder haste versucht deine zeile der von texxter anzupassen?

Verfasst: 12.11.2009, 21:08
von catcat
*narf.
Ich habe meine gelöscht und die von texxter reinkopiert...
STRG-C und STRG-V schaffe ich grade noch^^

Re: Wieder mal ein PHP blackout bei mir^^

Verfasst: 12.11.2009, 21:15
von DanielS
catcat hat geschrieben:...Es kann nur in der Zeile, die mit " echo '<li-first";" beginnt sein...
Das klingt irgendwie nur nach Vermutung. Welche Zeile steht denn genau in der Fehlermeldung?

Verfasst: 12.11.2009, 21:16
von net(t)worker
hast du den Code denn nach der Änderung der Zeile auf dein Livesystem kopiert oder wieder nur mal aufs testsystem und dann beim livesystem nachgeschaut?

Re: Wieder mal ein PHP blackout bei mir^^

Verfasst: 12.11.2009, 21:22
von net(t)worker
DanielS hat geschrieben:Das klingt irgendwie nur nach Vermutung. Welche Zeile steht denn genau in der Fehlermeldung?
naja... in der Zeile ist auf jeden Fall etwas falsch.... da werden ' und " wild durcheinander gewürfelt, und was das } dort zu suchen hat frage ich mich auch... und es gibt keinen "<li-first" HTML Tag.... aber klar, ggf. kann der Fehler, der diese Fehlermeldung verursacht auch in einer anderen Zeile liegen

Verfasst: 12.11.2009, 21:22
von catcat
Es gibt Tage, da hasse ich Dich echt!
Ich geh runter innen "Flotten Otto" und guck morgen wieder nach "qualifizierten Kommentaren" *hehe

Verfasst: 12.11.2009, 21:34
von net(t)worker
catcat hat geschrieben:Ich geh runter innen "Flotten Otto" und guck morgen wieder nach "qualifizierten Kommentaren" *hehe
Hmm... soetwas ähnliches wollte ich dir eigentlich nach dem Eingangsposting schon empfehlen... so sehr wie die eine Zeile verhunzt is, fehlt dir momentan wohl die nötige Konzentration fürs scripten... :-?

Verfasst: 12.11.2009, 21:54
von 007
Ich poste auch gerne nochmal, vielleicht sieht ja jetzt Jemand den Fehler:

echo '<li-first";

Verfasst: 12.11.2009, 21:56
von DanielS
007 hat geschrieben:Ich poste auch gerne nochmal, vielleicht sieht ja jetzt Jemand den Fehler:

echo '<li-first";
Das hat unsere Doppelkatze aber durch den Code von Texxter behoben ;)

Verfasst: 12.11.2009, 21:56
von net(t)worker
007 hat geschrieben:Ich poste auch gerne nochmal, vielleicht sieht ja jetzt Jemand den Fehler:

echo '<li-first";
ach... und der wäre mit dieser Zeile von Texxter nicht behoben? :roll: