Php mysql запись в таблицу

Создание кнопки на сайте для получения значений из базы данных MySQL

К тому коду, который вам уже известен — базовый запрос к БД — осталось добавить html-код кнопки через тег (позволяет создавать на сайте интерактивные элементы и отправлять данные на сервер).

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

Важно присвоить форме — любое имя, на которое затем можно ссылаться в программе). На сайте кнопку, списки, выпадающие меню можно сделать с помощью форм, которые могут быть типа (method=’POST’) или (method=’GET’). Если делать форму , то пользователь не будет видеть в строке браузера текст, соответствующий выбранным опциям

Если сделать форму , то строка браузера после выбора варианта покажет значение (похожим образом работает поисковик, если сделать запрос, то в строку браузера добавляется информация о запросе).ᅠ

На сайте кнопку, списки, выпадающие меню можно сделать с помощью форм, которые могут быть типа (method=’POST’) или (method=’GET’). Если делать форму , то пользователь не будет видеть в строке браузера текст, соответствующий выбранным опциям. Если сделать форму , то строка браузера после выбора варианта покажет значение (похожим образом работает поисковик, если сделать запрос, то в строку браузера добавляется информация о запросе).ᅠ

<?phpif (isset($_POST)){echo » <form action=» method=’POST’><input type=’submit’ name=’submitID’ /></form>«;}

ini_set(‘display_errors’, 1);ini_set(‘display_startup_errors’, 1);error_reporting(E_ALL);

$connect = mysqli_connect(‘localhost’, ‘database’, ‘password’, ‘user’);$query1 = «SELECT Name FROM igroki WHERE N=’7′»;$result = $connect->query($query1);$record = mysqli_fetch_array($result);

if (isset($_POST)){echo ‘Name of 7th player: ‘ . $record;}

$connect -> close();?>

Соединение через SSH туннель

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

Подключение в Windows

В данной ОС соединение по SSH протоколу можно осуществить с помощью специальных программ для управления базами данных. Например, PuTTY (бесплатная программа) или SecureCRT (платное ПО, но с пробной версией на 30 дней).

Мы для работы выбрали PuTTY. Скачиваем установщик с официального сайта и устанавливаем приложение. Запускаем программу, затем переходим в раздел «Session». В поле «Host Name» вводим свой домен или указываем его IP-адрес.

Далее переходим в категорию «Connection», открываем вкладку «SSH», затем «Tunnels». В поле «Source Port» указываем значение 3306, в «Destination» вбиваем localhost:3306, потом жмем на кнопку «Add» для добавления порта в список. И только потом жмем кнопку «Open» для установления соединения с хостом.

Логин и пароль те же самые, которые используются для входа в панель управления. При подключении используем имя пользователя и пароль, выданные при создании базы данных. Адрес сервера — 127.0.0.1, порт для подключения 3306.

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

Подключение в Linux

В ОС Linux никакого дополнительного ПО устанавливать не придется, можно все провести через командную строку «Терминал». Перед тем как подключиться к MySQL удаленно, нужно создать SSH-туннель. Вводим вот такую команду:

ssh -L3306:localhost:3306 -n логин@site.com

Потом в конфигурационном файле MySQL потребуется изменить параметр, отвечающий за удаленное подключение. Открываем в «Терминале» файл, дав вот такую команду:

sudo nano /etc/mysql/my.cnf

Далее комментируем нужную нам строку. В итоге она должна выглядеть вот таким образом:

# bind-address = 127.0.0.1

Сохраняем изменения, потом перезапускаем MySQL вот такой командой:

sudo service mysql restart

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

GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY 'пароль'

Так мы создадим пользователя с неограниченным доступом ко всем базам на указанном сервере. Потом проверяем подключение утилитой telnet. Если сервер запрос не отклонил, значит, пора приступать к подключению. Для этого можно задать команды вот таких типов:

mysql -u имя_пользователя –h 127.0.0.1 –p

mysql -h наименование_хоста -u dbUser -p dbName

