Как извлечь данные MySQL в JSON с помощью PHP

0

я получил данные mysql из одной таблицы в json, используя следующий script

$table_first = 'abc';
$query = "SELECT * FROM $table_first";
$resouter = mysql_query($query, $conn);

$set = array();

$total_records = mysql_numrows($resouter);
if($total_records >= 1){

  while ($link = mysql_fetch_array($resouter, MYSQL_ASSOC)){
    $set[] = $link;
  }
}

echo json_encode($set);

как я могу получить данные из двух других таблиц, в которых есть внешний ключ этой таблицы в обеих этих таблицах. ИЛИ просто как я могу получить данные из 3 таблиц mysql в php.

Теги:

5 ответов

1

Я считаю, что лучший способ пойти здесь - использовать JOIN или просто что-то вроде этого:

$sql = "SELECT 
            tabl1.*, table2.*, tabl3.* FROM table1, table2, table3 
        WHERE 
            table1.fk1 = table2.id AND
            table1.fk2 = table2.id";

//Do the whole selection process...

Если вы делаете запросы отдельно, вы будете заставлять 3 запроса в свою базу данных и закончите удар производительности, который вам не нужен. Таким образом, идея заключается в загрузке всех данных из БД с помощью объединений или подобных им, а затем кодирования результатов. Быстрее, и вы оставите работу по слиянию с MySQL

Надеюсь, что смогу помочь

  • 0
    спасибо, парень, но этот запрос извлек всю запись сразу, и я хочу, чтобы он печатал только соответствующие записи, т. е. для идентификатора 1 таблицы 1 имеется 5 соответствующих записей в таблице 2 и три записи таблицы 3. Сначала должен вывести идентификатор 1 таблицы 1, чем все 5 записей таблицы 2 и таблицы 3. чем для идентификатора 2 таблицы 1 он должен быть таким же, как этот
  • 0
    поэтому я должен использовать три запроса, но как я могу управлять всеми тремя запросами и отправлять в json_encode.
0

Я уверен, что ваш код будет выглядеть примерно так:

$query = "SELECT 
        A.column1 AS First_1
        A.column2 AS First_2
        B.column2 AS Second
        C.column3 AS Third
        FROM table1 A, table2 B, table3 C 
    WHERE 
        A.fk1 = B.id AND
        B.fk2 = C.id";

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

0

Предположим, что есть две таблицы как State (st_id, st_name) и City (ct_id, ct_name, state_id). Теперь первичный ключ - это st_id и ct_id соответственно из таблиц State и City.

Связь между этой двумя таблицами может быть установлена ​​путем объединения State.st_id и City.state_id.

Теперь, придя к вашей проблеме для извлечения данных из двух состояний таблицы и города, мы можем сделать sql-запрос следующим,

$sql="select s.*, c.* from State s, City c
       where s.st_id=c.state_id ";

Используя вышеприведенный запрос, вы можете извлекать данные из базы данных и преобразовывать в json-формат и отправлять его в систему Android. вот хорошая статья http://blog.sptechnolab.com/2011/02/10/android/android-connecting-to-mysql-using-php/. я надеюсь тебе понравится.

0

Сначала вы можете получить все данные. Затем объедините массив данных. Наконец, используйте json_encode для изменения формата данных.

0

Внутри этой таблицы есть внешний ключ, поэтому вы можете использовать "join" для извлечения значений из других таблиц.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню