Sdscompany.ru

Компьютерный журнал
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Передать текст запроса sql в html

Передать текст запроса sql в html

SQL html

Всем привет. Сегодня мы рассмотрим работу с api Web SQL которое позволяет нам хранить данные в локальной базе данных в браузере. Данный api работает примерно потому же принципу что и localStorage. Отличие в том что localStorage хранит данные в виде пары ключ и значение, а Api Web SQL хранит данные в таблицах локальной базы данных. И для обращения к таблицам базы используются SQL запросы. Кросс доменные ограничения также распространяются на данный api. То есть вы не сможете использовать общую базу данных на разных доменах. Итак, приступим!

Первое что нам необходимо сделать, создать базу и установить с ней соединение. Делается это одной строчкой.

C помощью данного кода мы создали базу данных с названием DB, указали ей версию 0.1 и описание «My first dataBases web SQL», последним параметром мы выставили приблизительный размер 200000 выделенный под содержимое базы.

В переменной dataBases у нас теперь хранится соединение с базой данных. Для проверки успешного соединения с базой нам необходимо выполнить следующий код.

При успешном соединении идем далее. Следующим шагом у нас будет создание таблиц в базе данных.

C помощью данного кода мы создали таблицу user. Здесь мы уже воспользовались sql запросом «CREATE TABLE IF NOT EXISTS `user`(id INTEGER PRIMARY KEY, name TEXT, age INT)».

Те кто слабо знаком с SQL поясню, мы создаем таблицу `user` ,если она не существует, со следующими полями(столбцами) id , name и age. Cправа от каждого названия поля мы указываем тип данных который он будет содержать. INTEGER , INT- целочисленный, TEXT — текстовой, PRIMARY KEY — уникальный ключ включает c собой автозаполнение autoicrement.

Для отправки и формирования запроса мы воспользовались такой конструкцией:

где dataBases — переменная содержащая соединение с базой данных,

transaction() — метод для отправки sql запроса к базе данных соединения,

executeSql() — Формирование sql запроса. Заметьте что метод executeSql() принимает в себя четыре аргумента.

Первый это сам sql — запрос. Вторым параметром идет массив, он может в себя принимать разные элементы которые мы можем через знак вопроса(?) по порядку подставлять в сам запрос. Что то вроде шаблонизатора.

Последние два аргумента это функции. Первая вызывается если sql запрос сформирован правильно и не содержит ошибок, вторая как раз вызывается при неправильном формировании sql -запроса.

Отлично! Идем дальше!

После создания таблицы мы можем начать ее наполнять своими данными.

Здесь мы сформировали новый sql запрос с помощью которого добавляем новую строчку в таблицу user где в поле name помещаем значение «Andrey», а в age — 24. Заметьте что здесь мы воспользовались для удобства вторым параметром, массивом элементы которого последовательно подставляются вместо знаков вопроса(?) в самом запросе.

Теперь рассмотрим вывод значений из таблицы:

С помощью данного кода мы выведем все строки и их поля таблицы user. Причем если вы не закомментировали предыдущую строчку с добавлением новых значений, то при каждой перезагрузке страницы нам будет добавляться новая строка. Обратите внимание на поле id. При добавлении данных в таблицу мы его не указывали. Оно заполняется самостоятельно благодаря типу INTEGER и первичному(уникальному) ключу PRIMARY KEY который мы указали при создании таблицы. Это поле лучше использовать во всех таблицах, так как оно неповторимо, уникально и позволяет более точно указывать какую строку мы хотим обновить или удалить.

Обновление и удаление это наши последние операции которые мы рассмотрим.

Итак, рассмотрим пример с удалением. Допустим мы хотим удалить строку из таблицы с id=1. То есть это по сути первый элемент таблицы.

После выполнения данного кода строка с id равная 1, будет удалена из таблицы user. Теперь возможно вы понимаете для чего нужен id. С помощью него мы можем идентифицировать каждую строку в таблице получить, обновить, удалить ее не затрагивая другие строки.

Читать еще:  Solvo team meeting html

Если мы хотим удалить все данные из таблицы нам достаточно не указывать условие WHERE.

C помощью данного кода мы полностью очистим таблицу user.

И в завершении данной статьи рассмотрим обновление данных в таблице.