Как проверить соединение с базой данных MySQL

Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:

telnet 127.0.0.1 3306

Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.

Поиск определенного сотрудника

Чтобы отобразить информацию об остальном персонале, которая передается через уникальное id внутри нашей ссылки, нужно добавить следующий код прямо после закрывающей фигурной скобки в скрипте letter, как показано ниже:

}//Окончание скрипта 
if(isset($_GET)){ 
$contactid=$_GET; 
//Подключение к базе данных 
$db=mysql_connect  ("servername", "username",  "password") or die ('Я не могу подключиться к базе данных, так как: ' . mysql_error()); 
//-select  the database to use 
$mydb=mysql_select_db("yourDatabase"); 
//- Запрос к таблице базы данных
$sql="SELECT  * FROM Contacts WHERE ID=" . $contactid; 
//- Запустить запрос к функции mysql_query()
$result=mysql_query($sql); 
//- Запуск цикла и сортировка результатов
while($row=mysql_fetch_array($result)){ 
  $FirstName =$row; 
            $LastName=$row; 
            $PhoneNumber=$row; 
            $Email=$row; 
//- Вывести результат в массиве
echo  "<ul>n"; 
echo  "<li>" . $FirstName . " " . $LastName .  "</li>n"; 
echo  "<li>" . $PhoneNumber . "</li>n"; 
echo  "<li>" . "<a href=mailto:" . $Email .  ">" . $Email . "</a></li>n"; 
echo  "</ul>"; 
} 
}

Здесь мы изменили четыре фрагмента кода:

  • Мы используем функцию isset(), и с ее помощью проверяем значение ID в массиве $_GET;
  • Создаем переменную $contactid и инициализируем ее массивом $_GET;
  • В таблице выделяем все, что отмечено звездочкой *. Звездочка – это сокращенное обозначение в SQL, которое означает «дайте мне все столбцы и строки из таблицы». Чтобы определить, какую информацию выводить, мы упоминаем переменную contactid в конце SQL-выражения;
  • Выводим дополнительную информацию о каждом представителе персонала.

Сохраните файл search_byid.php и проверьте результат.

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

Если навести курсор на ссылку, то в строке статуса можно увидеть уникальный ID. Если кликнуть по конкретному человеку, то адресная строка изменится, и отобразится дополнительная информация об этом сотруднике.

В завершение

В сегодняшней статье мы рассмотрели, как сделать поиск по сайту, а также:

  • Создавать базы данных и соответствующие таблицы;
  • Использовать инструменты для управления базами данных, создавать столбцы и вводить данные;
  • Разрабатывать формы поиска на основе PHP, которая умеет осуществлять проверку вводимых данных, наличия переменных в запросе, а также соединяться с базой данных и выводить результаты из таблицы;
  • Как защитить приложение и базу данных от SQL-инъекций.

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

Валентин Сейидовавтор-переводчик статьи «How to Create a Search Feature with PHP and MySQL»

Как подключиться к MySQL серверу с помощью PHP?

Для возможности обмена данными между PHP и MySQL необходимо установить соединение.

Подключение через MySQLi (объектно-ориентированный подход)

<?php
$server = «localhost»;
$user = «root»;
$password = «MySafePass4!»;

// Открываем соединение
$mysqli_connection = new mysqli($server, $user, $password);

// Проверка результата подключения
if ($mysqli_connection->connect_error) {
die(«Подключение не удалось: » . $mysqli_connection->connect_error);
}
echo «Подключение прошло успешно!»;

// Закрываем соединение
$mysqli_connection->close();
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<?php

$server=»localhost»;

$user=»root»;

$password=»MySafePass4!»;

 
// Открываем соединение

$mysqli_connection=newmysqli($server,$user,$password);

 
// Проверка результата подключения

if($mysqli_connection->connect_error){

die(«Подключение не удалось: «.$mysqli_connection->connect_error);

}

echo»Подключение прошло успешно!»;

 
// Закрываем соединение

$mysqli_connection->close();

?>

