2016-05-04 4 views
1

Ich habe ein Eingabearray, das ich in die Datenbank einfügen möchte. Ich möchte keine Zeile in der Datenbank für jedes Element im Array haben. Ich möchte, dass alle in die gleiche Reihe gehen. Das ist also mein Code:Fügen Sie ein Array zu MySQL-Datenbank mit vorbereitenden PHP-Anweisungen

<?php 
session_start(); 
include('../../config/dbconf.php'); 

mysqli_select_db($conn, $webdb); 

$stmt = $conn->prepare("INSERT INTO changelog (title, type, content, author, post_date) VALUES (?, ?, ?, ?, ?)"); 

$title = $_POST['title']; 
$type = $_POST['type']; 
$change = $_POST['change']; 
$author = $_SESSION['waradmin']; 
$date = time(); 

foreach($_POST['change'] as $key => $value) { 
    $changes = "<li>" . $change[$key] . "</li>"; 
} 

$stmt->bind_param("sissi", $title, $type, $changes, $author, $date); 
if($stmt->execute()) { 
    header('location: ../?p=dashboard'); 
}else{ 
    echo "Error: " . $stmt->error; 
} 

$stmt->close(); 
?> 

Die Abfrage wird in der Datenbank, sondern nur das erste Liste Element aus dem Array ... Muß ich die implodieren Funktion benutzen? Ich habe es nie benutzt, also wenn das die einzige Lösung ist, kann mir jemand zeigen, wie ich das in dieser Abfrage benutze?

Antwort

4

Statt Variablenwert zu ersetzen, Sie haben

$changes = ''; 
foreach($_POST['change'] as $key => $value) { 
    $changes .= "<li>" . $change[$key] . "</li>"; 
} 

verketten Und so ein wenig mehr sauber zu machen:

$changes = ''; 
foreach($_POST['change'] as $value) { 
    $changes .= '<li>' . $value . '</li>'; 
} 
Verwandte Themen