这是我的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": 在每一行的开头,我怎么能这样做?
答案 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;