Kwert-soft.ru

IT Софт для ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Поиск по базе данных mysql php

поиск в базе данных на php

04.05.2011, 14:54

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

Php + postgresql поиск по базе данных
Народ ну подскажите плиз, ни как не могу понять как допилить. Что нужно: 1. Есть большая база.

КАК сделать поиск пополю с базе данных на PHP.
помогите кто-нибудь сделать поиск по полю в базе данных. есть готовая. только поиск пополю не.

Доступ к базе данных на базе хранимых процедур MySQL из php
Добрый день возник вопрос по доступ к базе данных на базе хранимых процедур MySQL из php Из файла.

04.05.2011, 17:29204.05.2011, 17:45 [ТС]304.05.2011, 17:584

форма которая методом post будет отправлять из нашего текстового поля ФИО через переменную $fio скрипт(script.php), который уже и будет искать в базе.

————————
не забываем про Отзыв +1, если помог =)

HTML5
04.05.2011, 18:23 [ТС]5

action=»script.php». скрипт . пхп. это имя основного файла пхп в моей программе.
у меня главный файл называется f.php. значит вместо script.php надо будит написать f.php.

я хочу чтоб у меня на главной форме программы было поле для ввода параметров поиска. значит мне можно ваш код хтмл просто добавить в тот файл в котором прописан интерфейс этой главной формы??

04.05.2011, 18:496

да, заменить на f.php, но в это файле надо будет заменить переменную $fio, где содержиться ФИО на $_POST[‘fio’], либо в начале скрипта просто приравнять $fio = $_POST[‘fio’]

да можно, но желательно видеть что за код в этом файле находиться.

04.05.2011, 19:02 [ТС]7

