Json Php / MySql вывод - PullRequest
       1

Json Php / MySql вывод

2 голосов
/ 28 июня 2011

У меня есть страница php, как показано ниже:

$sql = "select code as ref, size from product";

$result = mysql_query($sql);

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

        $test[] = $rs;
    }

$output['data'][] = $test;

echo json_encode( $output );

Это выдает следующее:

{"data":[[{"ref":"ABC","size":"Large"},{"ref":"123","size":"Medium"}]]}

Мне нужно изменить php, чтобы я мог добавить некоторые символы перед префиксомзначение ref, например:

ref: ABC должно быть M-ABC

и

ref: 123 должно быть M-123

Наконец, я бы тожехотел бы добавить дополнительный элемент в массив, например, описание, и это будет иметь фиксированное описание, такое как «Этот продукт доступен в большом» (значение зависит от размера).

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 июня 2011

Вместо того, чтобы модифицировать PHP и менять значения в цикле, более нетрадиционный, но более аккуратный подход состоит в том, чтобы модифицировать ваш SQL и сделать там префикс строки:

// Changed to a HEREDOC string for readability
$sql =<<<SQL 
  select CONCAT('M-', code) as ref,
   size,
   CASE
    WHEN (size = 'large') THEN 'this product is available in large'
    WHEN (size = 'small') THEN 'this product is available in small'
    WHEN (size = 'someotherone') THEN 'this product...etc.etc.'
   END AS size_description
  from product;
SQL;

Теперь это не требует дополнительных действий.пост-обработка в PHP, как только вы загрузите записи.Вы можете передать массив из цикла извлечения непосредственно в json_encode()

0 голосов
/ 28 июня 2011
while ($rs = mysql_fetch_assoc($result)) {
    $rs['ref'] = "M-$rs[ref]";
    $rs['description'] = "This product is available in $rs[size]";
    $test[] = $rs;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...