2013-07-31 6 views
-1

У меня есть базы данных MySQL, что я читаю с PHP:операции JSon в PHP

$con = mysqli_connect($host, $user, $pwd, $db); 

if(mysqli_connect_errno($con)) { 
    die("Failed to connect to MySQL: " . mysqli_connect_error()); 
} 

$sql = "SELECT Grad FROM lista"; 

$result = mysqli_query($con, $sql); 

$rows = array(); 

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 
    $rows[] = $row; 
} 

mysqli_close($con); 

$arr = array_flip(array_map('serialize', $rows)); 
$lista = array_map('unserialize', array_flip($arr)); 
echo json_encode((object) array('lista' => array_values($lista))); 

И с локального хоста я получаю это:

{"lista":[{"Grad":"Beograd"},{"Grad":"Novi_Sad"},{"Grad":"Kragujevac"}]} 

Есть ли способ, чтобы получить что-то вроде этого:

{"lista":[{"Grad":"Odaberite grad"},{"Grad":"Beograd"},{"Grad":"Novi_Sad"},{"Grad":"Kragujevac"}]} 

Я хотел бы добавить {"Grad":"Odaberite grad"} перед всем. Заранее спасибо.

EDIT: Пожалуйста, не то, что { «Град»: «Выбрать град»} не является частью MySQL таблицы

ответ

1

Вы пытались добавить, что вы хотите после объявления $arr нравится следующим образом:

$rows = array(); 
$rows[] = array('Grad' => 'Odaberite grad'); 

Обновление:

В качестве альтернативы, как другие отвечающих указали вы также можете использовать array_unshift нравится следующим образом:

array_unshift($rows, array('Grad' => 'Odaberite grad')); 
+0

Tnx. Это то, что я искал. :) –

+0

Err да, я забыл ключевое имя в моем ответе: | lmao –

+0

@ RutgerKappers, это бывает иногда :) – vee

1

Для меня нет никакой ясной логики, как вы хотите, чтобы сортировать результаты, но в таком случае, если вы хотите, чтобы он был первым, просто добавьте еще один столбец в вашу таблицу, например priority, а его значение - 0 для всех строк, затем установите его для 1 или выше для любимой строки, а затем выберите ORDER BY priority DESC и вуаля.

EDIT Чтобы снабдите ваш элемент в результате использования массива array_unshift(): http://php.net/array_unshift

+0

Эта часть { «Выбрать град» ..} не в таблице. Я просто хотел добавить его вручную. –

+0

см. Отредактированный ответ. –

1

Вы можете PREPEND значения в массиве с помощью

array_unshift($arr, "Odaberite grad"); 
Смежные вопросы