Подключение через MySQLi (процедурный подход)

<?php
$server = «localhost»;
$user = «root»;
$password = «MySafePass4!»;

// Открываем соединение
$mysqli_connection = mysqli_connect($server, $user, $password);

// Проверка результата подключения
if (!$mysqli_connection) {
die(«Подключение не удалось: » . mysqli_connect_error());
}
echo «Подключение прошло успешно!»;

// Закрываем соединение
mysqli_close($mysqli_connection);
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<?php

$server=»localhost»;

$user=»root»;

$password=»MySafePass4!»;

 
// Открываем соединение

$mysqli_connection=mysqli_connect($server,$user,$password);

 
// Проверка результата подключения

if(!$mysqli_connection){

die(«Подключение не удалось: «.mysqli_connect_error());

}

echo»Подключение прошло успешно!»;

 
// Закрываем соединение

mysqli_close($mysqli_connection);

?>

Подключение через PDO

<?php
$server = «localhost»;
$user = «root»;
$password = «MySafePass4!»;

try {
$pdo_connection = new PDO(«mysql:host=$server;dbname=test», $user, $password);
// Определяем ошибки как исключения
$pdo_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo «Подключение прошло успешно!»;
}

// Отлавливаем исключение
catch(PDOException $e) {
echo «Подключение не удалось: » . $e->getMessage();
}
// Закрываем соединение
$pdo_connection = null;
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

<?php

$server=»localhost»;

$user=»root»;

$password=»MySafePass4!»;

try{

$pdo_connection=newPDO(«mysql:host=$server;dbname=test»,$user,$password);

// Определяем ошибки как исключения

$pdo_connection->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

echo»Подключение прошло успешно!»;

}
 
// Отлавливаем исключение

catch(PDOException$e){

echo»Подключение не удалось: «.$e->getMessage();

}
// Закрываем соединение

$pdo_connection=null;

?>

Разработка формы

Чтобы создать форму поиска по сайту через , откройте любой подходящий текстовый редактор. Я рекомендую воспользоваться бесплатным PSPad. Вы можете использовать любой текстовый редактор, где предусмотрена подсветка синтаксиса. Это в значительной степени облегчит процесс написания и отладки PHP-кода. Создавая страницу для формы поиска, не забудьте сохранить ее в формате .php, иначе PHP-код не будет обрабатываться должным образом. Как только сохраните документ, скопируйте в него следующую разметку:

<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
  <head> 
    <meta  http-equiv="Content-Type" content="text/html;  charset=utf-8"> 
    <title>Поиск  контактов:</title> 
  </head> 
  <p><body> 
    <h3>Детальный поиск контактов</h3> 
    <p>Вы можете искать по имени или фамилии</p> 
    <form  method="post" action="search.php?go"  id="searchform"> 
      <input  type="text" name="name"> 
      <input  type="submit" name="submit" value="Search"> 
    </form> 
  </body> 
</html> 
</p>

Если вы знакомы с языком HTML, то тут вам все должно быть понятно как минимум до открывающего тега form. Внутри этого тега находится важнейший элемент всего кода – атрибут action. В качестве действия нашей формы мы указали название нашего файла, а затем применили к нему строку запроса “go”.

Проверка на соответствие критерию

Когда пользователь вводит имя или фамилию, а затем нажимает кнопку подтверждения, форма передает данные самой себе и добавляет в конце строку запроса “go”. На данном этапе мы проверяем наличие строки запроса go. Если результат положительный, выводим результаты поиска.

До вывода запрашиваемых результатов нам нужно перепроверить: (1) была ли подтверждена форма, (2) содержит ли строка запроса значение go, (3) был ли поисковой запрос введен в нижнем или верхнем регистре? Если ни одна из проверок не дает положительного результата (true), то от нас не требуется выполнять какие-либо действия.

Для начала добавим небольшой блок кода PHP поиск по сайту после закрывающего тега </form>:

</form> 
<?php 
//сделать что-то в коде 
?> 
</body> 
</html>

