foreach trennlinie

rflx

Erfahrenes Mitglied
Guten Morgen zusammen,

ich habe eine foreach Schleife für Beiträge/Artikel im CMS. Diese Beiträge/Artikel möchte ich aber mit einer "Trennlinie" separieren. Dazu könnte ich unter dem Include der Darstellung/Artikel ein echo mit entsprechendem HTML beifügen. Das Problem ist jetzt einfach, dass beim letzten Beitrag die Trennlinie nochmals ausgegeben wird (normal).

Nun meine Frage: wie kann ich diese Trennlinie am Schluss entfernen/aufheben?


Frenudliche Grüsse

rflx
 
Versuchs mit substr:
PHP:
//Annahme das deinen Trennlinie ein Bindestrich ist
if(substr($deineAusgabe, -1) == "-"){
    echo substr($deineAusgabe, 0,-1);
}
 
Hallo,
so vielleicht?
PHP:
<?php
    $beitraege = array('Beitrag1', 'Beitrag2', 'Beitrag3', 'Beitrag4', 'Beitrag5');
    $i = 0;
    foreach ($beitraege as $beitrag){
        echo $beitrag.($i < count($beitraege)-1 ? '<hr />' : '');
        $i++;
    }
?>


mfg
forsterm
 
Oh Mann, mit diesem Syntax hab ich noch nie gearbeitet aber wenns das selbe ist wie das:

PHP:
beitraege = array('Beitrag1', 'Beitrag2', 'Beitrag3', 'Beitrag4', 'Beitrag5');
    $i = 0;
    foreach ($beitraege as $beitrag){
        echo $beitrag;
        if($i < $count($beitraege)-1){
            echo "<hr />";
        }
        $i++;
    }

dann dürfte das Funktionieren.
 
Hallo,
Oh Mann, mit diesem Syntax hab ich noch nie gearbeitet aber wenns das selbe ist wie das: [...] dann dürfte das Funktionieren.
genau so ist das......und ja es funktioniert. ;)
In deinem Beispiel ist noch ein kleiner Fehler $count muss nämlich count heißen, da es sich hierbei um die [phpf]count[/phpf] - Funktion handelt.

mfg
forsterm
 
Zuletzt bearbeitet:
Morgen nero_85

Habs versucht, geht aber nicht.

Vielleicht ist es am Besten wenn ich dir die ganze Funktion zur verfügung stelle ;)

