Skip to content Skip to sidebar Skip to footer

Add Additional Objects To Json Encoded Array

I am currently using a JSON encoded array to display the users in my database for an auto-suggest feature. It looks something like this: $sth = mysql_query('SELECT id, name FROM us

Solution 1:

Just keep pushing to the $data array.

$json = array();

    while($row = mysql_fetch_assoc($sth)) {
        $json['name'] = $row['name'];
        $json['id'] = $row['id'];
        $data[] = $json;
    }

$custom = array('name'=>'foo', 'id' => 'bar');
$data[] = $custom;

Then at the very end, do your json_encode. Assuming you're not referring to merging it in the JS itself with multiple ajax calls.

And if you have separate scripts, combine them in one php page.

Solution 2:

Try in this way:-

$temp = json_encode($json);  //$json={"var1":"value1","var2":"value2"}   
$temp=substr($temp,0,-1);
$temp.=',"variable":"'.$value.'"}';

Solution 3:

You could edit the JSON (text), but it's much easier to modify the array before you encode it. Or am I missing something?

Solution 4:

I'm not an expert in any of these fields, but I'll try and see if I can help. Try one of these:

Option 1 (I don't know how unions work in mysql):

$sth = mysql_query("SELECT id, name FROM users union SELECT id, name FROM (SELECT id, title as name from another_table) as T2"); 


    $json = array(); 

        while($row = mysql_fetch_assoc($sth)) { 
            $json['name'] = $row['name']; 
            $json['id'] = $row['id']; 
        }

    $json['name'] = 'A new name';
    $json['id'] = '444';
    $data[] = $json; 

    print json_encode($data);

I've never done PHP, so I'm making assumptions. I've also never used MySql, so there's more assumptions.

Option 2:

$sth = mysql_query("SELECT id, name FROM users"); 


    $json = array(); 

        while($row = mysql_fetch_assoc($sth)) { 
            $json['name'] = $row['name']; 
            $json['id'] = $row['id']; 
        }

$sth = mysql_query("SELECT id, title from another_table"); 


        while($row = mysql_fetch_assoc($sth)) { 
            $json['name'] = $row['title']; 
            $json['id'] = $row['id']; 
        }

    $json['name'] = 'A new name';
    $json['id'] = '444';
    $data[] = $json; 

    print json_encode($data);

Hope this helps.

Post a Comment for "Add Additional Objects To Json Encoded Array"