Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_match in while schleife

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • preg_match in while schleife

    Hallo,

    eine schleife liest mir einen content aus einer datenbank.
    der string $content enthaelt bilder, welche ich mit preg_match innerhalb der schleife rausfilter im dritten argument speicher und dann mit einer foreach() zur ausgabe vorbereite.
    das klappt soweit.
    allerdings, in der ausgabe, welche innerhalb der schleife erfolgt, werden die aufbereiteten bilder der aktuellen schleife in die nächste while schleife mitgenommen und angezeigt, will sagen, die bilder des vorangegengenden schleifendurchlaufs summieren ich in der nächsten schleife, und zwar so:

    schleife 0, content hat bild 1 $imagen_hyper in der ausgabe -> bild 1
    schleife 1 , content hat bild 2 und 3 $imagen_hyper in der ausgabe -> bild 1, bild 2, bild 3


    WARUM???

    PHP-Code:
    ...
    $sql_hyper_news=mysql_query("SELECT
    id, asunto, DATE_FORMAT(datum,'%d.%m.%Y') AS datum, content
    FROM news ORDER BY datum"
    );
    echo 
    mysql_error();
    while(
    $zeile_hyper_news=mysql_fetch_array($sql_hyper_news,MYSQL_BOTH))
    {
    preg_match('|<img src="/imagen/imagen_news/[^>]+>|',$zeile_hyper_news["content"],$treffer);
    foreach(
    $treffer AS $img_tag)
    {
    $imagen_hyper.= str_replace('>',' width=50px>',str_replace('src="/','src="../',$img_tag)).'&nbsp;';
    }

    echo
    '
    <strong>Modificar mensajes</strong><br><br>
    <div style="
    padding:5px;
    border:solid 1px black;
    margin-bottom:5px;
    width:350px;
    ">
    <strong>ID:</strong> '
    .$zeile_hyper_news["id"].'<br>
    <strong>Asunto:</strong> '
    .$zeile_hyper_news["asunto"].'<br>
    <strong>Escrito en:</strong> '
    .$zeile_hyper_news["datum"].'<br>
    <strong>Imagen/es:</strong><br>'
    .$imagen_hyper.'<hr>
    <div align="right"><a href="admin_news.php">
    modificar</a>&nbsp;&nbsp;&nbsp;&nbsp;
    <a href="">
    eliminar</a></div></div>'
    ;
    }} 
    Danke für jegliche hilfe
    rammi


  • #2
    Hallo,

    Du musst natürlich vor jedem Durchlauf der foreach-Schleife die Variable $imagen_hyper wieder leeren, sonst wird da ja immer weiter angehängt.

    Grüße,
    André

    Kommentar


    • #3
      Zitat von luzip Beitrag anzeigen
      Hallo,

      Du musst natürlich vor jedem Durchlauf der foreach-Schleife die Variable $imagen_hyper wieder leeren, sonst wird da ja immer weiter angehängt.

      Grüße,
      André
      hab ich auch gemacht
      mit unset($imagen_hyper) oder $imagen_hyper=''
      Ergebniss: in schleife 2 wird nun nur noch das erste match angezeigt

      gruss rammi

      Kommentar


      • #4
        leeren hilft auch nicht

        Zitat von luzip Beitrag anzeigen
        Hallo,

        Du musst natürlich vor jedem Durchlauf der foreach-Schleife die Variable $imagen_hyper wieder leeren, sonst wird da ja immer weiter angehängt.

        Grüße,
        André
        hab ich auch gemacht
        mit unset($imagen_hyper) oder $imagen_hyper=''
        Ergebniss: in schleife 2 wird nun nur noch das erste match angezeigt...

        ausserdem verstehe ich nicht, die schleife wird doch neu betreten mit der neuen variable $zeile_hyper_news["content"]...

        gruss rammi

        Kommentar


        • #5
          Multiposting:
          [→] http://phpforum.de/forum/showthread....ile%20schleife
          Bitte lies die Anmerkungen zu Multipostings!


          Themenmoderation:
          [Ω] Thema geschlossen
          Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

          Kommentar

          Lädt...
          X