Maetzzen: Problem mit Leerzeichen im name-Attribut

Beitrag lesen

Hallo zusammen,

ich möchte eine Oberfläche erstellen, mit der ich Datensätze aus einer Datenbank auswählen und löschen kann.

Vorgestellt habe ich mir das so:

$sql = "SELECT * FROM fragebogen";
    
    $result = mysqli_query($c, $sql);
    
    $namen = array();
    
    while ($row = mysqli_fetch_array($result)){
    $namen[] = $row['titel'];
    }
    
    echo "<form name='f' method='post' action='Loeschen.php'>";
    foreach ($namen as $i){
    echo "<input type=checkbox name=$i />" .$i ."<br>";
    }
    echo "<input type='submit' name='löschen' value='löschen' /></form>";
    
    
    foreach ($namen as $p){
    if (isset($_POST[$p])){
    
    $delete = "DELETE FROM Fragebogen WHERE titel='$p'";
    mysqli_query($c, $delete);
    echo "<big>$p</big> wurde gelöscht <br>";
    
    }
    }

Die Datensätze werden selektiert und in einem Array gespeichert. Für jeden Datensatz soll eine Checkbox mit Name=Titel generiert werden. Beim submit werden alle gewählten Datensätze gelöscht.

Nun zu meiner Frage:

Das Beispiel funktioniert, jedoch nur wenn der Titel des Fragebogens keine Leerzeichen enthält.

Sind Leerzeichen enthalten, wird der Teil

    if (isset($_POST[$p])){
    
    $delete = "DELETE FROM Fragebogen WHERE titel='$p'";
    mysqli_query($c, $delete);
    echo "<big>$p</big> wurde gelöscht <br>";
    
    }
    }

nicht ausgeführt. Kann es sein, dass das "Name"-Attribut der Checkbox nicht richtig nicht den gewünschten Wert annimmt?

Vielen Dank im Voraus für eure Hilfe!

Gruß Maetzzen