всё так запутанно. (((. вы не могли бы мне туда всё вписать, если бы я вам скинула свою базу данных?

Добавлено через 7 минут
вот тот т п л файл

04.05.2011, 19:218
04.05.2011, 20:01 [ТС]9

ну н езнаю..просто мне всё непонятно..а помочь некому((

Добавлено через 20 минут
пишет такую ошибку Parse error: syntax error, unexpected T_VARIABLE в строке
$query5 = («SELECT )»);
подскажите что тут неправильно написанно.

04.05.2011, 20:2710
04.05.2011, 21:25 [ТС]11

в итоге я написала вот так $query5 = mysql_query(«SELECT ,$dbl);
//$q5 = mysql_query($query);
$result = mysql_fetch_array($q);
echo «$f[‘fio_z’] $f[‘date’] $f[‘adres’]»;
но ругается на эту строчку :echo «$f[‘fio_z’] $f[‘date’] $f[‘adres’]»;. что-то тут не так.
а кстате на главной форме не отброжается никакого поля. только кнопка отправить. ((

Добавлено через 5 минут
и кстате ругается на эту первую строчку $fio_r = $_POST[‘fio_r’]
значит может и взапросе надо писать не
WHERE fio_r='».$fio_r.»‘;»,$dbl); а $_POST[‘fio_r’]
и тут неправильно:
//echo «$f[‘fio_z’] $f[‘date’] $f[‘adres’]»; блин ваще нифига непонятно..всё нихочет работать((((((((((((

04.05.2011, 21:3112
HTML5
HTML5
HTML5
HTML5
04.05.2011, 21:41 [ТС]13

в итоге я написала вот так:
<
$fio_r = $_POST[«fio_r»];
$query5 = mysql_query(«SELECT ,$dbl);
$result = mysql_fetch_array($q5); -> на эту строчечку ругается, бд выводится но вверху пишется ошибочка ( Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource)
я не знаю ещё что писать в echo. мне нужно что б выводился вот этот запрос..так как при нажатии на найденую фамилию должны выводится другие данные со второй формы..и это происходит в этом запросе:
$query = getSQLrow(«SELECT id, fio_r, fio_z,DATE(data), adres FROM spisok $query5 ORDER BY fio_r ASC»);
$smarty->assign(«spisokdeti»,$query);
> вот я и думаю как же мне echo записать правильно?((

Добавлено через 2 минуты
в хтмл коде у меня тоже уже фио_р

так что пусть может так и остаётся?

Добавлено через 2 минуты
в самом запросе WHERE fio_r='».$fio_r.»‘;»,$dbl); . может там надо где уже переменную $_POST[«fio_r»]; писать. или нет. не знаю кароче. при нажатии на кнопку отправить ничего не срабатывает!

Связь с базами данных MySQL

СУБД MySQL — одна из множества баз данных, поддерживаемых в PHP. Система MySQL распространяется бесплатно и обладает достаточной мощностью для решения реальных задач.

Краткое введение в MySQL

SQL — это аббревиатура от слов Structured Query Language, что означает структурированный язык запросов. Этот язык является стандартным средством для доступа к различным базам данных.

Система MySQL представляет собой сервер, к которому могут подключаться пользователи удаленных компьютеров.

Для работы с базами данных удобно пользоваться средством, входящее в комплект Web-разработчика: Denwer phpMyAdmin. Здесь можно создать новую базу данных, создать новую таблицу в выбранной базе данных, заполнить таблицу данными, а также добавлять, удалять и редактировать данные.

В MySQL определены три базовых типа данных: числовой, дата и время и строчный. Каждая из этих категорий подразделяется на множество типов. Основные из них:

ТипОписание
INT

Целое число

TINYINT

Маленькое целое число (-127 до 128 или от 0 до 255)

FLOAT

Вещественное число с плавающей точкой

DATE

Дата. Отображается в виде ГГГГ-ММ-ДД

TIME

Время. Отображается в виде ЧЧ:ММ:СС

DATETIME

Дата и время. Отображается в виде ГГГГ-ММ-ДДЧЧ:ММ:СС

YEAR[(2|4)]

Год. Можно определить двух- или четырехциферный формат

CHAR(M)

Строка фиксированной длины М (M
ТипОписание
NOT NULL

Все строки таблицы должны иметь значение в этом атрибуте. Если не указано, поле может быть пустым (NULL)
AUTO_INCREMENT

Специальная возможность MySQL, которую можно задействовать в числовых столбцах. Если при вставке строк в таблицу оставлять такое поле пустым, MySQL автоматически генерирует уникальное значение идентификатора. Это значение будет на единицу больше максимального значения, уже существующего в столбце. В каждой таблице может быть не больше одного такого поля. Столбцы с AUTO_INCREMENT должны быть проиндексированными
PRIMARY KEY

Столбец является первичным ключом для таблицы. Данные в этом столбце должны быть уникальными. MySQL автоматически индексирует этот столбец
UNSIGNED

После целочисленного типа означает, что его значение может быть либо положительным, либо нулевым
COMMENTНазвание столбца таблицы

Создание новой базы данных MySQL осуществляется при помощи SQL-команды CREATE DATABASE.

Создание новой таблицы осуществляется при помощи SQL-команды CREATE TABLE. Например, таблица books для книжного магазина будет содержать пять полей: ISBN, автор, название, цена и количество экземпляров: Чтобы избежать сообщения об ошибке, если таблица уже есть необходимо изменить первую строчку, добавив фразу «IF NOT EXISTS»:

Для создания автообновляемого поля с текущей датой типа TIMESTAMP или DATETIME используйте следующую конструкцию:

Добавление данных в эту таблицу осуществляется при помощи SQL-команды INSERT. Например:

Для извлечения данных из таблицы служит оператор SELECT. Он извлекает данные из базы, выбирая строки, которые отвечают заданному критерию поиска. Оператор SELECT сопровождает немалое количество опций и вариантов использования.

Символ * означает, что необходимы все поля. Например:

Для получения доступа только к некоторому полю следует указать его имя в инструкции SELECT. Например:

Чтобы получить доступ к подмножеству строк в таблице, следует указать критерий выбора, который устанавливает конструкция WHERE. Например, чтобы выбрать имеющиеся в наличии недорогие книги о PHP, надо составить запрос: % Соответствует любому количеству символов, даже нулевых
_ Соответствует ровно одному символу

Для того, чтобы строки, извлеченные по запросу, перечислялись в определенном порядке, используется конструкция ORDER BY. Например:

По умолчанию порядок сортировки идет по возрастанию. Изменить порядок сортировки на обратный можно с помощью ключевого слова DESC:

Сортировать можно и по нескольким столбцам. Вместо названий столбцов можно использовать их порядковые номера:

Для изменения ранее записанных в таблицу значений нужно воспользоваться командой UPDATE. Например, цену всех книг повысили на 10%:

Конструкция WHERE ограничит работу UPDATE определенным строками. Например:

Для удаления строк из базы данных используется оператор DELETE. Ненужные строки указываются при помощи конструкции WHERE. Например, какие-то книги проданы:

Если нужно удалить все записи

Для полного удаления таблицы используется:

Связь PHP с базой данных MySQL

Поработав с phpMyAdmin над созданием базы данных, можно приступить к подключению этой базы данных к внешнему Web-интерфейсу.

Чтобы получить доступ к базе данных из Web, используя PHP, надо сделать следующие основные шаги:

  • Подключение к серверу MySQL.
  • Выбор базы данных.
  • Выполнение запроса к базе данных:
    • добавление;
    • удаление;
    • изменение;
    • поиск;
    • сортировка.
  • Получение результата запроса.
  • Отсоединение от базы данных.

Для подключения к серверу базы данных в PHP есть функция mysql_connect( ). Ее аргументы: имя компьютера, имя пользователя и пароль. Эти аргументы можно опустить. По умолчанию имя компьютера = localhost, тогда имя пользователя и пароль не требуется. Если PHP используется в сочетании с сервером Apache, то можно воспользоваться функцией mysql_pconnect(). В этом случае соединение с сервером не исчезает после завершения работы программы или вызова функции mysql_close(). Функции mysql_connect() и mysql_pconnect() возвращают идентификатор подключения, если все прошло успешно. Например:

После того, как соединение с сервером MySQL установлено, нужно выбрать базу данных. Для этого используется функция mysql_select_db(). Ее аргумент: имя базы данных. Функция возвращает true, если указанная база данных существует и доступ к ней возможен. Например:

Для добавления, удаления, изменения и выбора данных нужно сконструировать и выполнить запрос SQL. Для этого в языке PHP существует функция mysql_query(). Ее аргумент: строка с запросом. Функция возвращает идентификатор запроса.

Пример 1

При каждом выполнении примера 1 в таблицу будет добавляться новая запись, содержащая одни и те же данные. Разумеется имеет смысл добавлять в базу данные, введенные пользователем.

В примере 2.1 приведена HTML-форма для добавления новых книг в базу данных.

Пример 2.1

Результаты заполнения этой формы передаются в insert_book.php.

Пример 2.2

В примере 2.2 введенные строковые данные обработаны функцией addslashes(). Эта функция добавляет обратные слеши перед одинарными кавычками (‘), двойными кавычками («), обратным слешем () и null-байтом. Дело в том, что по требованиям систаксиса запросов баз данных такие символы дожны заключаться в кавычки.

Для определения количества записей в результате запроса используется функция mysql_num_rows().

Все записи результата запроса можно просмотреть в цикле. Перед этим с помощью функции mysql_fetch_[] для каждой записи получают ассоциативный массив.

В примере 3.1 приведена HTML-форма для поиска определенных книг в базе данных.

Пример 3.1

Результаты заполнения этой формы передаются в search_book.php.

Пример 3.2

Альтернативный вариант

Итак, как работает архитектура Web-баз данных:

  1. Web-браузер пользователя выдает HTTP-запрос определенной Web-страницы. Например, пользователь, используя HTML-форму, ищет все книги о PHP. Страница обработки формы называется search_book.php.
  2. Web-сервер принимает запрос на search_book.php, извлекает этот файл и передает на обработку механизму PHP.
  3. PHP выполняет соединение с MySQL-сервером и отправляет запрос.
  4. Сервер принимает запрос к базе данных, обрабатывает его и отправляет результат (список книг) обратно механизму PHP.
  5. Механизм PHP завершает выполнение сценария, форматирует результат запроса в HTML. После этого результат в виде HTML возвращается Web-серверу.
  6. Web-сервер пересылает HTML в браузер, и пользователь имеет возможность просмотреть запрошенный список книг.

Использование механизма транзакций

Использование механизма транзакция на примере как передать деньги от одного человека другому

SELECT … FOR UPDATE

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

Чтобы избежать вышеупомянутой ситуации необходимо выполнить не просто SELECT запрос, а его расширенную версию, о которой многие и не подозревают: SELECT … FOR UPDATE.

Таким образом, при выполнении данного запроса, все затронутые записи в базе данных будут заблокированы до завершения сеанса работы с БД или до момента обновления данных записей. Другой скрипт не сможет выбрать заблокированные записи до тех пор, пока не наступит одно из упомянутых условий.

Однако не всё так просто. Вам нужно выполнить ещё несколько условий. Во-первых, ваша таблица должна быть создана на основе архитектуры InnoDB. В противном случае блокировка просто не будет срабатывать. Во-вторых, перед выполнением выборки необходимо отключить авто-коммит запроса. Т.е. другими словами автоматическое выполнение запроса. После того как вы укажите UPDATE запрос, необходимо будет ещё раз обратиться к базе и закоммитить изменения с помощью команды COMMIT:

Представьте что у нас есть 2 записи в таблице. Мы запускаем два параллельных скрипта с данным содержанием. В результате, первый процесс, который сможет достучаться до базы сделает выборку записи и сразу же заменит значение в поле locked на 1. В результате второй скрипт проигнорирует первую запись. В данном случае, даже если скрипты достучались бы до БД одновременно, второй скрипт всё равно не смог бы выбрать первую запись, т.к. при выборке первым процессом она будет заблокирована.

Читать еще:  Форма заказа php
Ссылка на основную публикацию
Adblock
detector