Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выборка данных из связанных таблиц как в Delphi.
Форумы портала PHP.SU » » Работа с СУБД » Выборка данных из связанных таблиц как в Delphi.

Страниц (1): [1]
 

1. novamap - 21 Июля, 2016 - 10:03:54 - перейти к сообщению
1) В 2005 году программировал в университете на Delphi. Потом отошел от программирования. Сейчас же в своей работе сталкиваюсь с тем, что нужно автоматизировать некоторые процессы.

Начал смотреть в сторону PHP.

И обнаруживаю, что связи таблиц почти нигде не описаны в учебниках по PHP и как вытягивать данные из таких таблиц тоже не могу понять. В Delphi это делалось очень просто - указываешь связи таблиц, где ключ и с каким полем он связан в другой таблице и можно было таким образом вытягивать данные из 2 таблиц - но они были связаны. Программируя в PHP получается я могу только работать с каждой таблицей по отдельности? Или все же есть код, который вытягивает данные из нескольких связанных таблиц одновременно?

Я только начинаю этим заниматься прошу помощи.

2) Когда мы выводим всю таблицу из БД - это можно понимать как ассоциативный многомерный массив?

Или это двумерный массив данных?
2. Мелкий - 21 Июля, 2016 - 11:16:46 - перейти к сообщению
1) для прикладного языка нет никаких таблиц. Есть SQL, т.к. с базой общение идёт именно через SQL.
Delphi, судя по вашему описанию, скрывает нормальный SQL и даёт какую-то свою абстракцию. Для PHP таких библиотек тоже вагон и малая тележка - ищите по active record, ORM.
2) не понял вопроса
3. novamap - 21 Июля, 2016 - 12:10:32 - перейти к сообщению
По первому вопросу я так понимаю это больше к MySQL специалистам вопрос. Хотя я нашел в интернете как связывать таблицы, ключи и связи...


Мелкий пишет:
2) не понял вопроса


приведу пример:

есть БД и 1 таблица Users:

ID Login Password

1 Petya 333rrr55
2 Vasya 988gfdg5
3 Olga 45fvds55

Когда мы выводим всю таблицу то получается:

Array ( [id] => 1 [login] => Petya [password] => 333rrr55 )
Array ( [id] => 2 [login] => Vasya [password] => 988gfdg5 )
Array ( [id] => 3 [login] => Olga [password] => 45fvds55 )


Так вот как понимать такой вывод логически:
1) 3 отдельных массива?
2) 1 ассоциативный многомерный массив?
3) двумерный массив?

запутался и не могу понять...
4. Мелкий - 21 Июля, 2016 - 13:41:54 - перейти к сообщению
novamap пишет:
По первому вопросу я так понимаю это больше к MySQL специалистам вопрос

Это как раз ответ человека, специализирующегося на mysql и postgresql.

novamap пишет:
Когда мы выводим

Вот код вывода и надо смотреть. Большинство методов ориентируются на построчный обход результата запроса. Они могут возвращать числовой массив значений одной строки, ассоциативный массив полей одной строки, объект. Другие методы могут вернуть массив значений определённой колонки запроса, третьи - массив из всех строк запроса (а каждый элемент этого списка может быть представлен числовым массивом, ассоциативным или объектом).

 

Powered by ExBB FM 1.0 RC1