Сначала мы открываем блок PHP-кода тегом ””.

Любой PHP-код внутри этой пары тегов будет исполняться сервером. Затем мы проверяем, была ли подтверждена форма:

<?php 
  if(isset($_POST)){ 
  // сделать что-то в коде
  } 
  else{ 
  echo  "<p> Введите поисковый запрос</p>"; 
  } 
?>

Мы воспользуемся встроенной функцией isset, которая возвращает значение типа bool, и поместим в нее массив $_POST. Логическое выражение в программировании позволяет получить нам либо true, либо false.

Следовательно, если функция возвращает значение true, то форма была подтверждена, и нам нужно продолжить выполнение кода дальше. Если же функция возвращает значение false, то мы выведем сообщение об ошибке. Сохраните весь набранный код в файле search_submit.php.

Далее нам нужно проверить, имеется ли в строке запроса значение go:

<?php 
  if(isset($_POST)){ 
  if(isset($_GET)){ 
  else{ 
  echo  "<p> Введите поисковый запрос</p>"; 
  } 
  } 
  } 
?>

Мы вкладываем еще одно условное логическое выражение внутрь основного, но только в этот раз мы используем массив $_GET вместе со значением “go”. Сохраните изменения в файле search_go.php.

Теперь нам нужно убедиться, что посетители могут вводить первую букву в строку запроса только в верхнем или только в нижнем регистре. Нам также нужно предусмотреть способ учета критериев поиска, введенных посетителем. Лучше всего проверять введенные посетителем данные с помощью регулярного выражения:

<?php 
  if(isset($_POST)){ 
  if(isset($_GET)){ 
  if(preg_match("^/+/", $_POST)){ 
   $name=$_POST; 
  } 
  } 
  else{ 
  echo  "<p>Пожалуйста, введите поисковый запрос</p>"; 
  } 
}?>

Мы вкладываем еще одно условное логическое выражение внутрь наших двух. На этот раз мы используем регулярное выражение для проверки ввода. Мы используем встроенную функцию preg_match с двумя параметрами: регулярное выражение, и поле формы, к которому должна применяться проверка.

В нашем случае, это будет поле «Имя» (name). Чтобы извлечь параметры поиска, указанные посетителем, мы создаем переменную $name, и привязываем к ней значение POST с названием поля из формы, которое будет использоваться в SQL-запросе. Сейчас мы реализовали: (1) отправку данных формы, (2) строка запроса включает значение go и (3) посетитель ввел либо заглавную, либо строчную первую букву. И все эти проверки происходят еще до внесения изменений в базу данных. Сохраните все изменения.

Создание соединения с MySQL

Для работы с записями в MySQL сначала необходимо создать соединение с сервером посредством php. Это действие выполняется при помощи функции , которая выдает результат в виде ресурса соединения. Этот ресурс в последствии будет использоваться во всех последующих операциях в БД (MySQL).

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

При стандартной установке или использовании OpenServer: адрес сервера — localhost, логин — root. А вот пароль при стандартной установке задается в самом мастере установки (на определенном шаге), на OpenServer паролем служит пустая строка.

Вид функции в строке php кода:

<!--php-->
mysqli_connect(<адрес сервера БД>, <логин>, <пароль>, <имя БД>);

Проверка подключения к базе данных

После соединения с БД необходимо проверить его успешность. Необходимость в проверке заключается в исключении ошибки подключения к БД. Неверные настройки с большой нагрузкой или неправильные параметры подключения не дадут MySQL устанавливать новые подключения. В свою очередь это послужит к неосуществимости соединения. Поэтому вебмастеру необходимо проверить соединение с сервером, чтобы была возможность дальнейшей работы с базой данных.

Подключение к MySQL выполняется единожды в сценарии, и после применяется в каждом запросе к БД.

Функция будет выводить значение — ресурс. При неудачном соединении с MySQL, функция возвратит логическое значение (ложь). Не лишней, при создании каждой новой БД, будет проверка выполнения и сравнивания этой функции с ложью.

