Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 5 Gast/Gäste
echo problem
#11
Mich auch xD!
Zitieren
#12
PHP-Code:
<?
$menu = array(array("Startseite", "Guestbook"),
        array("about me","meng Klass","Friends"),
        array("Error","lol")
         ); 
$anzahl = array(count($menu[0]),count($menu[1]),count($menu[2])
         ); 
function div1() {
if ($i = 0) {
   echo "<div>";
   }
   }
function div2() {
if ($i = $anzahl[$a]) {
   echo "</div>";
   }
   }
?>
<html>
<body>
<?
for ($a=0; !empty($menu[$a]); $a++)
{
    for ($i = 0; $i < $anzahl[$a]; $i++)
    {
        div1();
        echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
        echo "\n";
        div2();
    }
}
?>
</body>
</html> 
Edit: Habe den Php-code aktualisiert.
Kann mir jemand sagen was ich falsch mache?
Es erscheint beim Aufruf folgende Fehlermeldung
Code:
Parse error: syntax error, unexpected $end in /usr/export/www/vhosts/funnetwork/hosting/jeffw/homepage/sfd.php on line 32
Zitieren
#13
Im ersten PHP-Block machst du drei geschweifte Klammern auf, schließt aber nur zwei.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#14
Danke, habe es verbessert die links werden auch richtig angezeigt doch die divfunktionen wollen nicht funtzen. Im Quelltext werden keine div elemente angezeigt.
Zitieren
#15
Ersetze
PHP-Code:
function div1() {
if (
$i 0) {
   echo 
"<div>";
   }
}
function 
div2() {
if (
$i $anzahl[$a]) {
   echo 
"</div>";
   }

durch:
PHP-Code:
function div1() {
global 
$i;
if (
$i == 0) {
   echo 
"<div>";
   }
}
function 
div2() {
global 
$i$anzahl;
if (
$i == $anzahl[$a]) {
   echo 
"</div>";
   }


Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#16
Die Funktionen müssen die variablen global lesen:
PHP-Code:
function div1() {
global 
$i;
if (
$i 0) {
   echo "<div>";
   }
   }
function 
div2() {
global 
$i,  $anzahl,  $a;
if (
$i $anzahl[$a]) {
   echo "</div>";
   }
   
Da war Michael schneller. Aber bei ihm fehlt $a als globale Variable.
Aber warum willst du unbedingt dein "div" über eine Funktion ausgeben lassen?
Ich habe zudem nur folgende Ausgabe, die glaube ich nicht ist was du willst:
Code:
13:19 dhcppc3:~/phpprojekt > php index.php
<a class="menu" href="startseit.php?page=Startseite">Startseite</a><br>
</div><a class="menu" href="startseit.php?page=about me">about me</a><br>
</div><a class="menu" href="startseit.php?page=Error">Error</a><br>

Edit:
So brauchst du die Funktion garnicht, und bekommst eine Ausgabe wie du sie möchtest.
PHP-Code:
for ($a=0; !empty($menu[$a]); $a++)
{
echo 
"\n<div>\n";
    for ($i 0$i $anzahl[$a]; $i++)
    {
        echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
        echo "\n";
    }
echo 
"\n</div>\n";


Edit2:
Und so kannst du es mit der Funktion machen:
PHP-Code:
function div1() {
   echo "<div>\n";
}
function 
div2() {
   echo "</div>\n";
}

for (
$a=0; !empty($menu[$a]); $a++)
{
div1();
    for ($i 0$i $anzahl[$a]; $i++)
    {
        echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
        echo "\n";
    }
div2();

Die Ausgabe ist dann:
Code:
13:37 dhcppc3:~/phpprojekt > php index.php
<div>
<a class="menu" href="startseit.php?page=Startseite">Startseite</a><br>
<a class="menu" href="startseit.php?page=Guestbook">Guestbook</a><br>
</div>
<div>
<a class="menu" href="startseit.php?page=about me">about me</a><br>
<a class="menu" href="startseit.php?page=meng Klass">meng Klass</a><br>
<a class="menu" href="startseit.php?page=Friends">Friends</a><br>
</div>
<div>
<a class="menu" href="startseit.php?page=Error">Error</a><br>
<a class="menu" href="startseit.php?page=lol">lol</a><br>
</div>

Zitieren
#17
Die ersten div elemte werden richtig gesetzt, die zweiten nicht. Ich habe die divcontainer eingefärbt. klick

Ps: Was bewirkt die Funktion global?
Zitieren
#18
Global bewirkt, das er die variable in einem Globalen zusammenhang sucht. Variablen sind normalerweise nur lokal verfügbar. das heißt, eine Funktion kann keine variablen lesen, die du irgendwo definiert hast, es sei denn in der funktion selber. Mit global kann er auch die anderen lesen.
Siehe auch hier: http://de.php.net/global

Benutzt doch diesen Code:
PHP-Code:
function div1() {
   echo "<div>\n";
}
function 
div2() {
   echo "</div>\n";
}

for (
$a=0; !empty($menu[$a]); $a++)
{
div1();
    for ($i 0$i $anzahl[$a]; $i++)
    {
        echo "<a class=\"menu\" href=\"startseit.php?page=".$menu[$a][$i]."\">".$menu[$a][$i]."</a><br>";
        echo "\n";
    }
div2();

damit sieht es so aus wie du möchtest, wie du in meinem Beitrag davor sehen kannst(eventuell Seite neuladen, der Beitrag wurde mehrfach editiert)

Zitieren
#19
Ok danke vielmals.
Zitieren
#20
Bitte

Zitieren