2017-01-31 5 views
0
  • 私はAJAXでPHPスクリプトに配列を渡し、json_decode()を使用してPHPで配列をデコードしました。
  • 私は現在、foreachループを使用して配列から各値を取得しようとしています。それを使用してデータベーステーブルの正しいIDを参照し、最後にデータベースの「アーカイブ」列の値を更新します。その同じ行は '1'にな​​ります。
  • データベースを更新しようとするたびにエラーが発生します。

$ _POSTデータは次のようになりますデコードされたjson配列をidsカラムとして使用してMySQLを更新する

(
    [data] => ["1","2","3","4"] 
) 

復号アレイは次のようになります

各値Iが更新したい行のIDを表し
Array 
(
    [0] => 1 
    [1] => 2 
    [2] => 3 
    [3] => 4 
) 

MySQLテーブルの中にあります。現時点では

<?php 

//Report all PHP errors 
error_reporting(-1); 

$username="username"; 
$password="password"; 
$database="tgpgigs"; 

//Connect to database 
$conn = new mysqli(localhost, $username, $password, $database); 

//Check connection 
if ($conn->connect_error) { 
    die("Failed to connect to MySQL: " . $conn->connect_error); 
} else { 
echo "Connected to db"; 
} 

//OUTPUT POST DATA 
$array = $_POST['data']; 

//CHECK DATA 
$deData = json_decode($array); 
print_r($deData); 

//UPDATE MySQL 
foreach($deData as $key => $value) { 
    echo $value; 
    $upSQL = "UPDATE gigdata SET archived='1' WHERE id='".$value."'"; 
} 

は、foreachループが正しく、各$の値をエコーされますが、データベースにそれらを更新中なし喜び:

は、ここに私のPHPスクリプトです。事前に助けてくれてありがとう。

答えて

0
このようなあなたのforeachのサイクルを変更

:私はあなたを助けることを願ってい

foreach($deData as $key => $value) { 
    echo $value; 
    $upSQL = "UPDATE gigdata SET archived='1' WHERE id='".$value."'"; 
    $conn->query($upSQL); 
} 

+0

私はそれを数時間続けてきました。: ありがとうございました! – jonhendrix

+0

あなたは大歓迎です:) – user1078685

関連する問題