Пример кода соединения и проверки на ошибки с MySQL в среде php:

<!--php-->
<?php
$link = mysqli_connect("localhost", "root", "password");

if ($link == false){
    echo "Ошибка: не установлено соединение с MySQL " . mysqli_connect_error();
}
else {
    echo "Соединение успешно установлено";
}

У функции заложено возвращение описания последней ошибки в MySQL.

Установка необходимой кодировки

После подключения соединения в первую очередь необходимо указать кодировку для использования в обмене данных с MySQL. В противном случае взамен записей (на кириллице) будет получен ответ из: ‘?????????’.

Чтобы настроить кодировку, нужно вызвать функцию

Появление возможных ошибок, и как с ними справиться:

  1. При выполнении команды создания проверяйте, те ли кавычки используете. Ведь и  —  это разные знаки.
  2. Если при выполнении программы есть какая-либо ошибка в SQL-запросе, связанная с форматом, то при присваивании

поставьте в конце запроса вместо точки точку с запятой.

3. Если возникли проблемы с командами MySQLi, выполните следующие команды:

Затем запишите свою версию PHP. Для этого в первой из следующих четырех команд замените x.x на свою версию PHP:

Так, если у вас версия PHP 7.4, то команда будет sudo apt-get install php7.4-mysqli.

4. Каждый раз, когда заходите на свой сайт на PHP, запускайте в каталоге, где находится программа на PHP, следующую команду:

И при получении какой-либо ошибки, например такой:

Запускайте эту команду:

И после выполнения php -S localhost:8000 он заработает. Так как процесс, задействующий этот порт, будет уничтожен и его можно будет использовать.

Подключение через панель управления TimeWeb

Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.

При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.

phpMyAdmin

phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.

Входим в данный раздел, вбиваем все данные и подключаемся.

Подключения к базе данных MySQL — простой пример запроса на PHP

<?phpini_set(‘display_errors’, 1);ini_set(‘display_startup_errors’, 1);error_reporting(E_ALL);

$connect = mysqli_connect(‘localhost’, ‘database’, ‘password’, ‘user’);

$query1 = «SELECT Name FROM igroki WHERE N=’7′»;

$result = $connect->query($query1);

$record = mysqli_fetch_array($result);

echo ‘Name of 7th player: ‘ . $record;

echo «<hr><hr><hr><br>»;  //Это разделитель html

// Перебор нескольких значений:

echo «All players:<br><br>»;$query2 = «SELECT Name FROM igroki»;$result2 = $connect->query($query2);while ($record2 = mysqli_fetch_array($result2)) {echo ‘Name: ‘ . $record2 . ‘<br>’;}

$connect -> close();?>

Поиск по буквам

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

Добавьте следующую строку кода после закрывающего тега form:

</form> 
<p><a  href="?by=A">A</a> | <a  href="?by=B">B</a> | <a  href="?by=K">K</a></p> 
<?php

Мы привязываем тег <a> к строке запроса с by с помощью анкора, и устанавливаем его равным определенной букве. Чтобы реализовать функционал поиска по буквам, нам нужно добавить следующий код прямо после закрывающей фигурной скобки в исходном скрипте, как показано ниже:

}//Окончание скрипта поисковой формы 
if(isset($_GET)){ 
$letter=$_GET; 
//Подключение к базе данных 
$db=mysql_connect  ("servername", "username",  "password") or die ('Я не могу подключиться к базе данных, так как: ' . mysql_error()); 
//-Выберете базу данных 
$mydb=mysql_select_db("yourDatabase"); 
//-Запрос к таблице базы 
$sql="SELECT  ID, FirstName, LastName FROM Contacts WHERE FirstName LIKE '%" . $letter . "%' OR LastName LIKE '%" . $letter ."%'"; 
//-Запустить запрос к функции MySQL Query
$result=mysql_query($sql); 
//-Результаты подсчета
$numrows=mysql_num_rows($result); 
echo  "<p>" .$numrows . " results found for " . $letter . "</p>"; 
//-Запуск цикла и сортировка результатов 
while($row=mysql_fetch_array($result)){ 
$FirstName  =$row; 
            $LastName=$row; 
            $ID=$row; 
//-Вывести результат в массиве
echo  "<ul>n"; 
echo  "<li>" . "<a  href="search.php?id=$ID">"   .$FirstName . " " . $LastName .  "</a></li>n"; 
echo  "</ul>"; 
} 
}

