2011-07-29 11 views
0

にPHPにJSON文字列をパース:JSONKit - 私は、次のスキーマ持っている私のデータベースにMySQLデータベース

:私は私のPHPファイルに次のJSON文字列を渡しています

answerId(PK) auto_inc 
answer 
questionId 

回答

[{"answer":"bnk","questionId":"1"},{"answer":"1","questionId":"2"},{"answer":"b n","questionId":"3"},{"answer":"3","questionId":"4"},{"answer":"rgb","questionId":"5"},{"answer":"No","questionId":"6"},{"answer":"0","questionId":"7"},{"answer":"0","questionId":"8"},{"answer":"0","questionId":"9"},{"answer":"0","questionId":"10"},{"answer":"0","questionId":"11"},{"answer":"0","questionId":"12"},{"answer":"0","questionId":"13"},{"answer":"0","questionId":"14"},{"answer":"3","questionId":"18"},{"answer":"nko","questionId":"19"},{"answer":"hhkl","questionId":"15"},{"answer":"2","questionId":"16"},{"answer":"vnlf hugg","questionId":"17"}] 

これは、$ _POST [ '答え']でPOSTリクエストを介して捕捉されています

if(isset($_POST['submitanswer'])){ 
    $dbh = connect(); 
    $user = $_POST['user']; 
    $entry = $_POST['entryId']; 
    $answers = $_POST['answers']; 
    $answers = json_decode($answers); //decode JSON answers 

    //for loop to iterate through answers ans insert new row into database 
} 

回答配列を反復処理して、回答テーブルに新しい行を挿入するにはどうすればよいですか?

ような何か:

foreach($answers as $row){ 
    $query = "INSERT INTO Answers (answer, questionId) VALUES ($row['answer'], $row['questionId'])"; 
    mysql_query($query); 
} 

答えて

1

このコードで問題が解決しない場合は、この試してみてください。そうしないと

foreach($answers as $row){ 
$query = "INSERT INTO Answers (answer, questionId) VALUES (".$row['answer'].", ".$row['questionId'].")"; 
mysql_query($query); 
} 

に、私はここで何かを見つけることができません。

0

あなたはこれを知っていると思っていますが、接続文字列が正しいことを確認しています。

実際これが私の行うことです。おそらくあなたのための多少の情報、また私はすべてのSQLの連結を行うので、私は簡単にテストのためのフィールドをコメントアウトすることができます。

$Link = mysql_connect($Host , $User , $Password , $DBName); 

if (!$Link) { 
    die('Could not connect: ' . mysql_error()); 
} 



$sql = "insert into table " 
       ."(" 
        ."hashfirstName"."," 
        ."hashfamilyName"."," 
        ."hashemailAddress" 
        .")" 
       ."values (" 
        ."'$firstNameHashed'"."," 
        ."'$familyNameHashed'"."," 
        ."'$emailAddressHashed'" 
        .")"; 

mysql_select_db($DBName , $Link) or die("Database error in insertdata<br>"."Error #" . mysql_errno() . ": " . mysql_error()); 



      if(!mysql_query($sql , $Link)) 
      { 
       $errors['sql'] = $sql; 
       $errors['DBName'] = $DBName; 
       $errors['Link'] = $Link; 
       $errors['status'] = "false"; //There was a problem saving the data; 
       echo json_encode($errors); 
      } 
      else 
      { 
       $errors['status'] = "true"; 
       echo json_encode($errors); 
      }; // if(!mysql_query($DBName , $sql , $Link))