• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Frage zu implode() oder ähnlicher Funktion

Kirschtomate

New member
Hallo,

ich habe ein Formular, dessen Eingabefelder ich via MySQL Abfrage erstelle. Unter anderem beinhaltet das Formular auch Checkboxen:

PHP:
<?php 
$abfrage = "select * from tabelle";
$ergebnis = $db->query($abfrage);
while ($checkbox = $ergebnis->fetch_assoc()) {
 echo '<input type="checkbox" name="checkbox[]" value="' . $checkbox['checkbox_id'] . '">' .  $checkbox['checkbox_name'] . ' | '; 
}
$ergebnis->free();
?>

Als Ergbnis erhalt ich folgende Ausgabe:

□ Checkbox 1 | □ Checkbox 2 | □ Checkbox 3 | □ Checkbox 4 |

Nun möchte ich den letzten Trennstrich entfernen. Kann hierzu implode() verwendet werden oder gibt es eine andere Möglichkeit. Der Code sollte möglichst übersichtlich bleiben.

Schöne Grüße, Kirschtomate
 
Du überprüfst in deiner while-Schleife, ob es der letzte Durchgang ist. Wenn das der Fall ist, fügst du diesen Trennstrich nicht hinzu.
 
Letzter Durchgang prüfen ist bei einer MySQL-Abfrage nervig - ich würde die erste Schleifenausgabe seperat abfragen und den Trennstrick einfach vor das <input> schreiben:
Code:
<?php 
$abfrage = "select * from tabelle";
$ergebnis = $db->query($abfrage);
$first = true;
while ($checkbox = $ergebnis->fetch_assoc()) {
	if (!$first){
		echo "|";
		$first = false;
	}
	echo '<input type="checkbox" name="checkbox[]" value="' . $checkbox['checkbox_id'] . '">' .  $checkbox['checkbox_name']; 
}
$ergebnis->free();
?>
 
Gute Idee, müsste es aber dann nicht so aussehen:

Code:
while ($checkbox = $ergebnis->fetch_assoc()) {
	if (!$first){
		echo " | ";
	}
	echo '<input type="checkbox" name="checkbox[]" value="' . $checkbox['checkbox_id'] . '">' .  $checkbox['checkbox_name']; 
        $first = false;
}
 
Danke für das Beispiel. Mit der Klammersetzung warst du allerdings etwas zu gutmütig, so funktioniert es jetzt ;)

PHP:
<?php 
 $abfrage = "select * from tabelle";
 $ergebnis = $db->query($abfrage);
 $first = true;

 while ($checkbox = $ergebnis->fetch_assoc()) {
    if ($first  == false)  echo " | "; 
    $first = false;
    echo '<input type="checkbox" name="checkbox[]" value="' . $checkbox['checkbox_id'] . '">' . $checkbox['checkbox_name']; 
 }

 $ergebnis->free();
?>
 
Zurück
Oben