Здесь мы изменили четыре фрагмента кода скрипта поиска по сайту:

  • Мы используем функцию isset(), и вносим в нее массив $_GET, а затем проверяем значение by;
  • Создаем переменную $letter и инициализируем ее значение массивом $_GET;
  • Добавляем переменную letter в SQL-запрос;
  • Указываем переменную letter внутри выражения, в котором получаем подсчитанное количество строк.

Сохраните файл search_byletter.php и проверьте результат.

Выборка данных по параметру + защита

Мы можем выбирать определённые данные из таблицы. Например, мы можем выбрать все записи, где pass = 123, и тому подобные.

Вот первый пример выборки по логину + защита:

$login = 'Andre'; // Подставиться вместо знака вопроса

$sql = 'SELECT * FROM users WHERE login = ?'; // Формируем запрос

$query = $pdo -> prepare($sql); // Возвращает объект

$query -> execute(); // В скобках указываем то, что заменит знак вопроса.


// Также перебираем массив, но теперь в массиве только те строки, где login = Andre

while ($row = $query->fetch(PDO::FETCH_ASSOC)) {

    echo $row;

}

Можно указать несколько вопросительных знаков, а в execute перечислить замены для них через запятую.

Вот второй пример выборки по логину + защита:

$login = 'Andre'; // Подставится вместо :login

// Формируем запрос с помощью ключа

$sql = 'SELECT * FROM users WHERE login = :login'; 

$query = $pdo -> prepare($sql); // Возвращает объект

// В кавычках нужно указать ключ, который мы указали в запросе.

// А после передать значение, которое должно подставится.

$query -> execute(); 


// Также перебираем массив, но теперь в массиве только те строки, где login = Andre

while ($row = $query->fetch(PDO::FETCH_ASSOC)) {

echo $row;

}

Можно указать несколько ключей, а в execute перечислить замены для них через запятую в формате ‘ключ’ => значение.

Второй способ использовать предпочтительнее, так как читаемость и понятность кода более понятна, чем в первом примере, но использовать можно два способа.

Вставка данных в БД из HTML-формы

В предыдущем разделе мы узнали, как вставлять данные в базу данных из сценария PHP. Теперь посмотрим, как мы можем вставить данные в базу данных, полученную из HTML-формы. Давайте создадим HTML-форму, которую можно использовать для вставки новых записей в таблицу persons.

Создадим простую HTML-форма с тремя текстовыми <input> полями и кнопкой отправки:

Пример

Скопировать

Получение и вставка данных формы

Когда пользователь нажимает кнопку отправки HTML-формы, в приведенном выше примере данные формы отправляются в файл-обработчик PHP ‘insert.php’. Файл ‘insert.php’ подключается к серверу базы данных MySQL, извлекает поля форм с использованием переменной PHP и, наконец, выполняет запрос на вставку записей в БД.

Ниже приведен полный код нашего файла insert.php:

Пример

Скопировать

Примечание: Функция экранирует специальные символы в строке и создает допустимую строку SQL для защиты от атаки, при которой злоумышленник может внедрить или выполнить вредоносный код SQL.

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

Назад
Вперёд

Рабочий PHP код для копирования с примерами

