[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Достать данные из двух и более таблиц
ЗлОй ПрОграММер
Здравствуйте, подскажите можно ли сие провернуть
Хочу достать все поля из двух и более таблиц table1, table2 ... tableN
Сейчас получаю данные двумя запросами $res = SELECT * FROM `tableN`;
while ($row = mysql_fetch_assoc($res)) print_r($row);
Получаю ассоциативный массив Array('id' => 4, 'name' => 'Вася' и так далее...
Есть ли возможность в $row получить два таких массива, первый соответствующий записи из таблицы table1, а второй - записи из table2?
Что то типо этого
Array('table1' => Array('id' => 4, 'name' => 'Вася'), 'table2' => Array('id' => 1, 'age' => '230 лет'));
Я предполагаю что это ускорит выборку, объединение 2-х запросов в 1. Если нет поправьте!
JOIN использовать не хочу так как нужно не склеить поля, а получить результат как я описал выше.
inpost
Из двух таблиц? Почему бы все данные не поместить в 1 таблицу?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
ЗлОй ПрОграММер
inpost
Можно, но будет избыточность пустых полей в таблице) в первой может быть 1000 записей, а во второй одна.
inpost
ЗлОй ПрОграММер
Приведи пример пустых данных.

1000 записей + 1 запись = 1001 запись в одной таблице и всё.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
ЗлОй ПрОграММер
inpost
я имел ввиду объединение полей, вот скажем поля первой таблицы id, name и второй age, text
id name age text
1 Вася 20 текст
2 Максим
3 Игорь
4 Аня
5 Даша
1000 Маша

поля age и text заполнены только в записи с id 1
inpost
ЗлОй ПрОграММер
Ну и пусть. Места занимать не будут, если это тип text, varchar (почти не будут).
Размер же таблиц не будет выше гигабайта или десяти миллионов записей? Если нет, то не парься и складывай всё в одну таблицу.

С другой стороны, почему это вдруг у пользователя не заполнен возраст и он не будет заполняться, а у другого заполнен?! Что-то совсем непонятно. Может ты неправильный пример привёл?

В заключение могу сказать, что твою задачу можно решить грубым способом:
$array = array(); // пустой массив.
И в нужном месте его дополняй новыми записями:
$array[] = $row; или $array[$row['id']] = $row;

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
ЗлОй ПрОграММер
inpost
я произвонильные поля написал, для примера)
inpost
ЗлОй ПрОграММер
Если это пользователи, то их параметры можно в одной таблице. Если это товары, то свойства категорий в отдельной таблице связующей. Под таблицу в 1000 строк и 10 млн. строк подходы разные. Знаешь, можно сайт держать на 1 сервере маленький визитку, а крупные порталы и на тысяче ломаются, это не значит, что для визитницы надо применять подход через 3-х серверов для 100% онлайна.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
ЗлОй ПрОграММер
inpost
В принципе нагрузки большой сайт не будет и записей тоже.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.