2016-10-06 6 views
-1

Ich versuche 100+ Eingabefelder über ein Array in meine Datenbank einzufügen. Das Hauptproblem (und ja, ich weiß, dies ist nicht der sicherste Weg, dies zu tun und dies ist immer noch eine Arbeit in Arbeit) scheint zu sein, dass, wenn das Array in der SQL-Anweisung eingefügt wird, gibt es ein extra "," an der Ende des Abschnitts VALUES(), aber keine Variable mehr, die platziert werden soll.mysqli POST-Werte über Array einfügen

Kurz gesagt, ich brauche einen Weg, um nicht mehr "," nachdem die letzte POST-Variable eingefügt wurde. Irgendwelche Empfehlungen, wie man das macht?

Dank

//DB setting 
include '../../../plugins/MySQL/connect_db.php'; 

// Create connection 
$conn = new mysqli($dbhost,$dbuser,$dbpass,$dbname); 

// Check connection 
if ($conn->connect_error) { 
    $_SESSION["error"] = "DB Connection failed...";  //Error Message 
} 

// clear variables 
$querystring1 = ""; $querystring2 = ""; 

foreach($_POST as $key => $var) { 
    $querystring2 .= "'".$var."',"; $querystring1 .= $key.","; 
} 
$query1 = "(".$querystring1.") VALUES (".$querystring2.")"; 

$sql = "INSERT INTO `qci_modreport` $query1"; 

print $sql; 

if (!$conn->query($sql)) { 
    echo " 
     <div class=\"alert alert-danger alert-dismissible\"> 
      <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button> 
      <h4><i class=\"icon fa fa-ban\"></i> Error!</h4> 
      There was an error while excuting this query.<br /> 
      (" . $conn->errno . ") " . $conn->error . " 
      </div>"; 
} else { 

    echo " 
     <div class=\"alert alert-success alert-dismissible\"> 
      <button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-hidden=\"true\">&times;</button> 
      <h4><i class=\"icon fa fa-check\"></i> Alert!</h4> 
      Success, record updated successfully. Refreshing database now... 
     </div>"; 
    } 

//close connection 
$conn->close(); 
+0

Ja dessen Duplikat aber möchte noch diesen Kommentar schreiben. Sie können $ querystring1 = rtrim ($ querystring1, ','); $ querystring2 = rtrim ($ querystring2, ','); nach vollständiger foreach-Schleife. Es wird deine Lösung haben. –

Antwort

1

überprüfen, ob der erste Schlüssel für setzen die $ query ist vars sonst die anderen Wert hinzufügen

$querystring2 = ""; 
    $querystring1 ""; 

    foreach($_POST as $key => $var) { 
     if (querystring2 == "") { 
      $querystring2 .= "'" . $var ; 
      $querystring1 .= $key ; 
     } else { 
     $querystring2 .= ",'".$var."'"; 
     $querystring1 .= ","$key ; 

     } 
    }