PHP: простой запрос к базе данных MySQL, форма и кнопка


Начало работы с базами данных на PHP может показаться довольно сложным делом, если сразу пытаться «съесть слона» и делать слишком сложные запросы. Начнем с самого базового простого запроса к базе данных, чтобы понять общий принцип. Рабочий код, который можно скопировать, находится в конце поста.

Примеры:
1) вывести и напечатать одно значение из базы данных MySQL на PHP, в нашем примере мы будем извлекать имя седьмого игрока;
2) сделать на сайте форму (выпадающий список) с кнопкой, чтобы отправить выбранное значение из формы в программу и получить нужные данные из базы данных MySQL.

Этапы подключения к базе данных MySQL

  1. Код PHP начинается с <?php и заканчивается ?> Так компьютеру будет понятно, где начало и где конец программы.
  2. В самом начале кода удобно указать способ отображения ошибок — если что-то пойдет не так, вы сможете быстро понять код ошибки. В языке программирования PHP для этого используются следующие команды:

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL); 

  3. Соединение с базой данных MySQL: создаем переменную, например, $connect, в которой через коннектор вносим доступы к нашей базе данных (имя, пароль и т.п.). Эта база данных MySQL должна уже существовать и «крутиться» либо на сервере, либо на локалке. Про установку и создание своей базы данных у нас будет отдельный материал. Подключаемся:

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

  4. Создаем запрос к базе данных — какие данные мы хотим получить: для этого делаем новую переменную, например, $query1, которой присваиваем значение запроса на языке, понятном для базы MySQL — выбери <что? какую колонку?> из <название таблицы в базе данных> где <условия выбора, например, где значение N в колонке номеров  = 7 >. Запрос выглядит так:

    $query1 = "SELECT Name FROM igroki WHERE N='7'";

  5. Подготовка в возвращение результатов запроса для чтения: создаем новую переменную, например, $result— которая получит результат запроса. Используется конструкция [подключение к БД] -> query([запрос к БД]). В нашем примере возвращение результатов выглядит так:

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

  6. Затем вы должны получать по одной записи из набора результатов возвращенного запроса (по сути перебором). В нашем примере — это будет только 1 запись, потому что вы получаете id = 7. Обычно вы будете использовать mysqli_fetch_array ($ result), чтобы вернуть массив данных, или вы можете использовать mysqli_fetch_object ($ result), чтобы вернуть объект данных. В нашем примере мы создаем новую переменную, например, $record и фетчим полученный массив:

    $record = mysqli_fetch_array($result);

  7. Напечатать имя седьмого игрока: для печати в PHP используется оператор echo, где в кавычках можно написать текст для печати, и через точку объединить текст с переменной — так как возвращенный массив имеет несколько «колонок», а нам нужно вывести именно имя, то указываем в скобках к переменной $record именно 'Name':

    echo 'Name of 7th player: ' . $record['Name'];

  8. Отключение от базы данных:

    $connect -> close();

*Если у вас есть несколько записей в вашей таблице и вы хотите их вывести, вы можете использовать цикл while для перебора данных следующим образом:

$query2 = "SELECT Name FROM igroki";
$result2 = $connect->query($query2);

while ($record2 = mysqli_fetch_array($result2))
{
    echo 'Name: ' . $record2['Name'] . '<br>';
}

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

<?php
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);

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

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[‘Name’] . ‘<br>’;
}

$connect -> close();
?>

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

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

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

Важно присвоить форме select name — любое имя, на которое затем можно ссылаться в программе).

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

<?php
if (isset($_POST[‘submit’]))
{
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[‘submit’]))
{
echo ‘Name of 7th player: ‘ . $record[‘Name’];
}

$connect -> close();
?>

Создание формы (выпадающий список) с кнопкой на сайте

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

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

Чтобы создать выпадающее меню с кнопкой, используется html-тег формы <form> </form> с выбором вариантов через теги:

<select> (можно указать action='', чтобы при нажатии загружалась эта же программа, либо можно в кавычках указать ссылку на другой файл с кодом, который запустится при нажатии кнопки; важно присвоить select name — любое имя, на которое затем можно ссылаться в программе);