Ganze Funktion:
PHP:
function inhalt() {
	//Inhalt definieren
	global $spr1;
	global $unternavi;
	global $id1;
	global $result1;
	
	
	if (!empty($unternavi)) {
	$sqlinhalt = "SELECT * FROM novicomcms_inhalt WHERE naviid = '$unternavi' ORDER BY reihenfolge";
	}
	else {
	$sqlnavi = "SELECT typ FROM novicomcms_navi WHERE id = '$id1'";
	$resultnavi = mysql_query($sqlnavi);
	$datanavi = mysql_fetch_array($resultnavi);
	$navityp = $datanavi['typ'];
	if ($navityp != "guestbook" && $navityp != "gallery" && $navityp != "kontakt" && $navityp != "sponsoren") {
	$sqlinhalt = "SELECT * FROM novicomcms_inhalt WHERE naviid = '$id1' ORDER BY reihenfolge";
	}
	else {
	include "includes/$navityp.php";
	}
	}
	if (!empty($sqlinhalt)) {
	 if (empty($result1)){
	  echo "<span class=\"error\">Noch kein Inhalt vorhanden</span>";
	  }
	  else {
	  $resultinhalt1 = mysql_query($sqlinhalt);
	  while ($dateninhalt1 = mysql_fetch_array($resultinhalt1)) {
	  $id = $dateninhalt1['id'];
	  $titel = stripslashes($dateninhalt1["titel_$spr1"]);
	  $text = stripslashes($dateninhalt1["text_$spr1"]);
	  $text1 = stripslashes($dateninhalt1["text1_$spr1"]);
	  $bild = $dateninhalt1['bild'];
	  $bildlink = $dateninhalt1['bildlink'];
	  $reienfolge = $dateninhalt1['reihenfolge'];
	  $darstellung = $dateninhalt1['darstellung'];
	  $farbe = $dateninhalt1['farbe'];
	  $titelfarbe = "titel".$farbe."";
		
		//text
		preg_match_all("/\[F=([\d]*)\]/si",$text,$arrayDest);
		foreach($arrayDest[1] as $iddokument){ 
		$sql = "SELECT * FROM novicomcms_dateien WHERE id = '$iddokument' ORDER BY name asc";
		$result = mysql_query($sql);
		$data = mysql_fetch_assoc($result);
		$name = $data['name'];
		$dokument = $data['dokument'];
		$symbol = $data['symbol'];
		$text = preg_replace('/\[F='.$iddokument.'\]/si',"<a href=\"upload/daten/$dokument\" target=\"_blank\"><img src=\"admin/symbole/$symbol\" border=\"0\">&nbsp;$name</a>",$text);
		}
		
		//text1
		preg_match_all("/\[F=([\d]*)\]/si",$text1,$arrayDest);
		foreach($arrayDest[1] as $iddokument){ 
		$sql = "SELECT link FROM novicomcms_dateien WHERE id = '$iddokument' ORDER BY name asc";
		$result = mysql_query($sql);
		$data = mysql_fetch_assoc($result);
		$name = $data['name'];
		$dokument = $data['dokument'];
		$symbol = $data['symbol'];
		$text1 = preg_replace('/\[F='.$iddokument.'\]/si',"<a href=\"upload/daten/$dokument\" target=\"_blank\"><img src=\"admin/symbole/$symbol\" border=\"0\">&nbsp;$name</a>",$text1);
		}
		
		$dar = "includes/darstellung$darstellung";
		if (empty($bild)){
		$img = "";
		}
		else {
			if ($darstellung != 2) {
				if (!empty($bildlink)) {
				$img = "<a href=\"$bildlink\" target=\"_blank\"><img src=\"upload/bilder/$bild\" border=\"0\"></a>";
				} 
				else {
				$img = "<img src=\"upload/bilder/$bild\" border=\"0\">";
				}
			}
			else {
				$img = $bild;
			}
			
		}
		include "$dar.php";
		echo "<img src=\"images/hrlinie.gif\" width=\"100%\" height=\"1\" border=\"0\"><br><br>";
		}
	}
	}
}
 
PHP:
	$beitraege = array('Beitrag1', 'Beitrag2', 'Beitrag3', 'Beitrag4', 'Beitrag5');

	$cnt = count($beitraege);

	for($i=1;$i<=$cnt;$i++)	{
		echo $beitraege[$i-1];
		if($i!=$cnt)	{
			echo "<hr />";
		}
	}

Wär n Ansatz. Is allerdings ungetestet.
 
Ich kann hier leider nirgens DIE foreach-Schleife finden in der du das machen willst.

@igäl:
Danke, im eifer des Gefechts übersehen :D
 
