Json的记录显示
问题描述:
<?php require_once('Connections/mycon.php'); ?>
<?php
mysql_select_db($database_mycon, $mycon);
$query_Recordset1 = 'SELECT country.name as country, country_Message.name as Message
FROM country, country_Message
WHERE country.id = country_Message.country_id';
//$Recordset1 = mysql_query($query_Recordset1) or die(mysql_error());
$query_Recordset2='select name from country';
$Recordset2=mysql_query($query_Recordset2) or die(mysql_error());
$json_output=array();
$json_countryoutput=array();
while($mainrow=mysql_fetch_assoc($Recordset2))
{
$json_countryoutput[]=array($mainrow['name']=>$mainrow['name']);
}
mysql_free_result($Recordset2);
$Recordset2=mysql_query($query_Recordset2) or die(mysql_error());
while($mainrow=mysql_fetch_assoc($Recordset2))
{
$Recordset1 = mysql_query($query_Recordset1) or die(mysql_error());
while($row=mysql_fetch_assoc($Recordset1))
{
if(strcmp ($mainrow['name'] , $row['country'])==0)
{
//echo $row['country'];
$json_output[]=array($mainrow['name']=>$row['Message']);
/$json_output[]1=array('country'=>$row['country'],'Message'=>$row['Message']);
}
mysql_free_result($Recordset1);
}
//$json_output=array_merge($json_output, $json_countryoutput);
echo json_encode(array('item'=>$json_output,'country'=>$json_countryoutput));
mysql_free_result($Recordset1);
出认沽:
{ “项目”:[{ “德”: “你好”},{ “德”: “guten摩根” },{“German”:“gute Nacht”},{“English”:“Hello”},{“English”:“早上好”},{“English”:“晚安”},{“French” “bonjour”},{“French”:“bonne nuit”},{“French”:“bonjour”}],“country”:[{“German”:“German”},{“English” },{“French”:“French”}]}
我想改变基本我有di我希望显示所有记录: {“German”:[{“hello”},{“gutton Morgan”}],“English”:[{“”},{“”}]“法国“:[{”“},{”“}]}
答
我真的不知道,如果我明白你试图正确,但也许这可能帮助:
$recordSet = mysql_query($queryRecordSet1);
$results = array();
while ($row = mysql_fetch_assoc($recordSet)) {
if (isset($results[$row["name"]])) {
$results[$row["name"]][] = $row["Message"];
} else {
$results[$row["name"]] = array($row["Message"]);
}
}
echo json_encode($results);
可以有一些语法错误,但我希望我能够给你这个想法。作为结果集会给你这样的事情:
“德国”,“你好”
“德国”,“gutten标签”
当它们添加到结果集检查,如果“德国”键已经设定或没有设定。如果键存在,那么你应该追加到数组,如果没有,你应该创建一个新的数组,并添加一个新的元素。
谢谢你,你的逻辑是太出色了,让我试试, – saqibabbasi 2013-03-28 09:51:19
$ query_Recordset1 = 'SELECT country.name为国家,为country_Message.name消息 从一个国家,country_Message WHERE country.id = country_Message.country_id'; $ Recordset1 = mysql_query($ query_Recordset1)或死(mysql_error()); $ result = array(); 而($行= mysql_fetch_assoc($ Recordset1)) { 如果(isset($结果[$行[ “国家”]])) { $结果[$行[ “国家”]] [] = $行[ “消息”]; } else { $ result [$ row [“country”]] = array($ row [“Message”]); } } echo json_encode($ result); ?> – saqibabbasi 2013-03-31 07:14:33
{“German”:[“Hello”,“guten Morgen”,“gute Nacht”],“English”:[“Hello”,“早上好”,“晚安”], “:[”bonjour“,”bonne nuit“,”bonjour“]} – saqibabbasi 2013-04-02 22:00:50