Tomster: keine doppelten Bilder

Erstmal Sorry für die Themenbeschreibung! wusste nicht wie ich es beschreiben soll.

Also, ich habe nur sehr bedingt Ahnung von PHP und bräuchte mal eure Hilfe bei der Bewältigung eines "kleinen" Problemes:

Ich habe hier eine Funktion bekommen, welche mir, in diesem Beispiel, Tore einer Gastmannschaft anzeigt und wenn vorhanden, wird auch ein Spielerbild angezeigt. In einem Formular werden die Daten alá
1:0;Tom Baier;
2:0;Ralf Kuba
eingetragen. Also es muss immer dieser Trenner ";" vorhanden sein nach dem Ergebnis um den folgenden Spielernamen zu lesen und dann zu schauen ob ein Spielerbild mit dem Namen vorhanden ist. Dann muss ich nach dem Spielernamen wieder den Trenner einfügen (wenn es mehrere Torschützen gibt), damit auch bei dem nächsten Eintrag nach dem Spielerbild gesucht wird.

$TsGast = split(',', $Gast);
   foreach($TsGast as $val)
   {
     $val = trim($val);
     $link = 'img/'.$val.'.jpg';
  if(file_exists($link)) {
   $link = 'img/'.$val.'.jpg';
   $link = ersetzen($link);
      $TsGastStr = $TsGastStr.'<img src="'.$link.'"> '.$val;
  } else {
   $link = 'img/'.$val.'.gif';
   if(file_exists($link)) {
    $link = 'img/'.$val.'.gif';
    $link = ersetzen($link);
       $TsGastStr = $TsGastStr.'<img src="'.$link.'"> '.$val;
   } else {
    $TsGastStr = $TsGastStr.' '.$val;
   }
  }
   }

Nun wollte ich noch vor dem Spieler immer ein Bild einfügen mit der Variable $torbild, welches ein kleines Symbol mit einem ball ist.

$TsGast = split(',', $Gast);
   foreach($TsGast as $val)
   {
     $val = trim($val);
     $link = 'img/'.$val.'.jpg';
  if(file_exists($link)) {
   $link = 'img/'.$val.'.jpg';
   $link = ersetzen($link);
      $TsGastStr = $TsGastStr.$torbild.'<img src="'.$link.'"> '.$val;
  } else {
   $link = 'img/'.$val.'.gif';
   if(file_exists($link)) {
    $link = 'img/'.$val.'.gif';
    $link = ersetzen($link);
      $TsGastStr = $TsGastStr.$torbild.'<img src="'.$link.'"> '.$val;
   } else {
    $TsGastStr = $TsGastStr.' '.$torbild.$val;
   }
  }
   }

Nun wird aber wenn es mehrere Torschützen gibt, siehe oben, durch den Trenner ";" immer zwei kleine Bildchen angezeigt. Vor dem Spielernamen und dahinter auch.

Hoffe ich habe es ein wenig verständlich erklärt und hoffe das mir jemand einen Tipp geben kann was da falsch ist. Oder ist diese Funktion allgemein nicht richtig?