Hallo,
so vielleicht:
PHP:
function inhalt() {
    //Inhalt definieren
    global $spr1, $unternavi, $id1, $result1;

    if (!empty($unternavi)){
        $sqlinhalt = 'SELECT * FROM `novicomcms_inhalt` WHERE `naviid` = "'.intval($unternavi).'" ORDER BY `reihenfolge`'; // wenn id keine zahl ist, dann statt intval mysql_real_escape_string verwenden
    } else {
        $sqlnavi = 'SELECT `typ` FROM `novicomcms_navi` WHERE `id` = "'.intval($id1).'"'; // wenn id keine zahl ist, dann statt intval mysql_real_escape_string verwenden
        $resultnavi = mysql_query($sqlnavi) or die(mysql_error());
        $datanavi = mysql_fetch_array($resultnavi);
        $navityp = $datanavi['typ'];
        if ($navityp != 'guestbook' && $navityp != 'gallery' && $navityp != 'kontakt' && $navityp != 'sponsoren') {
            $sqlinhalt = 'SELECT * FROM `novicomcms_inhalt` WHERE `naviid` = "'.intval($id1).'" ORDER BY reihenfolge'; // wenn id keine zahl ist, dann statt intval mysql_real_escape_string verwenden
        } else {
            include 'includes/'.$navityp.'.php';
        }
    }
    if (!empty($sqlinhalt)){
        if (empty($result1)){
            echo '<span class="error">Noch kein Inhalt vorhanden</span>';
        } else {
            $resultinhalt1 = mysql_query($sqlinhalt) or die(mysql_error());
            $eintraege = mysql_num_rows($resultinhalt1); // liefert die Anzahl der Einträge
            $i = 0;
            while ($dateninhalt1 = mysql_fetch_array($resultinhalt1)){
                $id = $dateninhalt1['id'];
                $titel = stripslashes($dateninhalt1['titel_'.$spr1]);
                $text = stripslashes($dateninhalt1['text_'.$spr1]);
                $text1 = stripslashes($dateninhalt1['text1_'.$spr1]);
                $bild = $dateninhalt1['bild'];
                $bildlink = $dateninhalt1['bildlink'];
                $reienfolge = $dateninhalt1['reihenfolge'];
                $darstellung = $dateninhalt1['darstellung'];
                $farbe = $dateninhalt1['farbe'];
                $titelfarbe = 'titel'.$farbe;

                //text
                preg_match_all('/\[F=([\d]*)\]/si', $text, $arrayDest);
                foreach($arrayDest[1] as $iddokument){
                    $sql = 'SELECT * FROM `novicomcms_dateien` WHERE `id` = "'.intval($iddokument).'" ORDER BY `name` asc'; // wenn id keine zahl ist, dann statt intval mysql_real_escape_string verwenden
                    $result = mysql_query($sql) or die(mysql_error());
                    $data = mysql_fetch_assoc($result);
                    $name = $data['name'];
                    $dokument = $data['dokument'];
                    $symbol = $data['symbol'];
                    $text = preg_replace('/\[F='.$iddokument.'\]/si', '<a href="upload/daten/'.$dokument.'" target="_blank"><img src="admin/symbole/'.$symbol.'" border="0" />&nbsp;'.$name.'</a>', $text);
                }

                //text1
                preg_match_all('/\[F=([\d]*)\]/si', $text1, $arrayDest);
                foreach($arrayDest[1] as $iddokument){
                    $sql = 'SELECT `link` FROM `novicomcms_dateien` WHERE `id` = "'.intval($iddokument).'" ORDER BY `name` asc'; // wenn id keine zahl ist, dann statt intval mysql_real_escape_string verwenden
                    $result = mysql_query($sql) or die(mysql_error());
                    $data = mysql_fetch_assoc($result);
                    $name = $data['name'];
                    $dokument = $data['dokument'];
                    $symbol = $data['symbol'];
                    $text1 = preg_replace('/\[F='.$iddokument.'\]/si', '<a href="upload/daten/'.$dokument.'" target="_blank"><img src="admin/symbole/'.$symbol.'" border="0">&nbsp;'.$name.'</a>', $text1);
                }
                
                $dar = 'includes/darstellung'.$darstellung;
                if (empty($bild)){
                    $img = '';
                } else {
                    if ($darstellung != 2) {
                        if (!empty($bildlink)) {
                            $img = '<a href="'.$bildlink.'" target="_blank"><img src="upload/bilder/'.$bild.'" border="0"></a>';
                        } else {
                            $img = '<img src="upload/bilder/'.$bild.'" border="0" />';
                        }
                    } else {
                        $img = $bild;
                    }
                }
                include ($dar.'.php');
                if ($i < $eintraege-1){
                    echo '<img src="http://www.tutorials.de/forum/images/hrlinie.gif" width="100%" height="1" border="0" /><br /><br />';
                }
                $i++;
            }
        }
    }
}
Ich hoffe, ich hab keinen Fehler drinnen, ansonsten einfach Fehlermeldung posten. ;)

mfg
forsterm
 
Zuletzt bearbeitet:
Zurück