0

Hi I'm trying to insert the json array into my MySQL database. but I have a problem if I insert my Json data and try to insert into my database, display in browser is empty. I dont know how to fix it, please tell me and help me for this.

Here its my json data

[{"id_peneliti":1083,"id_prodi":"4","nama_lengkap":"hasil edit","nama_tampilan":"duplikat","nip":"11111111222222222222","foto_user":"img\/foto\/2b8a1f40237e7f58bf0f7376fc8d5288.jpeg","email":"[email protected]","phone":"+39ry982835982","riwayat_pendidikan":"
sfbvxlkmblfkblkn<\/p>\r\n"}]

here is my parsing json

<?
 $json_url = "http://localhost/location/create_jsoninput.php";
 $json = file_get_contents($json_url);
 $data = json_decode($json,true);

 //Database Connection
mysql_connect("localhost","name","pass") or die(mysql_error());
mysql_select_db("db_name") or die(mysql_error());

    if (foreach ($data as $item)) {
       mysql_query("INSERT INTO tb_database VALUES ('".$item['id_peneliti']."','".$item['id_prodi']."', '".$item['nama_lengkap']."', '".$item['nama_tampilan']."', '".$item['nip']."', '".$item['password']."', 
       '".$item['name']."', '".$item['email']."')");
     mysql_close();
     echo "Data Berhasil Disimpan...";
     }else{
     echo "Data Gagal, Tersimpan...";
     }
?>

Please help me...

4

2 Answers 2

1

You are iterating your data as it was an array, but it is not. Try:

<?
 $json_url = "http://localhost/location/create_jsoninput.php";
 $json = file_get_contents($json_url);
 $data = json_decode($json,true);

 //Database Connection
mysql_connect("localhost","name","pass") or die(mysql_error());
mysql_select_db("db_name") or die(mysql_error());

mysql_query("INSERT INTO tb_database VALUES ('".$data['id_peneliti']."','".$data['id_prodi']."', '".$data['nama_lengkap']."', '".$data['nama_tampilan']."', '".$data['nip']."', '".$data['password']."', 
       '".$data['name']."', '".$data['email']."')");
     mysql_close();
     echo "Data Berhasil Disimpan...";
?>
Sign up to request clarification or add additional context in comments.

1 Comment

still not work... I don't know whats wrong, but the display in my browser just empty. can you help...
0

Edit: try this instead:

if (!is_array($data) || count($data) != 1)
    exit(); // Error handling
$item = $data[0];
mysql_query("INSERT INTO tb_database
    VALUES ('".$item['id_peneliti']."','".$item['id_prodi']."',
    '".$item['nama_lengkap']."', '".$item['nama_tampilan']."',
    '".$item['nip']."', '".$item['password']."',
    '".$item['name']."', '".$item['email']."')");

That should be enough. But you should escape your datas before inserting, or use prepared statements with PDO to prevent SQL injection.

2 Comments

Sorry, my data is an array... so what should I do... the problem is, not display any error that tell me that is work or not and I have check in my database, still not entered new data.
Okay, then, just add $item = $data[0], but you must be sure there's always one element :) If it's still not working, edit your question with the output of var_dump($data).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.