Gruß Tom

  1. Hi Tom,
    oder soll ich Dich chris nennen? *SCNR*, kam mir so bekannt vor...

    Nun wollte ich noch vor dem Spieler immer ein Bild einfügen mit der Variable $torbild, welches ein kleines Symbol mit einem ball ist.

    $TsGast = split(',', $Gast);
       foreach($TsGast as $val)
       {
         $val = trim($val);
         $link = 'img/'.$val.'.jpg';
      if(file_exists($link)) {
       $link = 'img/'.$val.'.jpg';
       $link = ersetzen($link);
          $TsGastStr = $TsGastStr.$torbild.'<img src="'.$link.'"> '.$val;
      } else {
       $link = 'img/'.$val.'.gif';
       if(file_exists($link)) {
        $link = 'img/'.$val.'.gif';
        $link = ersetzen($link);
          $TsGastStr = $TsGastStr.$torbild.'<img src="'.$link.'"> '.$val;
       } else {
        $TsGastStr = $TsGastStr.' '.$torbild.$val;
       }
      }
       }

    Nun wird aber wenn es mehrere Torschützen gibt, siehe oben, durch den Trenner ";" immer zwei kleine Bildchen angezeigt. Vor dem Spielernamen und dahinter auch.

    Ja, das hast Du so programmiert. $torbild brauchst Du nur in dem letzten else-Zweig.
    So wie Du es gemacht hast, setzt Du das Bildchen ja in jedem Fall, ob der aktuelle
    Array-Value jetzt ein Spielername oder ein Spielstand ist.
    LG

    1. Hi Tom,
      oder soll ich Dich chris nennen? *SCNR*, kam mir so bekannt vor...

      Nein brauchst du nicht, weil ich es mir aus diesem Beitrag kopiert habe und bei mir auch eingebaut habe. Nur wollte ich nicht bei diesem Beitrag weitermachen, weil der so weit unten ist und da dann evtl. keiner mehr antwortet, verstehst du?

      Ja, das hast Du so programmiert. $torbild brauchst Du nur in dem letzten else-Zweig.

      Ich habe doch das nicht programmiert! Dazu bin ich doch zu...?!
      Habe es auch nur im letzten else zweig drin gehabt, funkioniert aber auch nicht so wie ich will, weil er nach jedem "Trenner" das bild einfügt. Heißt also, wenn der eintrag so aussieht: 1:0;Tom Müller; dann sieht es so aus mit Bild aus: Bild-1:0 Tom Müller-Bild

      Danke

      1. Und was hast du mein Wink mit dem Zaunpfahl, also GAG gesehen bzw. bemerkt?

      2. Hi Tom,

        Nein brauchst du nicht, weil ich es mir aus diesem Beitrag kopiert habe und bei mir auch eingebaut habe. Nur wollte ich nicht bei diesem Beitrag weitermachen, weil der so weit unten ist und da dann evtl. keiner mehr antwortet, verstehst du?

        Du weißt aber, wie die Mods hier gerne mal auf Doppelpostings reagieren?

        Ich habe doch das nicht programmiert! Dazu bin ich doch zu...?!

        Dann wird es Zeit für einen Blick ins Manual

        Habe es auch nur im letzten else zweig drin gehabt, funkioniert aber auch nicht so wie ich will, weil er nach jedem "Trenner" das bild einfügt. Heißt also, wenn der eintrag so aussieht: 1:0;Tom Müller; dann sieht es so aus mit Bild aus: Bild-1:0 Tom Müller-Bild

        Nein, nicht nach jedem. Sonst würde daraus Bild-1:0-Bild-Tom Müller-Bild
        Lass Dir das ganze Array mal mit print_r ausgeben, dann siehst Du auch warum.
        Kleiner Tipp noch: da Du keinen regulären Ausdruck brauchst, nutze explode, statt split.

        LG

        1. Habe es auch nur im letzten else zweig drin gehabt, funkioniert aber auch nicht so wie ich will, weil er nach jedem "Trenner" das bild einfügt. Heißt also, wenn der eintrag so aussieht: 1:0;Tom Müller; dann sieht es so aus mit Bild aus: Bild-1:0 Tom Müller-Bild

          Nein, nicht nach jedem. Sonst würde daraus Bild-1:0-Bild-Tom Müller-Bild
          Lass Dir das ganze Array mal mit print_r ausgeben, dann siehst Du auch warum.
          Kleiner Tipp noch: da Du keinen regulären Ausdruck brauchst, nutze explode, statt split.

          LG

          Hallo danke Dir erstmal, aber wie gesagt ich verstehe nur Bahnhof. Wenn ich es so mache wie oben beschrieben, dass die Eingabe so erfolgt:

          1:0;Tom Müller;
          2:0;Tom Müller;
          3:0;Tom Müller

          Dann erfolgt die Ausgabe so:

          Bild-1:0 Tom Müller-Bild
          2:0 Tom Müller-Bild
          3:0 Tom Müller

          Also ich kann es ehrlich nicht verstehen und weiß nicht was du meinst. Kannst du es evtl. etwas verständlicher ausdrücken? Es verändert auch nicht wenn ich explode benutzte...

          Trotzdem Danke für deine Hilfe

          1. Hi,

            Hallo danke Dir erstmal, aber wie gesagt ich verstehe nur Bahnhof.

            Bitte schön, aber wie gesagt, da hilft ein Blick ins Manual
            (...und so ein kleines Script ist doch quasi wie geschaffen für den Einstieg...)

            »»Wenn ich es so mache wie oben beschrieben, dass die Eingabe so erfolgt:

            1:0;Tom Müller;
            2:0;Tom Müller;
            3:0;Tom Müller

            Dann erfolgt die Ausgabe so:

            Bild-1:0 Tom Müller-Bild
            2:0 Tom Müller-Bild
            3:0 Tom Müller

            Sieht doch schon ganz gut aus, die Zeilenumbrüche stimmen halt nicht.

            »»Es verändert auch nicht wenn ich explode benutzte...

            Sollte es auch nicht, split benutzt man, wenn man einen String anhans eines regulären
            Ausdruckes splitten will. Du hast ja nur ein Trennzeichen. Das mit split zu
            machen ist quasi mit Kanonen auf Spatzen schießen.

            LG

            1. Bitte schön, aber wie gesagt, da hilft ein Blick ins Manual
              (...und so ein kleines Script ist doch quasi wie geschaffen für den Einstieg...)

              Ja schon, aber nach was soll ich denn da gucken, wenn ich nicht weiß was ich machen soll? Da steht alles über php drin...

              »»Wenn ich es so mache wie oben beschrieben, dass die Eingabe so erfolgt:

              1:0;Tom Müller;
              2:0;Tom Müller;
              3:0;Tom Müller

              Dann erfolgt die Ausgabe so:

              Bild-1:0 Tom Müller-Bild
              2:0 Tom Müller-Bild
              3:0 Tom Müller

              Sieht doch schon ganz gut aus, die Zeilenumbrüche stimmen halt nicht.

              Doch schon. Wenn ich nämlich die Eingabe so mache (oder wie meinst du?):
              1:0;Tom Müller
              ;2:0;Tom Müller
              ;3:0;Tom Müller

              Dann bekomme ich das:
              Bild-1:0-Bild-Tom Müller
              Bild-2:0-Bild-Tom Müller
              Bild-3:0-Bild-Tom Müller

              Also irgendwie kapier ich das nicht...