Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Простой скрипт выбора из базы данных. (https://javascript.ru/forum/dom-window/60705-prostojj-skript-vybora-iz-bazy-dannykh.html)

Atridies 14.02.2016 11:32

по поводу безопасности - да, я понимаю, что такие права нельзя никому давать.
Везде в примерах - идет запрос к некому файлу *.php (если я правильно понимаю - это скрипт php, собственно - драйвер БД).
Работа предполагается с MySQL.
Как подключить mysqli в phpMyAdmin - я не нашел.

"серверному скрипту который и должен содержать запрос". Этот файл не является каким-то стандартным? Я его самостоятельно должен написать на PHP?
Т.е. правильно я понимаю: с клиента идет запрос на *.php файл, который преобразует этот запрос в определенный запрос к БД (вида "SELECT...") ?

С сервера на страницу - достаточно вывести результат ответа за различные запросы в БД. Т.е. по запросу SELECT - выдается блок данных (таблица по сути) - вот ее бы и вывести. Этого будет вполне достаточно.

Вот пример ответа:
5559ИН13У2, НПО Физика, МКИО, 2-х пров., 1, 1, 0, Н04.16-1В, 16, нет, 0, 4.5, 5.5, -60, 125, АЕЯР.431230.591ТУ
5559ИН15У, Миландр, LIN2.1, LVTTL, 1, 1, нет, 20, Н02.8-1В, 8, да, 0, 5, 27, -60, 125, АЕЯР.431230.653ТУ
и т.д.

laimas 14.02.2016 12:49

Цитата:

Сообщение от Atridies
Везде в примерах - идет запрос к некому файлу *.php (если я правильно понимаю - это скрипт php, собственно - драйвер БД).

Нет, файлы скрипты языка серверного, в данном случае РНР, никакого отношения к драйверам базы не имеют. РНР, это серверный язык, на котором пишутся сценарии выполняемые на сервере, сами .php файлы являются исполняемыми файлами (это указывается в конфигурации сервера).

Баз данных существует много, частое использование MySQL обусловлено не тем, что это лучшее решение, а тем, что это одна из бесплатных баз (она осталась такой даже после того как ее прибрала к рукам Oracle).

РНР имеет набор функций для работы с различными базами, а эти функции как раз и есть расширение/драйвер для соответствующей базы. Они находятся в каталоге ext расширений РНР, и например для работы с MySQL из этого каталога должна быть подключена библиотека php_mysql.dll. Но как говорилось ранее, с версии РНР 5.5.0 она не рекомендуется (интерпретатор будет выдавать сообщения), и рекомендуют либо mysqli (библиотека - php_mysqli.dll), либо PDO MySQL (библиотека - php_pdo_mysql.dll).

Данные библиотеки, в зависимости от выбора, подключаются в файле php.ini. Но в случае хостинга хостер зачастую уже подключает php_mysql.dll, а драйверы для mysqli или PDO MySQL нужно подключать самому. Но это делается не через php.ini в явном виде (хост к данному файлу дает доступ редко и не по всем настройкам, если конечно не случай VPS), а через панель управления хостом, в котором нужно выбрать модули (расширения) необходимые для работы, в том числе и эти драйверы (один из них). После сохранения выбора они будут прописаны в php.ini.

И уже в зависимости от выбранного расширения для работы с MySQL в сценариях РНР пишут запросы и их обработку функциями соответствующего расширения.

РМА - это инструмент для администрирования баз данных, то есть в нем можно непосредственно создавать/удалять базы данных, создавать/удалять в базе таблицы, видеть их параметры и изменять их, и .д.. Подключениями расширений РМА не занимается.

Цитата:

Сообщение от Atridies
"серверному скрипту который и должен содержать запрос". Этот файл не является каким-то стандартным? Я его самостоятельно должен написать на PHP?

Естественно все сценарии сервера на серверном языке пишите вы, также как и js-сценарии нужные вам на клиенте вам придется писать самому. Иначе, если вы этого не можете, то пишите техническое задание и ищите исполнителя за плату. Есть готовые движки, те же CMS, и если подходит, можете взять готовое (есть и бесплатные). Чего-то стандартного просто в принципе быть не может, если говорить глобально. Стандартными можно назвать операции по той же выборке данных из базы, то есть нечто на низком уровне, еще что-то, но чтобы скрипт "раскрасил таблицу в горошек", для этого в нем такая возможность должна быть описана программно, это уже не стандартное желание.

Цитата:

Сообщение от Atridies
Т.е. правильно я понимаю: с клиента идет запрос на *.php файл, который преобразует этот запрос в определенный запрос к БД (вида "SELECT...") ?

Да, например запрос к my.php, в котором запрос (для простоты пусть оригинальный MySQL):

if($q = mysql_query("SELECT * FROM interface ORDER BY datarate")) {
    //здесь получение строк записей из возвращенного ресурса $q
    //для просто поместить эти данные на клиенте в таблицу, достаточно индексного набора
    if(mysql_num_rows($q)) {    
        $a = [];
        while ($r = mysql_fetch_row($q)) $a[] = array_map('htmlspecialchars', $r);
        //выдача данных клиенту
        //сайт должен работать в UTF, так как только с этой кодировкой работает json_encode
        //хотя можно прибегнуть к конвертированию, но это лишняя и неоправданная нагрузка
        echo json_encode($a);        
    } else { //иначе база данных не содержит записей } 
} else {
   //в случае ошибки запроса к базе
}


где, mysql_query - функция делающая запрос к базе и она есть часть библиотеки php_mysql.dll. Читайте по ссылке о функциях РНР для работы с базами данных (соответственно выбранного расширения).

На клиенте по получению данных (метод .ajax()):

success: function(data){
       if(!!data) {
           //будем считать, что таблица имеет описанный заголовок колонок ее в THEAD, а данные помещаются в TBODY, и таблица имеет id="mytable"
           var t = $('#mytable tbody').empty(), r;
           while(r = data.pop()) t.prepend('<tr><td>' + r.join('</td><td>') + '</td></tr>');  
       } 
  }


Часовой пояс GMT +3, время: 16:04.