Допустим мы хотим обновить значения полей таблицы user в строке с id=3.

Здесь с помощью sql запроса обновления(update) мы в строке с id=3 изменили значение поля name и age. В поле name мы установили значение Maks, а в поле age — 30.

Вот в принципе и все что я хотел вам рассказать про API web SQL.

API web SQL позволяет нам создавать мощные приложения имеющие свою локальную базу данных которая будет хранится на стороне клиента. Конечно для того чтобы им пользоваться необходимо уметь строить и понимать основные sql запросы. Без этого никак.

Использование данного api в небольших проектах не имеет особого смысла. Так как существует тот же самый api localStorage.

В общем лучше использовать данное api когда нет других альтернатив. Если у вас остались или появились вопросы оставляйте их в комментариях или пишите в группу

На этом у меня все. Желаю вам успехов и удачи! Пока!

SQL-запросы из web-страницы

Работа с БД с помощью SQL-запросов.

В предыдущей части рассказывается, что такое MySQL, и как создавать базы и таблицы с помощью phpMyadmin, а сейчас речь пойдёт о вводе и выводе информации с помощью своей веб-страницы.

Итак, у нас есть БД домашней библиотеки — homelib и таблица polka1.

Теперь нужно сделать html-страницу из которой мы будем добавлять книги/записи в БД в таблицу polka1.

Создаём файл index.html.

Маленький нюанс, надо в теги дописать букву ‘r’

Создаём файл style.css

Зайдите в браузер /. Должно получиться так:

Здесь всё просто, вводим имя автора, название книги и вставляем текст. Поле для текста совсем маленькое, но оно предназначено только для копипасты.

Нажатие на кнопку вызывает скрипт rec.php и передаёт ему содержимое полей.

Чтобы заработало, надо создать rec.php:

Объяснение работы заключено в комментариях. Файл (connect.php) с данными для аутинтефикации в базе, сделаем отдельно, чтоб его можно было подключать в других скриптах.

Создаём connect.php.

В предыдущей части, мы создали базу с именем homelib и её пользователем homelib с паролем 12345

Все файлы должны лежать в одной папке.

Теперь введите данные и нажмите «Записать». В БД появится новая книжка.

Если что-то не работает, то проверьте права на файлы, логин и пароль.

Следующим этапом, будет вывод всех писателей и названий из БД, а также возможность читать определённую книгу.

Изменим существующий index.html вот так:

Допишите в теги букву ‘r’.

И дополним файл style.css

Не хватает обработчика нажатия на кнопку, это файл allauthor.php, сделаем его:

Нажатие переведёт пользователя на страницу со списком авторов и их книг, сохранённых в таблице polka1.

Создадим обработчик (read.php) нажатия на кнопку «Читать», она будет выводить на отдельную страничку текст книги.

read.php

Теперь если ввести в поле номер книги и нажать «Читать», то откроется страница с текстом.


Внизу будут кнопки возврата к поиску и на главную страницу.

Ну вот, Вы научились вводить и выводить данные со своей html-странички.

Материал написан для ознакомления с БД и не подходит для работы на сервере имеющем доступ в интернет, так как может быть подвержен sql инъекциям .

Вывод в HTML-таблице на Web-странице результатов запроса в базу данных SQL

Для считывания данных из базы данных и вывода их на Web-странице РНР-сценарий должен выполнить три операции. Во-первых, сценарий должен установить соединение с СУБД с помощью вызова встроенной функции соединения с базой данных, например, функции mysql_connect(), которая позволяет установить соединение с СУБД MySQL. Во-вторых, сценарий должен по установленному соединению с СУБД отправить запрос с помощью встроенной функции отправки SQL-запроса, например, функции mysql_query(), которая позволяет PHP-сценарию передавать на выполнение СУБД операторы SQL. В-третьих, после помещения СУБД результатов запроса в выходной буфер Web-сервера сценарий должен считать данные из буфера и вывести их на Web-странице. Например, при работе с MySQL сценарий может использовать встроенную функцию mysql_fetch_array(), которая считывает строку результатов SQL-запроса из буфера СУБД и помещает значения столбцов строки в массив элементов. Затем, сценарий может выполнить оператор echo или вызывать функцию print() для вывода значений полей таблицы базы данных на Web-страницу.

