2016-10-28 7 views
0

フォームに複数のレコードを読み込むページがあります。私は一度に複数のレコードを更新できるようにしたい。私はここでいくつかのソリューションを試して、通常はちょうど配列を生成し、SQL挿入のための配列を分解することに成功していない。どんな入力も大歓迎です!PHPを使用して複数のSQLレコードを一度に更新する

$formresults = $mysqli->query("THIS QUERY LOADS THE FORMS"); 
    if($formresults){ 
     while($row = $formresults->fetch_object()) 
     { 
      $a += 1; 
      echo "<b>Record Number ".$a."</b><br>"; 
      echo "<table><input type='hidden' name='Barcode[]' value='".$row->Barcode."' />"; 
        echo "<tr><td>Full Name (First Last):</td><td><input type='text' name='Person_Name[]' size='50' value='".$row->Person_Name."' /></td></tr>"; 
        echo "<tr><td>Phone Number:</td><td><input type='text' name='Phone[]' size='50' value='".$row->Phone."' /></td></tr>"; 
        echo "<tr><td>Address:</td><td><input type='text' name='Address1[]' size='50' value='".$row->Address1."' /></td></tr>"; 
        echo "<tr><td>City, State Zip:</td><td><input type='text' name='City[]' size='23' value='".$row->City."' />, <input type='text' name='State[]' size='6' value='".$row->State."' /> <input type='text' name='Zip[]' size='8' value='".$row->Zip."' /></td></tr>"; 
        echo "</table><br><br>"; 

     } 
     } 

     echo "<button type='submit' name='submit' value='UPDATE'/>"; 

if(isset($_POST['submit'])){ 
    if(!isset($_POST['Barcode']) || count($_POST['id']) == 0){ 
     return; 
    } 
    foreach($_POST['Barcode'] as $key => $Barcode){ 
     $update = $mysqli->query("UPDATE table SET  Person_Name='{$_POST['Person_Name'][$key]}' WHERE Barcode='{$Barcode}'"); 

     if($update){ 
     echo "It worked"; 
    } 
    } 
+1

[リトルボビー](http://bobby-tables.com/)*** [スクリプトがSQLインジェクション攻撃のリスクがある。]と言う(のhttp: //stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php**** [prepared](http://en.wikipedia.org/wiki/Prepared_statement)ステートメントについて知る[MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を参照してください。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! [それを信じていない?](http://stackoverflow.com/q/38297105/1011527) –

+0

@JayBlanchardあなたは何度も自分自身を繰り返すのが少し疲れていませんか? xD – icecub

+2

まあ、実際には@icecubはいますが、私はSQLインジェクションが遠い記憶になるまで停止しません! ¯\\ _(ツ)_ /¯ –

答えて

0

残念私は馬鹿です - 私の人生の6時間は私の頭が机の上を突っ込んでいたことがわかりました。

if(!isset($_POST['Barcode']) || count($_POST['id']) == 0){ 

であるべき

if(!isset($_POST['Barcode']) || count($_POST['Barcode']) == 0){ 
+0

[空]($ _ POST ['Barcode')){'空き($ _ POST ['Barcode')) –

関連する問題