sql
  • arrays
  • json
  • object
  • pear
  • 2016-04-03 5 views 0 likes 
    0

    У меня есть следующий код, который выводит данные в виде объектов:Вывод как массив вместо объекта?

    <?php 
    
    require_once('DB.php'); 
    include "/diska/www/include/coa123-13-connect.php"; //to provide $username1,$password1 
    
    $host='co-project.lboro.ac.uk'; 
    $dbName='coa123wdb'; 
    $db=DB::connect("mysql://$username1:[email protected]$host/$dbName"); 
    
    if(DB::isError($db)){die($db->getMessage());} 
    
    $sql=$_REQUEST['sql']; 
    
    $db->setFetchMode(DB_FETCHMODE_ASSOC); 
    
    $results = $db->getAll($sql); 
    if (PEAR::isError($results)){die($results->getMessage());} 
    
    echo json_encode($results); 
    
    ?> 
    

    который выглядит результат:

    [{ "Имя": "Haslegrave Отель", "потенциал": "200" , «weekend_price»: «2000», «weekday_price»: «1500», «лицензия»: «0», «оценка»: «1», «стоимость»: «7»}, {«name»: «Forest Inn », "емкость": "260", "weekend_price": "1800", "weekday_price": "1600", "лицензия": "1", "сорт": "1", "стоимость": "6"} , {«name»: «Southwestern Estate», «capacity»: «500», «weekend_price»: «4000», «weekday_price»: «3000», «лицензия»: «0», «оценка»: «1», , "стоимость": "8"}]

    Я хотел бы, чтобы это было outputed как массив, как:

    [[ "Haslegrave Отель", "200", "2000", "1500", "0", "1",» 7 "], [« Лесная Инн »,« 260 »,« 1800 »,« 1600 »,« 1 »,« 1 »,« 6 »], [« Юго-западная недвижимость »,« 500 »,« 4000 », 3000 "," 0 "," 1 "," 8 "]]

    Есть идеи, как это изменить?

    ответ

    1

    json_encode просто преобразует ваши данные в json-представление, как ни в чем. Единственный способ получить его как массив - это иметь массив, который вы передаете в json_encode, - это обычный массив без строковых ключей. То есть, это не ассоциативный массив.

    Я не знаю, если это будет достаточно, но вы можете уйти только с изменением режима выборки: $db->setFetchMode(DB_FETCHMODE_ORDERED)

     Смежные вопросы

    • Нет связанных вопросов^_^