Jump to content

Recommended Posts

I have a simple ajax that passes data to a php script using jquery serialize. This is working good but where I am getting stuck is trying to pass json array into mysql. The json is outputting the correct data, but when I insert into db, it just says Array in the field. How can I convert(if that is the right term) json array to use in mysql. In the code I have posted, $box is an array from jquery which I normally use foreach to loop through array. What I need to do is convert $box after is has been encoded. Thanks

 

$box = $_POST['BRVbrtrv_boxnumber'];

$list = array("activity" => $activity, "mobile" => $mobile, "company" =>
$company, "authorised" => $authorised, "service" => $service, "department" =>
$department, "address" => $address, "boxcount" => $boxcount, "box" => $box);

$c = json_encode($list);

echo $c;

Link to comment
https://forums.phpfreaks.com/topic/246957-pass-json-array-to-mysql-help/
Share on other sites

this then displays

a:9:{s:8:"activity";s:13:"Box Retrieval";s:6:"mobile";s:21:"Submitted from mobile";s:7:"company";s:4:"DEMO";s:10:"authorised";s:4:"DEMO";s:7:"service";s:8:"standard";s:10:"department";s:4:"DEMO";s:7:"address";s:32:"28 mile end road  london e1 7yu";s:8:"boxcount";s:1:"2";s:9:"boxnumber";a:2:{i:0;s:3:"rrr";i:1;s:3:"eee";}}.

 

how do i take that data and use it to insert into db? Thanks

this then displays

a:9:{s:8:"activity";s:13:"Box Retrieval";s:6:"mobile";s:21:"Submitted from mobile";s:7:"company";s:4:"DEMO";s:10:"authorised";s:4:"DEMO";s:7:"service";s:8:"standard";s:10:"department";s:4:"DEMO";s:7:"address";s:32:"28 mile end road  london e1 7yu";s:8:"boxcount";s:1:"2";s:9:"boxnumber";a:2:{i:0;s:3:"rrr";i:1;s:3:"eee";}}.

 

how do i take that data and use it to insert into db? Thanks

insert the data into your db how you would normally insert a string.. then when you are ready to call that data.. use unserialize to display the data in its proper format..

Is this what you need? Thanks

 

<pre>Array
(
    [activity] => Box Retrieval
    [mobile] => Submitted from mobile
    [company] => DEMO
    [authorised] => DEMO
    [service] => standard
    [department] => DEMO
    [address] => 28 mile end road   london e1 7yu
    [boxcount] => 2
    [boxnumber] => Array
        (
            [0] => ttt
            [1] => fff
        )

)
string(323) "a:9:{s:8:"activity";s:13:"Box Retrieval";s:6:"mobile";s:21:"Submitted from mobile";s:7:"company";s:4:"DEMO";s:10:"authorised";s:4:"DEMO";s:7:"service";s:8:"standard";s:10:"department";s:4:"DEMO";s:7:"address";s:32:" mile end road   london e1 7yu";s:8:"boxcount";s:1:"2";s:9:"boxnumber";a:2:{i:0;s:3:"ttt";i:1;s:3:"fff";}}"
</pre>

From the looks of it, you shouldn't have a problem inserting into a database. Escape it with mysql_real_escape_string(), as you would with any string data and make sure the field into which you're inserting it is of the proper type/size. If it's still a problem, post the code from the point where that data is taken from the form, through the INSERT query.

I am using jquery to send the data through ajax.

 

for(var i = 0;i < $(this).val();i++) {
   $("#BRVbrtrv_boxnumber").append('<div data-role="fieldcontain"><label for="BRVbrtrv_boxnumber" class="ui-input-text">Enter box ' + (i + 1) + ' number:</label><input type="text" name="BRVbrtrv_boxnumber['+i+']" id="BRVbrtrv_boxnumber['+i+']" class="BRV_boxnumber ui-input-text ui-body-null ui-corner-all ui-shadow-inset ui-body-c" /></div>')
      }

json_encode() handles a multidimensional array just fine, as demonstrated by the output the OP posted previously. The problem has to be in the insert. Post all of the relevant code.

json_encode() handles a multidimensional array just fine, as demonstrated by the output the OP posted previously. The problem has to be in the insert. Post all of the relevant code.

I thought so too, however the OP's code is simple so im not sure why it is being inserted as an array still..

OP can you post the relevant insertion code please

here you go. sorry for the delay. Thanks

 

$query = 'INSERT INTO `act` (`service`, `activity`, `department`, `company`,  `address`, `user`, `item`, `destroydate`, `date`, `notes`, `new`)
         VALUES (\''.$service.'\', \''.$activity.'\', \''.$department.'\', \''.$company.'\', \''.$address.'\', \''.$authorised.'\', \''.strtoupper($box).'\', NULL, NOW(), \''.$mobile.'\', \''.$new.'\');';
mysql_query($query) or die('Error, query failed');

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.