<option> (option value — это значение, которое будет записано в переменную при выборе этого пункта, а Seven и Eight  — это то, что показывается пользователю на сайте в выпадающем меню);

внутри формы добавляем кнопку через html-тег <input>.

Пример кода для выпадающего меню с кнопкой методом POST

<form action=» method=’POST’>

<select name=»PlayerID»>
<option value=»7″>Seven</option>
<option value=»8″>Eight</option>
</select>

<input type=’submit’ name=’submitID’ />

</form>

Создав форму с кнопкой, нам теперь надо уметь получать пользовательский выбор. Если пользователь нажмет кнопку выбора варианта, то программа должна понимать это. Давайте научим компьютер общаться с пользователем. Для этого создам условие с проверкой нажатия кнопки — если кнопка была нажата (isset в PHP проверяет, есть ли у переменной значение, отличное от null), то сделай запрос к базе данных и напечатай то, что выбрал пользователь.

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

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

if (isset($_POST[‘submit’]))
{
    $number = $_POST[‘PlayerID’];
    $query = «SELECT Name FROM igroki WHERE N=’$number'»;
    $result = $connect->query($query);
    $record = mysqli_fetch_array($result);
    echo ‘Name of 7th player: ‘ . $record[‘Name’];
}

Cоздание формы (выпадающий список) с кнопкой, отправляющей запрос к базе данных MySQL на html + PHP с выводом результатов на сайте

 

<form action=» method=’POST’>

<select name=»PlayerID»>
<option value=»7″>Seven</option>
<option value=»8″>Eight</option>
</select>

<input type=’submit’ name=’submitID’ />

</form>

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

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

if (isset($_POST[‘submit’]))
{
    $number = $_POST[‘PlayerID’];
    $query = «SELECT Name FROM igroki WHERE N=’$number'»;
    $result = $connect->query($query);
    $record = mysqli_fetch_array($result);
    echo ‘Name of 7th player: ‘ . $record[‘Name’];
}

$connect -> close();
?>

Рабочий 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['Name'];
    
    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['Name'] . '<br>';
    }
    
    $connect -> close();
    ?>
  2. Кнопка и вывод данных по запросу из MySQL:
    <?php
    if(!isset($_POST['submit']))
    {
    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['submit']))
    {
        echo 'Name of 7th player: ' . $record['Name'];
    }
    
    $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['submit']))
    {
        $number = $_POST['PlayerID'];
        $query = "SELECT Name FROM igroki WHERE N='$number'";
        $result = $connect->query($query);
        $record = mysqli_fetch_array($result);
        echo 'Name of 7th player: ' . $record['Name'];
    }
    
    $connect -> close();
    ?>
    

Запись опубликована в рубрике PHP. Добавьте в закладки постоянную ссылку.

2 комментария на «PHP: простой запрос к базе данных MySQL, форма и кнопка»

  1. Николай 29 говорит:

    <?
    require_once('lib/db.php');

    $sql_text ='SELECT * FROM pizza where visible = 1';
    $result_text = mysqli_query($link,$sql_text);

    if (isset($_GET['id_pizza'])) {
    $id_pizza = htmlspecialchars($_GET['id_pizza']);
    }

    $result_pizza = mysqli_query($link,$sql_text);

    while ($row_text = mysqli_fetch_array($result_pizza)) {
    printf('

    %s
    %s

    %s
    <button class="inCart" onClick="inCart(сдесь должно стоять ** ** И так далее все значения которые передаются по нажатию в корзину)»>Выбрать

    ‘,$row_text[‘title_img’],$row_text[‘name’],$row_text[‘discription’],$row_text[‘price’])
    ;}
    ?>
    Это карточка для пиццы, но когда я ввожу в пустую incart() запрос Получается ошибка из за пострафа ‘ так как он находится в printf,, а с пустой incart() у меня добавляется соответственно в корзину все значения undefined
    Помогите пожалуйста , как можно добавить в инкарт данные?

Добавить комментарий для Аноним Отменить ответ

🇬🇧 Attention! Comments with URLs/email are not allowed.
🇷🇺 Комментарии со ссылками/email удаляются автоматически.