Php mysql fetch在每行的开头添加行号

时间:2015-03-20 23:02:26

标签: php mysql sql json

这是我的PHP代码:

 $query = Select * from tablename;
 $result = mysql_query($query) or die((mysql_error()));
 $count = 0;
 if (mysql_num_rows($result) > 0){


   while( $row = mysql_fetch_array($result)){


      $json_output[$count]=$row;

      $count ++;

   }


}


 $output = json_encode($json_output);

 $output = str_replace('[{', '{', $output);
 $output = str_replace('}]', '}', $output);

 echo $output;

这是我的php输出的一部分:

 {"0":{"0":"2","Gi_Id":"2","1":"sample_name.jpg","Gi_nome_file":"sample_name.jpg","2":"sample_name","Gi_Pseudonimo":"s. name","3":"sample name","

如你所见,有标签" 0"," 1" ," 2"等代表我的sql表的列号(" 0"对于Gi_Id," 1"对于Gi_nome_file等)。 为什么会出现这种重复? 在Probally我可以管理此输出而忽略重复的单个单元格值,但我想要解决如何修复它。

我认为问题出在我的代码行中:

 $json_output[$count]=$row;

但是我找不到另一种获取所有表格数据的方式。

有什么建议吗?

修改

使用mysql_fetch_assoc我没有副本,但仍然是每行开头的数字,我的输出如下:

{"0":{"Gi_Id":"2","Gi_nome_file":"sample_name.jpg","Gi_Pseudonimo":"s. name", 

,对于第2行,我有:

{"1":{"Gi_Id":"3","Gi_nome_file":"sample_name.jpg","Gi_Pseudonimo":"s. name", 

并且对于第3行,我有:

{"2":{"Gi_Id":"4","Gi_nome_file":"sample_name.jpg","Gi_Pseudonimo":"s. name", 

...

和行号n我有:

{"n":{"Gi_Id":"n+1","Gi_nome_file":"sample_name.jpg","Gi_Pseudonimo":"s. name", 

等 我想删除     {" 0":,{" 1":,{" 2":,{" 3": 在每一行的开头,我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

我解决了我的问题:

这是解决方案:

 $result = mysql_query($query) or die((mysql_error()));

$ json_output = array(); $ count = 0;

$ response [“Prova”] = array(); if(mysql_num_rows($ result)> 0){

while( $row = mysql_fetch_assoc($result)){


    $json_output[$count]=$row;

    // push single rating into final response array


    $count ++;

}

array_push($response["Prova"], $json_output);


}

//alla fine aggiungo il tag di successo
$json_output["success"] = 1;

$output = json_encode(array($response));
//rimuovo le parentesi graffe per far si che non mi dia problemi con il json di android
$output = str_replace('[{', '{', $output);
$output = str_replace('}]', '}', $output);

echo $output;