Как кодировать Json Array в php? - PullRequest
0 голосов
/ 06 марта 2012

Привет, я новичок в php, и я не знаю, как я могу это сделать?

У меня есть четыре строки в базе данных, и я хочу закодировать массив Json этих строк, используя php, как я могу это сделать?это.

ниже мой код, пожалуйста, посмотрите на это и дайте мне предложение -

<html>
<head>
<title>First</title>
<body>
<?php
$con = mysql_connect("localhost","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("ContactDB", $con);

$result = mysql_query("SELECT * FROM mycontacts");

echo "<table border='1'>
<tr>
<th>PhoneNumber</th>
<th>Name</th>
<th>Lastname</th>
</tr>";

 while($row = mysql_fetch_array($result))
  {
  $data=array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']); 
print_r (json_encode(array_chunk($data, 1, true)));  
}


mysql_close($con);
?>

</body>
</head>
</html>

Я получаю ответ, подобный этому

[{"PhoneNumber":"1234567"}, { "Имя": "Ujjwal"}] [{ "НомерТелефон": "765423"}, { "Имя": "АВС"}] [{ "НомерТелефон": "098765123"}, { "Имя":" A "}]

но я хочу это в этом формате

[{" PhoneNumber ":" 1234567 "," Name ":" X "}, {" PhoneNumber ":"765423", "Имя": "ABC"}, {"PhoneNumber": "098765123", "Имя": "A"}]

Ответы [ 5 ]

1 голос
/ 06 марта 2012

Заменить

while($row = mysql_fetch_array($result))
{
  $data=array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']); 
  print_r (json_encode(array_chunk($data, 1, true)));  
}

с

$data = array();
while($row = mysql_fetch_array($result))
{
  $data[] = array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']); 
}
print_r (json_encode($data));  
0 голосов
/ 06 марта 2012

Пример того, как это сделать ниже. Могу ли я также предложить использовать AS в запросе MySQL (и избегать *; просто получите нужные данные).

$q = mysql_query("SELECT ... AS ... ...");
$rows = array();
while($r = mysql_fetch_assoc($q)) {
    $rows[] = $r;
}
print json_encode($rows);
0 голосов
/ 06 марта 2012

Попробуйте заменить

$data= array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']);

с

$data= (object) array("PhoneNumber"=>$row['PhoneNumber'],"Name"=>$row['Name']);
0 голосов
/ 06 марта 2012

Попробуйте это:

$json = json_encode($data)
0 голосов
/ 06 марта 2012

Не использовать array_chunk

json_encode ($ data) должен это сделать.

Вы также можете объявить данные как массив перед циклом, а затем пользователь $ data [] = json_encode (.....)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...