X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Вопрос по Mysql
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 26.12.2010, 4:52; Ответить: MeTaTRoN
Сообщение #1


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


Возник вопрос, возможно ли сделать под запрос с получением данных в новый массив данных.


То есть например мне нужно сделать запрос в таблицу userlist
SELECT `name` FROM userlist WHERE id_user = '{$user['id_user']}'


Теперь к этому запросу надо сделать под запрос в базу данных, возможно какой то другой конструкцией, например подобие LEFT JOIN, откуда возьмётся 1 строка И занесётся в новый массив получаемого массива, то есть по результату запроса mysql_fetch_assoc будет многомерный массив данных из userlist в основном массиве и один из параметров будет ещё одним массивом?

Заранее всем спасибо.


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
freesoccer
freesoccer
сообщение 26.12.2010, 20:16; Ответить: freesoccer
Сообщение #2


Участник
***

Группа: User
Сообщений: 114
Регистрация: 23.8.2009
Из: Минск
Поблагодарили: 41 раз
Репутация:   8  


SELECT `name` FROM userlist WHERE id_user IN (...подзапрос...)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 26.12.2010, 20:26; Ответить: MeTaTRoN
Сообщение #3


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


(freesoccer @ 26.12.2010, 20:16) *
SELECT `name` FROM userlist WHERE id_user IN (...подзапрос...)


Разве констукция IN невернёт мне все значения совпадающие по условию с значением в позапросе? И вернёт он их мне в основном массиве.
А должен по принципу
$first = array(

'pervii' => 'erfrf',
'vtoroi' => 'sdcdsc',
'tretii' => array('odin', dva,tri),
'4etvortii' => 'sdcdsc'
);


Сообщение отредактировал MeTaTRoN - 26.12.2010, 20:27


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
freesoccer
freesoccer
сообщение 27.12.2010, 3:29; Ответить: freesoccer
Сообщение #4


Участник
***

Группа: User
Сообщений: 114
Регистрация: 23.8.2009
Из: Минск
Поблагодарили: 41 раз
Репутация:   8  


Хм... Это нереально по идеологии MySQL. Реляционные БД устроены таким образом, что можно выбрать или строку, или часть строки из записи БД, которая соответствует тому или иному условию.
Ваш вариант - юзать отдельные запросы. Выборка в MySQL всегда происходит по какому-либо условию. Т.е. выбрать отчельные ячейки по разным условиям (я так понимаю, Вы именно это хотите) за 1 запрос невозможно. Либо результатом запроса будет NULL. Потренируйтесь на phpmyadmin и выберите для себя оптимальный вариант.
Из опыта: 4 запроса к MySQL иногда являются гораздо меньшим злом, чем один безграмотно составленный запрос, поскольку время его выполнения может превышать время выполнения 4 запросов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FlashBlack
FlashBlack
сообщение 27.12.2010, 3:42; Ответить: FlashBlack
Сообщение #5


Участник
***

Группа: User
Сообщений: 192
Регистрация: 13.8.2008
Из: MINSK
Поблагодарили: 39 раз
Репутация:   10  


А зачем понты??
мини пример на ORM от kohana framework
$table1 = ORM::factory('table_1')->where('blabla', '=', 1)->find_all()->as_array();
$first = $table1;
$table2 = ORM::factory('table_2')->where('blabla', '=', 2)->find_all()->as_array();
$first['tretie'] = $table2;


Переводя на рус яз: Мы делаем 2 запроса к базе, загоняя результаты так, как тебе будет удобно.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 29.12.2010, 13:00; Ответить: MeTaTRoN
Сообщение #6


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


(FlashBlack @ 27.12.2010, 2:42) *
А зачем понты??


Зачем же так сразу?

(FlashBlack @ 27.12.2010, 2:42) *
Мы делаем 2 запроса к базе, загоняя результаты так, как тебе будет удобно.



Если бы всё так было просто, как вы говорите, я бы и не парился. Конечно сделать 2 запроса или 1 один, разница есть, но не столь весома, как у меня в случае, скажем так 2 варианта.

1 Вариант 6 запросов, понятно, что никуда не годится.
2 Вариант 1 Запрос, присоединение всех таблиц через LEFT JOIN, а после через класс раскинуть значения по массивам.

Вот оба мне не подходят, так как ресурсоёмкие.
На первый взгляд, второй подходит, это так и есть, но всё таки получать больше 100 значений и раскидывать их на 6 массивов второго уровня и делать это при каждом обновлении страницы, вроде как напряжённо, возможно мне это кажется!

Сообщение отредактировал MeTaTRoN - 29.12.2010, 13:00


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FlashBlack
FlashBlack
сообщение 30.12.2010, 13:29; Ответить: FlashBlack
Сообщение #7


Участник
***

Группа: User
Сообщений: 192
Регистрация: 13.8.2008
Из: MINSK
Поблагодарили: 39 раз
Репутация:   10  


Опишите задачу досконально, помогу.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Вопрос по seo для интернет магазина
куда девать продвинутые товары, которые уже не выпускают
18 viktormerke 2819 15.12.2017, 15:18
автор: Smspva
Открытая тема (нет новых ответов) Недорогие услуги - php/js/mysql/jquery/bootstrap
2 vlads 662 13.12.2017, 21:01
автор: vlads
Открытая тема (нет новых ответов) Вопрос к знатокам Instagram
20 SEOMR 4194 30.11.2017, 14:25
автор: DiscordPro
Открытая тема (нет новых ответов) Вопрос про Телеграмм
18 syd2010 1174 28.11.2017, 14:25
автор: PostBrigada
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыАrticle manager вопрос
0 Smile3D 441 24.11.2017, 18:27
автор: Smile3D


 



RSS Текстовая версия Сейчас: 18.12.2017, 15:06
Дизайн