Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Element x mal in einer While Schleife anzeigen lassen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Element x mal in einer While Schleife anzeigen lassen

    Hey Leute,

    folgendes Problem: ich habe eine MYSQL Abfrage in einer While Schleife mit Limit 5.

    Folgendes wird mir logischerweise ausgegeben:

    ////////////////////////////////////////
    ITEM1
    ITEM2
    ITEM3
    ITEM4
    ITEM5
    /////////////////////////////////////////

    Jetzt möchte ich jedoch eine Werbeanzeige in dieser While-Schleife einsetzten.

    Logischerweise wird mir das ausgegeben:
    ////////////////////////////////////////
    ITEM1
    Werbeanzeige
    ITEM2
    Werbeanzeige
    ITEM3
    Werbeanzeige
    ITEM4
    Werbeanzeige
    ITEM5
    Werbeanzeige
    /////////////////////////////////////////

    Jedoch möchte ich, dass die Werbeanzeige nicht unter jedem ITEM angezeigt wird, sondern nur unter den ersten beiden ITEMS.

    ////////////////////////////////////////
    ITEM1
    Werbeanzeige
    ITEM2
    Werbeanzeige
    ITEM3
    ITEM4
    ITEM5
    /////////////////////////////////////////

    Mein Code:

    PHP-Code:
    $abfrage "SELECT * FROM tab WHERE ORDER BY datum DESC LIMIT 5";
    $ergebnis mysql_query($abfrage);
    while(
    $row mysql_fetch_object($ergebnis))
        {
    echo 
    'ITEM'.$row->id.'';
       } 
    Denke ich habe es gut geschildert
    Gruß

  • makavelo
    antwortet
    tatsächlich, ein <br> hat es geregelt

    Vielen Dank!!!

    Einen Kommentar schreiben:


  • VPh
    antwortet
    Werden wirklich Zeilenumbrüche eingefügt?
    PHP-Code:
    echo 'ITEM'.$row->id.''
    3 unnötige Zeichen

    Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
    Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
    Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm

    Einen Kommentar schreiben:


  • makavelo
    antwortet
    Hey,

    vielen Dank!

    Komischerweise gibt er mir jetzt das aus:

    ///////////////////////////////////
    ITEM1
    Werbeanzeige Werbeanzeige
    ITEM2
    ITEM3
    ITEM4
    ITEM5
    //////////////////////////////////

    Also anstatt unter den ersten beiden Items, setzt es einfach 2 mal unter das erste Item.

    Mein Code:
    PHP-Code:
    $I 0;
    $abfrage "SELECT * FROM tab WHERE ORDER BY datum DESC LIMIT 5";
    $ergebnis mysql_query($abfrage);
    while(
    $row mysql_fetch_object($ergebnis))
        {
    echo 
    'ITEM'.$row->id.'';

    if(
    $I 2) {
    echo 
    'Werbeanzeige';
    $I++;
    }
       } 
    Mögliche Ursachen?

    Gruß

    Einen Kommentar schreiben:


  • Donevan2
    antwortet
    Also sowas in der Art..

    PHP-Code:
    $I 0;
    while(
    $row = ...) {
    ... 
    //Das ITEM
    if($I 2) {
    ... 
    //Die Werbung
    $I++;
    }
    //IF End
    }//WHILE End 
    Im ersten Durchlauf der Schleife wird I = 1, danach wird I = 2, also ab dem 3. Durchlauf die IF-Abfrage nicht mehr ausgeführt. Die Werbung kommt also 2x jeweils hinter dem ITEM.

    Einen Kommentar schreiben:


  • micha140182
    antwortet
    Hallo,

    du definierst dir eine Zählervariable mit dem Wert 0. Beispielsweise $a
    Dann beginnt deine Schleife und du zählst deine Variable hoch ($a++).
    Dann eine if Abfrage ob dein Zähler 1 oder 2 ist. Wenn ja. dann führst du die Anweisung fürs Werbebanner aus und ansonsten nicht.

    Einen Kommentar schreiben:


  • makavelo
    antwortet
    Hey,
    vielen Dank!

    irgendwie fehlt mir da der Anschluss, die Anzahl der Werbeanzeigen(2) muss ich ja vor der While-Schleife Deklarieren also:
    PHP-Code:
    $ad_code 2
    In der While Schleife dann quasi "+1 rechnen, bis 2 erreicht wurde, sonst nichts"

    Gedankengang richtig so?

    Gruß

    Einen Kommentar schreiben:


  • VPh
    antwortet
    Setz ne Variable die die Schleifendurchläufe zählt.

    Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
    Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
    Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm

    Einen Kommentar schreiben:

Lädt...
X