开发者

php json array problems

开发者 https://www.devze.com 2023-02-07 21:25 出处:网络
I am creating a json array in PHP like this (it\'s inside a class): $STH = $DBH->query(\"SELECT ID,title,content FROM table WHERE ID= \'\".$ID.\"\' \");

I am creating a json array in PHP like this (it's inside a class):

$STH = $DBH->query("SELECT ID,title,content FROM table WHERE ID= '".$ID."' ");
$querycount = $STH->rowCount();
if($querycount!=0):
    $STH->setFetchMode(PDO::FETCH_OBJ); 
    while( $row = $STH->fetch()) :
        $thread[$row->ID]['title'] = $row->title;
        $thread[$row->ID]['content'] = $row->content;
    endwhile;
    $this->querycount = $querycount;
    $this->thread = json_encode($thread);
 else:
    $this->querycount = $querycount;
 endif;

But I seem to get "strange" decodes the other end. I cannot actually reference the array by key's;

So far it will let me do this: (Where af_threads is the class name and $key id the ID in the table query)

$threads = new af_threads($key,$DBH);
$threads = json_decode($threads->thread); 
foreach($threads as $key1=>$thread): 
    foreach($thread as $key2=>$val):  
        echo $key2; 
        echo $val; 
    endforeach;
    echo '<hr />';
endforeach;

But what it will not let me do is something like this

$threads[$key]['title']

I'm not sure why. As the class builds i.e. with more rows etc. I will need to call specific rows in specific places. i.e. $threads[$key]['newrow'], $threads[$key]['newrow2'], and or to manipulate a row with say substr(); etc.

Yes I know I could ju开发者_如何学Pythonst echo out an array without json, but eventually I want to add cross domain functionality with JQuery getJSON() ...

Have I got it all wrong?


By default, json_decode() returns stdClass, modify second line with

$threads = json_decode($threads->thread, true)

and you will get an associative array and be able to reference it by keys, $threads[$key]['title'] for example.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号