Рабочий код, который можно скопировать — останется вставить свои данные для подключения к базе MySQL и все заработает:

  1. Запрос в базу данных:
    <?php
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    
    $connect = mysqli_connect('localhost', 'ribnick_tgladder', 'kotoParolkins74350', 'ribnick_tgladder');
    
    $query1 = "SELECT Name FROM igroki WHERE N='7'";
    
    $result = $connect->query($query1);
    
    mysqli_fetch_array($result) // to return an array of the data, or 
    mysqli_fetch_object($result) // to return an object of the data.
    
    $record = mysqli_fetch_array($result);
    
    echo 'Name of 7th player: ' . $record;
    
    echo "<hr><hr><hr><br>";
    
    // If you have multiple records use a while:
    
    echo "All players:<br><br>";
    
    $query2 = "SELECT Name FROM igroki";
    $result2 = $connect->query($query2);
    while ($record2 = mysqli_fetch_array($result2)) {
        echo 'Name: ' . $record2 . '<br>';
    }
    
    $connect -> close();
    ?>
  2. Кнопка и вывод данных по запросу из MySQL:
    <?php
    if(!isset($_POST))
    {
    echo "
    <form action='' method='POST'>
    <input type='submit' name='submit' />
    </form>";
    }
    
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    $connect = mysqli_connect('localhost', 'db', 'pass', 'user');
    
    $query1 = "SELECT Name FROM igroki WHERE N='7'";
    $result = $connect->query($query1);
    $record = mysqli_fetch_array($result);
    
    if(isset($_POST))
    {
        echo 'Name of 7th player: ' . $record;
    }
    
    $connect -> close();
    ?>
  3. Форма (выпадающий список) с выбором и кнопка для запроса в базу данных MySQL с последующим выводом результатов на сайте:
    <form action='' method='POST'>
    
    <select name="PlayerID">
      <option value="7">Seven</option>
      <option value="8">Eight</option>  
    </select>
    
    <input type='submit' name='submit' />
    </form>
    
    <?php
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    $connect = mysqli_connect('localhost', 'db', 'pass', 'user');
        
    if (isset($_POST))
    {
        $number = $_POST;
        $query = "SELECT Name FROM igroki WHERE N='$number'";
        $result = $connect->query($query);
        $record = mysqli_fetch_array($result);
        echo 'Name of 7th player: ' . $record;
    }
    
    $connect -> close();
    ?>
    

Обработка результатов запроса к базе mySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
…
mysql_select_db("db_name", $conn);
$sql="SELECT * FROM  `teachers` WHERE  `name`='Иванов'" ;
$sql= (string) $sql;
$result = mysql_query($sql, $conn)
or die ("no!".mysql_error());
while($row = mysql_fetch_array($result)) {
	$name=$row"name";
	$zp= $row"zarplata";
	echo $name.' '. $zp;
}
?>

Решение проблем с кодировкой

Важно: в ряде случаев, если результаты не выдаются, следует поменять кодировку на

1
2
3
4
5
$conn = mysql_connect ("localhost", "root", "")
 	or die("Нет соединения: " . mysql_error());
print ("Удачно соединено");
mysql_select_db("institute", $conn);
mysql_query("SET NAMES cp1251");

Использование для обработки цикла foreach

1
2
3
4
foreach($result as $row){
	$name=$row"name";
	$zp= $row"zarplata";
}

Пример: вывести все записи для фамилии Иванов

1
2
3
4
5
6
7
8
9
10
11
$conn = mysql_connect ("localhost", "root", "")
 	or die("Нет соединения: " . mysql_error());
print ("Удачно соединено");
mysql_select_db("institute", $conn);
$sql="SELECT * FROM  `teachers` WHERE  `name`='Иванов'" ;
$sql= (string) $sql;
$result = mysql_query($sql, $conn)
	or die ("no!".mysql_error());
// сохраняем результат в виде массива $row
$row=mysql_fetch_array($result);
print_r($row);

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

echo $row"name";

и

echo $row1;

Для отображения всех значений используется цикл:

while($row=mysql_fetch_assoc($result)){
  echo $row"name"."<br>";
}

Точечная выборка (одной записи)

Пример: Выбираем значение поля в записи под номером

mysql_result($result, 1, "name")

Задание php mysql 1: Выполните запрос на выборку и из таблицы учителей.
Отобразите данные на странице в виде:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: