kostenloser Webspace werbefrei: lima-city


PHP link wird dreifach ausgegeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    h***e

    Hallo ich habe folgendes Problem.
    In meinen menü wird der link dreifach ausgegeben!

    Was ist falsch?

    Also kurze Erklärung:
    Der Link ist in der Datei menue.txt gespeichert und der Text in text.txt!
    <?php
    $abcde = "";
    $ausgabe = "";
    $link = file ('menue.txt');
    
    foreach ($link as $l) {
        $abcde ='<a href="' .$l .'">';
    }
    $zeilen = file ('text.txt');
    for ($i = 0; $i <= 699; $i++) {
    
    foreach ($zeilen as $zeile) {
        echo $abcde .$zeilen[$i] .'</a><br>';
    }   
    }
    ?>


    Beitrag zuletzt geändert: 12.8.2012 17:57:44 von hpage
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ohne die Inhalte von menue.txt und text.txt zu kennen, wird dir hier keiner weiterhelfen können.

    Poste bitte diese zwei Dateien und am besten noch einen Link wo man sich deinen Code in Aktion ansehen kann.

    mfg
  4. Autor dieses Themas

    h***e

    Die beiden Dateien

    meneu.txt
    index.php
    navi.php
    sprache.php


    text.txt
    Startseite
    Navigation
    Sprachassistent


    Beitrag zuletzt geändert: 12.8.2012 19:29:18 von hpage
  5. Die Schleife von 0 bis 699, wofür soll die denn gut sein?

    Hier der Code der (zumindest bei mir) funktioniert:

    <?php
    $abcde = "";
    $ausgabe = "";
    $link = file ('menue.txt');
    
    foreach ($link as $l) 
    {
        $abcde ='<a href="' .$l .'">';
    }
    $zeilen = file ('text.txt');
    foreach ($zeilen as $zeile) 
    {
    	echo $abcde .$zeile .'</a><br>';
    }   
    
    ?>
  6. Autor dieses Themas

    h***e

    syberpsace schrieb:
    Die Schleife von 0 bis 699, wofür soll die denn gut sein?

    Hier der Code der (zumindest bei mir) funktioniert:

    <?php
    $abcde = "";
    $ausgabe = "";
    $link = file ('menue.txt');
    
    foreach ($link as $l) 
    {
        $abcde ='<a href="' .$l .'">';
    }
    $zeilen = file ('text.txt');
    foreach ($zeilen as $zeile) 
    {
    	echo $abcde .$zeile .'</a><br>';
    }   
    
    ?>



    Den Code hatte ich schon vorher ausprobiert jetzt steht der richtige text aber der Link ist dreimal gleich und nicht unterschiedlich


    Die Ausgabe der Webseite
    <div id="menu">

    <a href="sprache.php">Startseite
    </a><br><a href="sprache.php">Navigation
    </a><br><a href="sprache.php">Sprachassistent</a><br></div>

    Beitrag zuletzt geändert: 12.8.2012 20:52:00 von hpage
  7. Logisch dass der Link immer der gleiche ist.
    In der ersten Schleife gehst du zwar alle vorhandenen Links durch, speicherst aber nur den Letzten.
    Du musst also zu jedem Text den entsprechenden Link verwenden.
    Wie genau das geht, darfst du allerdings selbst herausfinden ;-)

    mfg
  8. Versuch es mal mit dem Codeschnipsel, so sollte es funktionieren.

    <?php
    $abcde[] = array();
    $link = file ('menue.txt');
    $zeilen = file ('text.txt');
    $counter = count($link) - 1;
    
    	for($n = 0; $n <= $counter ; $n++) {
    		$links ='<a href="' .$link[$n] .'">';
    		$links .= $zeilen[$n] . '</a><br>';
    		echo $links;
    	}
    ?>


    Mit 2 foreach-Schleifen kannst du die Links nicht benutzen. Die foreach-Schleife läuft immer komplett durch bevor er zur nächsten Schleife weiter springt, dadurch überschreibt die Schleife $abcde immer mit dem Neu erzeugten $abcde.

    Beitrag zuletzt geändert: 13.8.2012 20:05:10 von vctb
  9. Hast du mal ein Bild wie es aussieht? Weil ich denke da können wir dir alle vielleicht besser helfen.
  10. Autor dieses Themas

    h***e

    php-test1 schrieb:
    Hast du mal ein Bild wie es aussieht? Weil ich denke da können wir dir alle vielleicht besser helfen.


    Ein Link ist besser

    So sieht es aus wenn es Dreifache ausgegeben wird
    http://hpage.lima-city.de/testberichte/eee.lo

  11. g****e

    Ich werd jetzt nur mal schnell auf den Fehler hinweisen:
    hpage schrieb:
    <?php
    foreach ($link as $l) {
        $abcde ='<a href="' .$l .'">';
    }

    Hier überschreibst du die Variable immer und immer und immer wieder. Bis der letzte Link kommt, und der bleibt dann stehen. Wenn du dann also deinen String von wegen <a href="test.php"> dadrinnen stehen hast, dann wird das für alle links gleich sein. Du müsstest das ganze am besten in ein Array schreiben und dann die Arrays richtig zusammen bringen.

    Liebe Grüße

    Edit: Verständlicher gemacht

    Beitrag zuletzt geändert: 13.8.2012 20:58:21 von ggamee
  12. Ab dem Post von php-test1 wird nur mehr schon genanntes wiedergekäut.
    Und wie naturfit richtig erkannt hat wurde die richtige Lösung schon von vctb gepostet.

    Damit *closed*

    Bei Rückfragen einfach eine PN an mich.

    mfg
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!