Читать еще:  Gildiamasterov ru progs projects php

Предположим, например, что используется СУБД MySQL и в HTML-таблице на Web-странице необходимо вывести данные из SQL-таблицы с именем «Продукты», содержащейся в базе данных «Товары». Прежде всего, нужно выполнить вызов функции mysql_connect() следующего вида:

$link = mysql_connect($db_host, $db_user, $db_pass);

$db_host содержит строку «localhost» (если сервер MySQL находится на том же компьютере, что и Web-сервер) или строку с IP-адресом компьютера, где находится сервер MySQL, с которым необходимо установить соединение. (Для получения IP-адреса сервера MySQL нужно связаться с Internet-провайдером.) Остальные два аргумента, $db_user и $db_pass, содержат имя пользователя и пароль, необходимые функции mysql_connect() для установки соединения с СУБД MySQL. При работе с СУБД MySQL с аргументами, установленными по умолчанию, войти в базу данных можно с именем пользователя $db_user=»root» и паролем $db_pass=»password».

Инструкция с функцией mysql_connect() присваивает переменной $link идентификатор соединения с СУБД или значение false, если попытка установить соединение не удалась. Поскольку время от времени случаются ошибки, с помощью оператора if нужно проверить значение переменной $link, и в случае необходимости выведите на экран сообщение об ошибке. Если попытка установки соединения завершается успешно, для выбора базы данных с таблицами, данные которых будут считываться в запросе, можно воспользоваться вызовом функции, приведенным в следующем примере:

