[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php+mysql+json
Александр
Доброго вам время суток!..

Вопрос у меня такой.

У меня есть таблица

$query = "SELECT id, name FROM `people`"; 

$results = mysql_query($query);


мне нужно вывести все записи, в array, а потом скомпилировать в json_encode, что бы, был таковым результат например

{"Александр" : 1, "Николай" : 2, "Владимер" : 3}


если кто то уже такое делал, подскажите пожалуйста,...
YVSIK
тебе поможет цикл

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Александр
если просто с array брать то все нормально, к примеру



$name = array(
'Александр' => 1,
'Николай' => 2,
'Владимер' => 3
);

echo json_encode($name);



Но хотелось бы еще с базы выводить..
YVSIK
уже сказал из базы выводи циклом
ты что такое цикл знаешь?


цикл выводит перебором всех элементов, все какие будут в базе, потом будешь сортировать как тебе надо

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Александр
YVSIK - Думаю я правильно делаю.. Но вот с самой инструкцией, я пока что еще не до понял, как и что, может кто то примерчик наведет?.

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

// инструкция

}
YVSIK
while ($row = mysql_fetch_assoc($result))
{
/* Прошу обратить внимание на функцию MYSQL_FETCH_ASSOC()
Выбрана она не случайно, данная функциявозвратит ассоциативный
массив с которым будем работать.

Многие делают ошибку в плане оптимизации и использую функцию
MYSQL_FETCH_ARRAY() данная функциявернет два массива,
один ассоциативный другой индексный тем самым мы увеличим потрябляемую
память скриптом.
*/


вот читай

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
AllesKlar
Александр
не обижайся, YVSIK сегодня в ударе :)

Все ты правильно думаешь
Только не mysql_fetch_array, а mysql_fetch_assoc (про разницу сам почитаешь)
$name = array();
while ($row = mysql_fetch_assoc($results))
{
$name[intval($row['id'] )+ 1] = $row['name'];
}


На выходе получишь массив другой, нежели ты указал:

Цитата
Array(
  [1] => 'Александр'
  [2] => 'Николай' 
  [3] => 'Владимир'
)


А ту структуру, что указал ты, не советую исполльзовать.
Ключи ассоциативного массива в кирилице - это плохо.

_____________
[продано копирайтерам]
Александр
AllesKlar , YVSIK - Спасибо ребята за хорошие и полезные ответы.
Буду теперь знать что mysql_fetch_array в таких случаях не используется..


Вот результат который мне и надо был

{"\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440":5,"\u041d\u0438\u043a\u043e\u043b\u0430\u0439":3,"\u0422\u0435\u0441\u0442":7,"\u043a\u043a\u043a\u043a\u043a\u043a\u043a\u043a":6}
dron4ik
Александр
у json_encode есть второй параметр
http://www.php.net/manual/ru/function.json-encode.php
пробуем json_encode($array, JSON_UNESCAPED_UNICODE)

_____________
Ex3m.com.ua — Активный образ жизни
Александр
dron4ik - Спасибо на будущее пригодится..

Он для версии php 5.4.0 -> JSON_UNESCAPED_UNICODE

альтернатива JSON_UNESCAPED_UNICODE этой опции, так как у меня версия PHP 5.2.17

function json_str($json_str) {
$cyr_chars = array (
'\u0430' => 'а', '\u0410' => 'А',
'\u0431' => 'б', '\u0411' => 'Б',
'\u0432' => 'в', '\u0412' => 'В',
'\u0433' => 'г', '\u0413' => 'Г',
'\u0434' => 'д', '\u0414' => 'Д',
'\u0435' => 'е', '\u0415' => 'Е',
'\u0451' => 'ё', '\u0401' => 'Ё',
'\u0436' => 'ж', '\u0416' => 'Ж',
'\u0437' => 'з', '\u0417' => 'З',
'\u0438' => 'и', '\u0418' => 'И',
'\u0439' => 'й', '\u0419' => 'Й',
'\u043a' => 'к', '\u041a' => 'К',
'\u043b' => 'л', '\u041b' => 'Л',
'\u043c' => 'м', '\u041c' => 'М',
'\u043d' => 'н', '\u041d' => 'Н',
'\u043e' => 'о', '\u041e' => 'О',
'\u043f' => 'п', '\u041f' => 'П',
'\u0440' => 'р', '\u0420' => 'Р',
'\u0441' => 'с', '\u0421' => 'С',
'\u0442' => 'т', '\u0422' => 'Т',
'\u0443' => 'у', '\u0423' => 'У',
'\u0444' => 'ф', '\u0424' => 'Ф',
'\u0445' => 'х', '\u0425' => 'Х',
'\u0446' => 'ц', '\u0426' => 'Ц',
'\u0447' => 'ч', '\u0427' => 'Ч',
'\u0448' => 'ш', '\u0428' => 'Ш',
'\u0449' => 'щ', '\u0429' => 'Щ',
'\u044a' => 'ъ', '\u042a' => 'Ъ',
'\u044b' => 'ы', '\u042b' => 'Ы',
'\u044c' => 'ь', '\u042c' => 'Ь',
'\u044d' => 'э', '\u042d' => 'Э',
'\u044e' => 'ю', '\u042e' => 'Ю',
'\u044f' => 'я', '\u042f' => 'Я',

'\r' => '',
'\n' => '<br />',
'\t' => ''
);

foreach ($cyr_chars as $key => $value) {
$json_str = str_replace($key, $value, $json_str);
}
return $json_str;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.