Fritz: Mehrere Einträge auf einmal speichern?

Guten Morgen,

meine Freundin nervt mich schon seit Tagen mit einem Wunsch. Keine Ahnung ob dieser überhaupt umsetzbar ist.

Folgendes: Zu jedem Beitrag kann man Tags hinterlegen. Diese speichere ich so ab

if(isset($_POST['abschicken'])){
    
  if ($stmt = $mysqli->prepare("INSERT INTO tags (kategorie, sid, titel) VALUES (?, ?, ?)")) { 
	    
      $kategorie  = "artikel";
      $sid        = $_GET["artikel"];
      $titel  	  = $_POST["titel"];      
	      
      $stmt->bind_param("sss", $kategorie, $sid, $titel);
      $stmt->execute();
      }
      else {
	 echo $mysqli -> error;     
	}
}

Nun möchte sie in das Eingabefeld mehrere Wörter eintragen, die durch ein , getrennt sind. Habe ich irgendwie die Möglichkeit diese alle samt zu speichern allerdings so, dass jeder Eintrag weiterhin als einzelner Eintrag in der Tabelle vorhanden ist?

  1. Tach!

    Nun möchte sie in das Eingabefeld mehrere Wörter eintragen, die durch ein , getrennt sind. Habe ich irgendwie die Möglichkeit diese alle samt zu speichern allerdings so, dass jeder Eintrag weiterhin als einzelner Eintrag in der Tabelle vorhanden ist?

    Ja klar. Es gibt die Möglichkeit, Strings an bestimmten Zeichen zu zerlegen, überflüssige Leerzeichen an Stringanfängen und -enden zu entfernen und es gibt Schleifen.

    dedlfix.

  2. Du brauchst das ->bind() ... ->execute() ja nur in einer foreach()-Schleife über das Ergebnis von explode() ausführen lassen - dafür sind Prepared Statements ja unter anderem sogar gemacht. Musst du dann auf der anderen Seite nur wieder per array_to_string(array_agg()) zusammenführen lassen.