Пустой набор результатов MySql возвращает разные форматы

Я пытаюсь выполнить два простых запроса на выбор двух разных таблиц на сервере mysql. Я делаю это, запуская php-скрипт. Оба запроса должны возвращать пустой набор результатов. Но они возвращают разные форматы.

Таблица City возвращает простое нулевое значение, тогда как таблица Dealer возвращает все столбцы с нулевыми значениями.

Вывод:

{**"dealer"**:[{"car_make":null,"state":null,"city":null,"company_name":null,"company_address":null,"phone":null,"mobile":null,"fax":null,"email":null,"website":null,"Data_Version":null}],**"city"**:null}

Сценарий PHP

<?php

$data_version = 5;

require 'DbConnect.php';


$query = ("SELECT * FROM `Dealer` WHERE `Data_Version` > $data_version");


if ($query_run = mysql_query($query)){

    while ($query_row = mysql_fetch_assoc($query_run)){

        $out [] = $query_row;

    }

}
else{
    echo 'Fail';
} 


$query1 = ("SELECT * FROM `City` WHERE `Data_Version` > $data_version");


if ($query_run1 = mysql_query($query1)){

    while ($query_row1 = mysql_fetch_assoc($query_run1)){

        $out1 [] = $query_row1;

    }

}
else{
    echo 'Fail';
} 


$Output=array('dealer'=>$out,'city'=>$out1); 

    echo(json_encode($Output));

?>

Поэтому из-за разных форматов я не могу с этим справиться. В чем причина таких разных форматов? Что я должен сделать, чтобы иметь такие же результаты??

Схема таблицы

Таблица дилеров "car_make","state","city","company_name","company_address","phone","mobile","fax","email","website","Data_Version"

Городской стол

город, штат, Data_Version

(Все поля имеют тип Varchar(50))

Вывод на печать

Массив ( [дилер] => Массив ( [0] => Массив ( [марка_автомобиля] => [штат] => [город] => [название_компании] => [адрес_компании] => [телефон] => [мобильный] = > [факс] => [электронная почта] => [веб-сайт] => [Версия_данных] => ) )[город] => )


person Carbon    schedule 08.08.2013    source источник
comment
Вы должны прекратить использовать устаревшую библиотеку mysql в пользу mysqli.   -  person ciruvan    schedule 08.08.2013
comment
Возможно, таблица city содержит только один столбец   -  person Royal Bg    schedule 08.08.2013
comment
@cuewizchris или PDO, конечно...   -  person Menno    schedule 08.08.2013
comment
@cuewizchris: сейчас это невозможно изменить. Я сделаю это в будущем   -  person Carbon    schedule 08.08.2013
comment
Выложите пожалуйста схемы таблиц   -  person Fabio    schedule 08.08.2013
comment
Кстати. SELECT * считается плохой практикой: stackoverflow.com/questions/3639861 /   -  person Royal Bg    schedule 08.08.2013
comment
@RoyalBg: значит, тогда он будет содержать только столбец data_version? Странный какой-то стол. Согласен с Фабио, посмотрим схемы.   -  person Miklos Aubert    schedule 08.08.2013
comment
пожалуйста, посмотрите на схему таблицы ..   -  person Carbon    schedule 08.08.2013
comment
$out1 не определен. Странно то, что $out тоже не определен. Вы должны сделать $out = array(); и $out1 = array(); в начале. И вы должны сделать print_r или var_export вместо echo json_encode(.. для отладки! Может что-то пошло не так при кодировании   -  person steven    schedule 08.08.2013
comment
хорошо, я определю оба массива..   -  person Carbon    schedule 08.08.2013
comment
Похоже, в таблице дилеров есть строка со всеми нулевыми значениями.   -  person tlenss    schedule 08.08.2013
comment
но я повторяю массив json не для отладки, а для получения массива в приложении для Android   -  person Carbon    schedule 08.08.2013
comment
@tlenss ни в одной из таблиц нет строк с нулевыми значениями   -  person Carbon    schedule 08.08.2013
comment
если таблица Dealar имеет отношение к city.city и city.state, почему бы вам не использовать один запрос с соединением и явно назвать столбцы   -  person Royal Bg    schedule 08.08.2013
comment
@tlenss, но почему Data_Version имеет значение null? Кстати, было бы лучше использовать правильные регистры, это заглавная буква D и V в Data_Version.   -  person steven    schedule 08.08.2013
comment
@RoyalBg Обе таблицы не связаны   -  person Carbon    schedule 08.08.2013
comment
@Pooja, не могли бы вы опубликовать результат print_r($Output);, пожалуйста?   -  person steven    schedule 08.08.2013
comment
Я отредактировал свой вопрос .. пожалуйста, посмотрите   -  person Carbon    schedule 08.08.2013
comment
Он не отправляет пустой массив. Он отправил мне ложный результат. Вы пробовали запрос без условия? Или Data_Version › '$data_version' или var_dump($query_run1), чтобы убедиться, что это ложь?   -  person Royal Bg    schedule 08.08.2013


Ответы (1)


Это может быть возможно по двум причинам: -

В таблице городов нет строки, соответствующей вашему запросу, поэтому она возвращает нулевое значение.

В случае таблицы дилера она может возвращать строку, в которой все значения в настоящее время равны нулю.

Пожалуйста, проверьте!

person abhinsit    schedule 09.08.2013
comment
Нет, я проверил.. в таблице нет строк с нулевыми значениями - person Carbon; 09.08.2013