if (!mysql_select_db($db_name, $link)

// Инструкции, обрабатывающие случай неудавшейся попытки

// использования базы данных

// Обработка после успешной установки соединения и выбора

Сервер MySQL, как правило, поддерживает несколько баз данных, поэтому нужно выбрать базу данных, содержащую нужные таблицы. В приведенном примере $db_name содержит строку «Товары», a $link — идентификатор соединения с базой данных, возвращенный функцией mysql_connect(). Как и ранее, необходимо проверить данные, возвращаемые PHP-функцией (в данном примере функцией mysql_select_db()), чтобы убедиться, что выбор базы данных был выполнен успешно. Функция mysql_select_db() возвращает true при успешном выборе базы данных и false — в противном случае.

После успешной установки соединения с СУБД MySQL и выбора базы данных для выполнения запроса нужно вызвать функцию mysql_query(), как показано в следующем примере:

$result = mysql_query($query, $link);

В приведенном примере, в котором считывается содержимое таблицы products, аргумент $query содержит SQL-команду:

SELECT * FROM Продукты ORDER BY название

Как и ранее, параметр $link содержит идентификатор соединения с базой данных, возвращенный успешно выполненной функцией mysql_connect(), вызов которой находится в начале сценария. Функция mysql_query() возвращает false (если СУБД по какой-то причине не смогла выполнить переданный ей SQL-оператор) или указатель на место, куда СУБД поместила результаты выполнения запроса.

Для считывания результатов запроса (т. е. строк данных, которые запрос выбрал из таблицы products) нужно несколько раз вызвать функцию mysql_fetch_array() для считывания всех строк результатов запроса и сохранения их в массиве. Затем нужно вывести данные из массива на Web-страницу. Например, следующий сценарий извлекает количество полей (возвращенных в результатах запроса), их имена и типы, и выводит значения столбцов, содержащихся в результатах запроса, в виде HTML-таблицы, которую сценарий создает на Web-странице:

// Определить количество полей, возвращенных в результате запроса

$fields = mysql_num_f ields ($result);

// Начать определение HTML-таблицы

// Вывести на экран названия столбцов в виде заголовков

Передать текст запроса sql в html

Как передать текст из edit в SQL запрос?

Читать еще:  Get в php


big_bugzy ( 2004-04-08 10:17 ) [1]

Если это ADO компонент то, к примеру
ADODataSet.CommandText:=Edit.Text;

Если это BDE компонент то примерно так:


Семен Сорокин © ( 2004-04-08 10:27 ) [2]

может автору параметр нужно передать?
Query.SQL.Clear;
Query.SQL.ADD(«SELECT * FROM table WHERE field = :txt»);
Query.Parameters.ParamByName(«txt»).Value := Edit1.Text;


Slider007 © ( 2004-04-08 12:12 ) [3]

А можно так:
Query.SQL.Text := Format(«SELECT * FROM table WHERE field = %s»,[Edit1.Text]);


Anatoly Podgoretsky © ( 2004-04-08 12:13 ) [4]

Черезт параметры или динамическое формирование запроса. Оба варианта привели


ev ( 2004-04-08 14:48 ) [5]

Slider007. У меня этот код работает только с числами а как можно передовать текст.


Крутов Алексей ( 2004-04-08 14:56 ) [6]

А ты его в число преобразуй
TextToNumber()


Vlad © ( 2004-04-08 14:56 ) [7]


mur ( 2004-04-20 18:27 ) [8]

как сделать, чтобы не учитывался регистр?


clickmaker © ( 2004-04-20 18:30 ) [9]


> mur (20.04.04 18:27) [8]
> как сделать, чтобы не учитывался регистр?

«SELECT * FROM table WHERE upper(field) = upper(%s)»


kaif © ( 2004-04-20 18:57 ) [10]

Лучше так:
Query.SQL.Clear;
Query.SQL.ADD(«SELECT * FROM table WHERE upper(field) = :txt»);
Query.Parameters.ParamByName(«txt»).AsString := AnsiUpperCase(Edit1.Text);


mur ( 2004-04-20 19:24 ) [11]

куда надо «%» вставить, чтобы было частичное совпадение.


kaif © ( 2004-04-21 00:36 ) [12]

%s — неважно, что слева
s% — неважно, что справа
%s% — неважно, ни что слева, ни что справа от подстроки s.

SQL — Урок 5. Вложенные запросы

В прошлом уроке мы столкнулись с одним неудобством. Когда мы хотели узнать, кто создал тему «велосипеды», и делали соответствующий запрос:

Вместо имени автора, мы получали его идентификатор. Это и понятно, ведь мы делали запрос к одной таблице — Темы, а имена авторов тем хранятся в другой таблице — Пользователи. Поэтому, узнав идентификатор автора темы, нам надо сделать еще один запрос — к таблице Пользователи, чтобы узнать его имя:

В SQL предусмотрена возможность объединять такие запросы в один путем превращения одного из них в подзапрос (вложенный запрос). Итак, чтобы узнать, кто создал тему «велосипеды», мы сделаем следующий запрос:

То есть, после ключевого слова WHERE, в условие мы записываем еще один запрос. MySQL сначала обрабатывает подзапрос, возвращает id_author=2, и это значение передается в предложение WHERE внешнего запроса.

В одном запросе может быть несколько подзапросов, синтаксис у такого запроса следующий:

Обратите внимание, что подзапросы могут выбирать только один столбец, значения которого они будут возвращать внешнему запросу. Попытка выбрать несколько столбцов приведет к ошибке.

Давайте для закрепления составим еще один запрос, узнаем, какие сообщения на форуме оставлял автор темы «велосипеды»:

Теперь усложним задачу, узнаем, в каких темах оставлял сообщения автор темы «велосипеды»:

Давайте разберемся, как это работает.

    Сначала MySQL выполнит самый глубокий запрос:

Полученный результат (id_author=2) передаст во внешний запрос, который примет вид:

Полученный результат (id_topic:4,1) передаст во внешний запрос, который примет вид:

  • И выдаст окончательный результат (topic_name: о рыбалке, о рыбалке). Т.е. автор темы «велосипеды» оставлял сообщения в теме «О рыбалке», созданной Сергеем (id=1) и в теме «О рыбалке», созданной Светой (id=4).
  • Вот собственно и все, что хотелось сказать о вложенных запросах. Хотя, есть два момента, на которые стоит обратить внимание:

    • Не рекомендуется создавать запросы со степенью вложения больше трех. Это приводит к увеличению времени выполнения и к сложности восприятия кода.

      Приведенный синтаксис вложенных запросов, скорее наиболее употребительный, но вовсе не единственный. Например, мы могли бы вместо запроса

      Т.е. мы можем использовать любые операторы, используемые с ключевым словом WHERE (их мы изучали в прошлом уроке).

    Видеоуроки php + mysql

    Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.

    Ссылка на основную публикацию
    Adblock
    detector