|
|
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! У меня возникла проблема, нужно объеденить extJS и mysql, задача стоит в следующем: Имеется Grid-Window, который получает данные, для вывода в окно из массива. Находится он в файле file.js , имеется основной файл index.php , в котором прорисовывается окно, за счет того, что изначально вствляется тег <script src=file.js></script> Часть кода из file.js createWindow : function(){ var desktop = this.app.getDesktop(); var win = desktop.getWindow('animal'); if(!win){ win = desktop.createWindow({ id: 'animal', title:'Животные', width:740, height:480, iconCls: 'animals', shim:false, animCollapse:false, constrainHeader:true, layout: 'fit', items: new Ext.grid.GridPanel({ border:false, ds: new Ext.data.Store({ reader: new Ext.data.ArrayReader({}, [ {name: 'q1'}, {name: 'q2'}, {name: 'q3'}, {name: 'q4'} ]), data: Ext.grid.animal }), cm: new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), {header: "Cобаки", width: 120, sortable: true, dataIndex: 'q1'}, {header: "Кошки", width: 70, sortable: true, dataIndex: 'q2'}, {header: "Хорьки", width: 70, sortable: true, dataIndex: 'lq3'}, {header: "Хомяки", width: 70, sortable: true, dataIndex: 'q4'} ]), viewConfig: { forceFit:true }, }) }); } win.show(); } }); /*Здесь другие окна и т.п.*/ Ext.grid.animal = [ ['1','2','3','4'], // Данные, которые будут выводиться в окно. ['5','6','7','8'] // Данные, которые будут выводиться в то же окно, но строкой ниже. /*И так далее, весь массив*/ ]; Как можно сделать так, чтоб данные для массива брались из mysql ... Был вариант использовать json, cторонний скрипт, который будет получать статистику, и объеденить все это в одном js-файле с Grid-Окном, но безуспешно, при добавлении include\require\etc js-скрипт перестает работать :( Еще рассматривался вариант, с добавлением примерно следующего кода: $sql = SELECT FROM * ... ; $result = ...; json_encode($result); echo $result; Но, так как Grid-Окон очень много, приходится каждый раз заново подключаться, заново указывать данные для авторизации и пр. Если добавить где-то изначально авторизационные данные, то потом их значения не передаются, по-этому прийдется каждый раз подключаться. Тем более это не единственный скрипт, который будет использовать MySQL, и тогда вообще непонятно что получается и множество раз нужно прописывать логин:пароль:хост:БД, а если вписать все значения в отдельный файл, то не понятно, как его добавить, так как уже было описано выше, что include\etc влияет на работу скрипта. Какие есть способы решения? Возможно, кто-то уже пробовал подобное и нашел, как лучше сделать? Заранее спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 13:51 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Ну, это тема, в принципе, не для этого раздела, а все же для ПэХаПэ ... Что такое ORM, ты знаешь? (Object-relational mapping) Простыми словами - это когда не нужно лезть в базу ручными сиквел-запросами и при этом получаешь не набор рекордов, а коллекцию объектов. Конечно, куценько объяснил, но суть та. Правда, это работает только в ООП-языках. По моим очень скудным сведениям вроде 5-ый ПэХаПэ уже ООП, поэтому можно попробовать. Просто ОРМ не только делает представление таблиц баз данных, но еще и контролирует пул соденений ... Так что если нет возможности или желания позьзоваться ОРМами, то копай в сторону создания пула соединений к БД - это когда один раз открываешь соединение с базой, пользуешься сколько хочешь, а потом закрываешь, а не так как сейчас - открыл-взял-закрыл и по новой. П.С. Кстати, в Гугле дало 842000 линков к строке "orm php". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 14:36 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
ExtJs подключается к проекту за весьма небыстрое время) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 18:32 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
_Anastasia_...нужно объеденить extJS и mysql... Очень просто объединяются. Вопрос а надо ли? extJS - то, что отображается на экране, mysql - то, что содержится в базе. Вопрос, а на сервере - пхп что-ли?. Вот и нужна маленькая программулина, которая берёт данные из базы и возвращает в формате, понятном экстжс (формат называется JSON). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 20:13 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
> а если вписать все значения в отдельный файл, то не понятно, как его > добавить Так примерно (php)[src]include $_SERVER['DOCUMENT_ROOT']."/path/to/file.conf";[/srv]Хотя, по хорошему нужно подключать не конфиг, а скорей, класс для работы с БД, чтоб он уже самостоятельно добирался до конфига. Ну, принцип от этого не меняется. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 20:51 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, Спасибо, попробую покопать в этом направлении. ShSerge_Anastasia_...нужно объеденить extJS и mysql... Очень просто объединяются. Вопрос а надо ли? extJS - то, что отображается на экране, mysql - то, что содержится в базе. Вопрос, а на сервере - пхп что-ли?. Вот и нужна маленькая программулина, которая берёт данные из базы и возвращает в формате, понятном экстжс (формат называется JSON). В общем, есть скрипт, на php, который записывает полученные данные в БД, а потом, нужно как-то выводить эти данные на экран, если бы был просто php+mysql - проблем бы не было, но нужно подключить extJS, как скормить данные - проблем нету, json и так используется, проблема в другом, что file.js перестает работать, если в него вписать include\etc ... Был вариант использовать ajax, но при добавлении в скрипт любого ajax-кода, он перестает работать. vkle > а если вписать все значения в отдельный файл, то не понятно, как его > добавить Так примерно (php)[src]include $_SERVER['DOCUMENT_ROOT']."/path/to/file.conf";[/srv]Хотя, по хорошему нужно подключать не конфиг, а скорей, класс для работы с БД, чтоб он уже самостоятельно добирался до конфига. Ну, принцип от этого не меняется. Если файл добавлять так, скрипт все равно перестает работать. А если можно, про класс подробнее, как тогда будут выводиться данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 23:35 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
> Если файл добавлять так, скрипт все равно перестает работать. С чего бы вдруг?... В общем то, посмотреть что творится в скрипте не сложно. По сути, происходит обращение от клиента к серверному скрипту. Точней, клиент отправляет какую то строку запроса. Пожалуй, самый простой способ при отправке запроса методом GET такой: открываем Live HTTP Headers и смотрим к какому скрипту идет обращение и какие данные передаются. Копируем этот адрес и данные и вставляем в адресную строку браузера (не забываем указать хост и отделить данные вопросиком). Далее переходим по этому адресу и отлаживаем скрипт как обычно. > А если > можно, про класс подробнее, как тогда будут выводиться данные? На вывод данных это не влияет. Имел в виду способ подключения к базе. Нет никакого смысла в _каждом_ скрипте прописывать логин-пароль-хост, выполнять подключение к серверу, выбирать базу, выставлять кодировку. Гораздо удобнее это сделать в одном месте. Далее, запросы есть разные - SELECT, INSERT и т.д. Так понимаю, раз Вы пишете "Окон очень много", так и запросов разных будет немало )) Как правило, есть необходимость узнать не произошла ли ошибка при выполнении запроса, сколько строк было изменено/удалено, ну, и при селекте получить какие то данные. Довольно часто эти данные желательно получить в виде асоциативного массива, пригодного для дальнейшей обработки или строки, или просто количество записей - опять таки незачем копипастить код. Можно вынести всё это в отдельные функции и собрать их в класс. Далее все обращения к базе делать только через методы этого класса. Так как все запросы проходят только там, то там же можно сделать запись запросов в лог-файл для отладки (если при формировании странички можно тупо всю отладку вывести в браузер, то с ajax такой номер не пройдет). Эммм... Пожалуй, это уже оффтопик попер, закругляюсь )) Теперь, по поводу передачи данных из пхп-скрипта в жабий скрипт. Проверки и обработку исключений не пишу здесь, но добавить их нужно обязательно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. PS в коде могут быть опечатки, писал без проверки, только чтоб передать идею Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2008, 02:28 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
vkle, Спасибо большое! >С чего бы вдруг? Вот в том-то и проблема. При добавлении, например, <script></script> - перестает работать, при добавлении, например <? include("file"); ?> Тоже перестает работать. >На вывод данных это не влияет. Имел в виду способ подключения к базе. Нет никакого смысла в _каждом_ скрипте прописывать логин-пароль-хост, выполнять подключение к серверу, выбирать базу, выставлять кодировку. Гораздо удобнее это сделать в одном месте Вот так и планировалось сделать, но этот файл нужно как-то заинклудить, а это не получается, так как скрипт перестает работать. >Теперь, по поводу передачи данных из пхп-скрипта в жабий скрипт. Проверки и обработку исключений не пишу здесь, но добавить их нужно обязательно. Примерно так и делалось, безуспешно. Из-за добавления <script></script> или каких-либо функций. Если что, то я могу выложить шаблон, с которым работаю, там видно будет что скрипт перестает функционировать после изменений. Есть еще один вариант решения, но он пока что не рассмативался, так как был найдет в каком-то блоге, и код немного не понятный, но завтра выложу найденный код и отпишу о результате, если он окажется рабочим, все будет намного проще;) Спасибо еще раз за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2008, 00:25 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Перечитал несколько раз. Не увидел даже и намека на текст сообщений об ошибках - одни только "перестаёт работать". Оно ж не просто так перестаёт, а из за ошибки. Отсюда ж не видно ни кода целиком, ни ошибок... Выкладывайте _тестовый_ пример с проблемным кодом, посмотрим. Или архивом проблемную часть проекта вместе с дампом используемых таблиц. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2008, 01:14 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
_Anastasia_ file.js перестает работать, если в него вписать include\etc Блин грамотеи. Смеетесь над бедной Настей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2008, 02:17 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
И кто где смеётся? Чуть выше есть пример передачи данных из пхп в жабаскрипт. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2008, 10:20 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем, кто помогает решить вопрос;) Вот пример скрипта: http://rapidshare.com/files/175530112/desktop.rar.html - download. http://slil.ru/26465664 - зеркало. В файле sample.js пытаюсь изменить Grid-Window таким образом, чтоб arrayData брался из MySQL, но, пока что, безуспешно. Возможно у вас получится, но у меня даже на конструкцию <script></script> Скрипты болезненно реагируют. Еще раз спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2008, 21:28 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Ну млин... В примерах же есть как подгрузить данные.... Ладно, такой вариант: Скрипт формирования данных my-data.php Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2008, 23:43 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Спасибо огромнейшее! Не знаю чтоб я без вас делала! Буду пробовать, надеюсь, больше не придется доставать вас своими дратскими вопросами;) Спасибо еще раз! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2008, 23:59 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Ещё вариант, с подгрузкой данных в формате XML: http://extjs.com/deploy/dev/examples/grid/xml-grid.html Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 00:00 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
C php, то что нужно! Спасибо еще раз! А еще возник вопрос, возможно ли подобное сделать с AccordionWindow? Например, Код: 1. 2. 3. 4. 5. Так как там не испльзуется массив, с HTML проблемы нету, а вот с php появилась ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 00:14 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
Модератор: так и идите на форум по PHP, незачем тут свалку устраивать. Если с ExtJS Вам уже все ясно и Вы не желаете дублировать объяснение в форуме PHP, то сообщите модератору о желании перенести тему в тот форум. ---------- illion ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 00:32 |
|
||
|
Как подружить extJS и MySQL?
|
|||
|---|---|---|---|
|
#18+
> возможно ли подобное сделать с AccordionWindow Гляньте в документации, TreeLoader -> dataUrl - вроде оно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 01:15 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=35725510&tid=1455392]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 526ms |

| 0 / 0 |
