| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > нужна помощь в Mysql запросе |
| Автор: neoks 9.8.2011, 12:01 | ||
| Вообщем делал скрипт, делал делал вроде все сделал, но тут заказчик решил немного подправить. Казалось мелочь жизни, но тут я понял что это не так просто как кажется Так вот, все ситуация в том чтобы сортировать строки по дате, казалось бы легко но суть в том что я не могу сортировать напрямую. Сначала я выделяю из одной таблицы записи со значением id_link=1, и циклом WHILE начинаю парсить, в цикле я выделяю ужу другую таблицу у которой та самая дата которою нужно сортировать. Вот отрывок кода по старому методу без сортировки.
В голову приходит только один вариант, пихать все в массивы и каким то образом сортировать. Не знаю что делать, может есть более разумный способ отсортировать строки по дате, подскажите плиз что делать. |
| Автор: CruorVult 9.8.2011, 12:50 |
| Вам нужно отсортировать данные первой таблицы ('curer') по самой старшей/младшей дате из связанной таблицы('pages')? я так понял? или может отношения 'curer':'pages' 1:1 ? |
| Автор: neoks 9.8.2011, 13:26 |
| Мне нужна отсортировать pages, ну как видно я не могу отсортировать в цикле, так как выделяется одна строка в pages с уникальным id. Я выделяю сначала curer затем в цикле выделяю pages и вывожу данные от pages. Все было отлично пока заказчик не сказал что нужно отсортировать pages по дате, пришлось ему объяснять что это не так просто но он все равно хочет отсортировать |
| Автор: neoks 9.8.2011, 13:53 |
| О и еше одно, не пойму как запустить php файл как делает AJAX только средствами php. Я имею введу вместо include, пытаюсь сделать file_get_contents но возвращает целый код. |
| Автор: CruorVult 9.8.2011, 15:04 |
| ничего не понятно! в каком виде должно всё выглядеть? каким образом? По каждой записи из 'curer'? или все скопом? тогда что мешает выбрать всё из 'pages' отсортировав ? Покажите какая связь между таблицами и какай должен быть вывод! |
| Автор: neoks 9.8.2011, 16:51 | ||||||
| Оххх, как тяжело объяснять Нужна pages отсортировать по дате, но это просто ORDER BY date если делать выборку pages. Эх, как бы сказать, на сайте есть пользователи у которых свои данные, таблица pages общая для всех. Так вот, через таблица curer проходят все данные, в ней хранятся идентификаторы других таблиц. Поэтому если мне нужна получить количество страниц (pages) от этого пользователя то все проходит через таблицу curer. А проходит это так. 1. ID пользователя задается в переменную $id. 2. Делается выборка из таблицы curer где id пользователя равен переменной $id и с лимитом 500.
3. Начинаем циклом WHILE таблицы cucrer
4. Так как в таблице сurer хранятся только идентификаторы других таблиц и только, то мы выделям таблицу pages с подходящим идентификатором из таблицы curer и выводим на экран все что в этой строке.
5. На экране появляется все о этой страницы и также дата. Даже не знаю может кто поймет, так вот теперь перед мной стоит задача отсортировать таблицу pages по дате. |
| Автор: neoks 9.8.2011, 17:37 | ||||
| Как выполнить файл php. Я хочу подгрузить файл на сервере в страницу но при этом готовый результат php. Например если сделать так
А если вставить адрес сервера.
Весь нет перерыл не могу найти, не хочу подставлять адрес сервера к то муже не увсех серверах есть возможность использовать адрес. |
| Автор: нуп 9.8.2011, 18:12 |
| Подключить файл и вызвать нужную функцию |
| Автор: neoks 9.8.2011, 18:29 |
Cуть в том что файл также вызывается через AJAX, не хочу отдельно делать и для AJAX и для PHP. Вот и стало интересно а можно вообще это сделать через пхп, чтоб сразу приходил результат в виде строки. |
| Автор: GreatAntique 9.8.2011, 19:17 | ||||||
1) по поводу вызова файла:
2)
Проверьте есть ли у вас метод $db->query. Для кол-ва записей немного изменим запрос
|
| Автор: neoks 9.8.2011, 20:19 | ||||
| GreatAntique Ох, наконец, спасибо огромное за помощь А по поводу eval не то. Вот функция которая возвращает уже готовый результат.
Сам файл saite_mod.php содержит такое.
Через eval не подходит по двум причинам, во первых результат выводится сразу на экран а не туда куда я захочу, во вторых я использую шаблон и переменных или класов в шаблоне нет Пока только вариант использовать адрес домена для обращения за результатом. |
| Автор: GreatAntique 9.8.2011, 21:29 | ||||||
Что значит "нет"? Выдается ошибка? Возможно это из-за путей
Но нужно конкретней знать в чем проблема. При eval не подключатюся файлы? |
| Автор: neoks 9.8.2011, 21:59 |
То и значит, в файле saite_mod.php используется конструкция require_once а значит второй раз уже не будет подключена. А значит что классов и переменный не создано и возникают ошибки. Это все должно вывести в шаблон, а шаблон генерируется через функции котором тоже не прописано global, вот такой нюанс Как же так объяснить, мне не нужна загружать файл и затем обрабатывать через eval или еше что, мне нужно загрузить уже готовый результат как делает AJAX. Успешно так справляется file_get_contents если подставлять адрес домена, но если убрать адрес домена то увы |
| Автор: GreatAntique 9.8.2011, 22:08 |
| тогда не понятно почему не устраивает include файла |
| Автор: neoks 9.8.2011, 22:42 | ||||||||||||
| Охх, сейчас подробно покажу. Файл index.php
Файл team.php
Функция widget
Файл saite_mod.php
В результате получается то что мне нужна, файл index.php покажет такой результат.
Если использовать include вместо file_get_contents то получем такой результат
Сейчас file_get_contents почти подходит но не совсем, как я знаю у некоторых серверах например у дешовых может быть отключена вставка адресов и использовать такую функцию можно только внутри сервера. Даже не знаю что можно придумать, может как то сделать проверку можно или нет и показывать что мов так и так нельзя |
| Автор: нуп 9.8.2011, 22:51 | ||
Вы что не можете написать функцию которая возвращает html без всяких эвалов и прочего
|
| Автор: neoks 9.8.2011, 22:55 | ||
Не понял ? |
| Автор: GreatAntique 10.8.2011, 08:24 | ||
И все-таки вы уверены что вам не подходит include?
Переменная $mytheme будет доступна в saite_mod. Это ваша функция replase или вы опечатались? У вас должно получиться так: Файл index Файл team результат виджета конец шаблона |
| Автор: CruorVult 10.8.2011, 09:57 | ||
? |
| Автор: neoks 10.8.2011, 10:41 |
Уверен на 100% что не потходит Пока два варианта, прописывать отдельно для AJAX и отдельно для include, но include значит мне на любой класс или необходимую переменную придется писать global $db,$html,$id,..... Значит останусь с вариантом @file_get_contents('http://'.$_SERVER["HTTP_HOST"] Но наверно поставлю проверку на существования этого файла, если нет то буду сообщать что так и так не найден файл Вот только пока не знаю, будет доступна куки и сессии, в AJAX запросе все доступна. CruorVult Не совсем понял что значит знак ? но код правильный и рабочий спасибо GreatAntique Добавлено через 9 минут и 34 секунды А блин, не доступна не куки не сессии Эх даже не знаю что теперь делать. Наверно все таки сделаю подгрузку виджетом через AJAX. |
| Автор: neoks 10.8.2011, 11:04 |
| Все сделал через jquery AJAX, теперь виджеты будут подружатся когда будет загружена страница И самое главное что доступны куки и сессии для AJAX. Все тема закрыта, спасибо всем за внимание. |