Unatka.ru

Раздел: Сайт на php

Глава: php+MariaDB

MariaDB. Работа с таблицами. Команды SELECT, INSERT, UPDATE

База и таблицы уже созданы. Наполняем их структурированным контентом. Структурированный — отвечающий структуре таблицы. Поскольку номера строк выставляются автоматически, остается ввести в соответствующие поля соответствующие значения.

Для работы с базой данных существуют команды:

  • ВЫБРАТЬ — SELECT,
  • ИЗМЕНИТЬ - UPDATE,
  • ВСТАВИТЬ — INSERT.

Это основные команды. Остальные можете посмотреть в своей СУБД.

Освоив СУБД, уже можно создавать динамический сайт. В таблицы данные будут вводиться вручную, также редактироваться. Вручную же придется выполнять разметку страницы. Работа долгая, утомительная. Зато один раз проделав подобное, научимся легко и просто писать код по вставке контента в таблицу.

INSERT

Вручную процесс выглядит приблизительно так:

  1. Вызываем таблицу, например, test
  2. В верхнем меню находим «Вставить». Откроется окно вставки с принятыми ранее обозначениями number, first, second.
  3. По верхней кромке прописаны наименования: Столбцы, Тип, Функция, NULL, Значение.
  4. Имена и типы столбцов уже созданы при создании таблицы. Функция вряд ли понадобится при вставке статьи. NULL означает пустоту поля. Если его нет, поле не может быть пустым ни при каких обстоятельствах. Так что, пусть остается как есть.
  5. В поле Значение вводим данные. Так как для столбца number(id) установлено свойство авто инкремент, не заполняем его. Поле заполнится автоматически. first, хранит заголовок статьи. Вписываем в указанное поле заголовок. Столбец second хранит содержание статьи. Размечаем текст и помещаем в поле.
  6. Жмем ОК.
  7. Данные появятся в таблице.

Скрипт PHP

При работе с командой, следует помнить:

  • база данных должна быть уже создана
  • Вам должны быть известны ее имя, пароль пользователя и имя сервера
  • таблицы БД должны быть уже созданы

Используется для вставки содержимого в таблицу. Практикуясь, создаем очередной файл php на сервере.

<?php    
/*Открываем соединение с БД, 
  здесь: 
  localhost - имя веб-сервера,  
  Admin — имя пользователя БД,  
  pass — пароль БД,  
  mybase — имя БД */
$mysqli = new mysqli ('localhost', 'Admin', 'pass', 'mybase');
//Проверка подключения 
  if (mysqli _connect _errno()) {
    echo "Подключение невозможно: " .mysqli _connect_error ();
    } 

//Определяем кодировку
$mysqli -> query ("SET NAMES 'utf8'"); 
    
//Выполняем запрос
  if (!$mysqli -> query("INSERT INTO test ( first, second ) 
    VALUES ('Заголовок',  'Содержание статьи')"))  {
      echo "Не удалось ввести данные:  
           (" . $mysqli - >errno . ")" . $mysqli->error;
           } else echo "Данные введены в таблицу!";
?>

Здесь:

  1. $mysqli -> query — создание запроса
  2. INSERT INTO — команда Вставить
  3. test — имя таблицы
  4. first, second — имена столбцов. Столбец id не указываем, он имеет свойство A_I, следовательно, значение вносится автоматически
  5. VALUES() — вставляемые значения. Должны строго соответствовать указанным ранее именам столбцов, их порядку и определенным ранее типам переменных.
  6. $mysqli -> errno . " ) " .$mysqli -> error; — покажет ошибку при работе с MariaDB, если что-то не так.

SELECT

Переходим к отображения контента. То есть выведем хранимые в строке таблицы данные из БД на монитор.

Что нужно?

Предполагается, язык php Вы уже освоили. Переход к странице с определенным контентом обеспечат ссылки, расположенные в меню или еще где-то. Выведем пока контент одной или нескольких страниц. 

Потребуется написать файл php и разместить его на сервере. Создаем на сервере, в папке 

localhost / www 

файл с любым именем и расширением php, например, 

myfirst.php. 

Файлы именуем на латинице.

Скрипт PHP

Отображение строк таблицы

Выборку данных всех статей делаем, используя символ *:

<?php
/*Открываем соединение с БД, 
  здесь: 
  localhost - имя веб-сервера,  
  Admin — имя пользователя БД,  
  pass — пароль БД,  
  mybase — имя БД */
$mysqli = new mysqli ('localhost', 'Admin', 'pass', 'mybase');
//Проверка подключения 
  if (mysqli _connect _errno()) {
    echo "Подключение невозможно: " .mysqli _connect_error ();
    } 

//Определяем кодировку
$mysqli -> query ("SET NAMES 'utf8'"); 
    
/*Выбираем все столбцы (SELECT *) из таблицы,
 результат выборки вносим в переменную $result_set*/
    $result_set = $mysqli -> query ('SELECT  *  FROM  test');
/*В цикле отображаем результат выборки, 
  внося его в ассоциативный массив 
  fetch_assoc() с именем $row*/
    while(
      $row = $result _ set -> fetch _ assoc()) { 
      //Печатаем результат : Заголовок
        print _ r ($row['first']); 
      //Содержание
        print _ r ($row['second']);
        }
//Очищаем выборку
$result _ set  -> close(); 
// Закрываем соединение
$mysqli -> close();
?> 

Открываем сервер localhost, вызываем файл и любуемся на результат. Здесь показан самый простой способ отображения контента. Если в базе несколько статей, все они будут отображены на странице.

Чтобы вывести конкретную статью, в строке

 SELECT * FROM `test` 

нужно указать условие отображения, то есть номер строки, например, 

WHERE number = 1.

Код принимает вид:

<?php 
/*Открываем соединение с БД, 
  здесь: 
  localhost - имя веб-сервера,  
  Admin — имя пользователя БД,  
  pass — пароль БД,  
  mybase — имя БД */
$mysqli = new mysqli ('localhost', 'Admin', 'pass', 'mybase');
//Проверка подключения 
  if (mysqli _connect _errno()) {
    echo "Подключение невозможно: " .mysqli _connect_error ();
    }
//Определяем кодировку
$mysqli -> query ("SET NAMES 'utf8'");  
/*Выбираем все столбцы строки с номером 1 
  ( SELECT * ) из таблицы, 
  результат выборки вносим в переменную
  $result _ set*/ 
  $result _ set = 
  $mysqli -> query ('SELECT  *  FROM list WHERE  number=1'); 
/*В цикле отображаем результат выборки, 
  внося его в ассоциативный массив 
  fetch _ assoc() с именем $row*/ 
    while($row = $result _ set -> fetch _ assoc()) {  
    //Печатаем результат
    //Заголовок 
      print _ r ($row['first']);  
      echo "<br/>"; 
    //Содержание 
     print _ r ($row['second']);  
     echo  " <br /> ";
     } 
//Очищаем выборку 
     $result _ set -> close(); 
//Закрываем соединение 
     $mysqli -> close();
?>

Приведенный код демонстрирует каким образом можно вызвать данные из БД. Рабочий код, как правило, сложнее, с различным количеством условий. Можно выбирать не все, а отдельные столбцы, используя команду

SELECT «имя столбца» FROM list

Задавать разные условия с помощью

WHERE «имя столбца»= «значение»

Группировать выборку по заданному условию с помощью

GROUP

Делать выборку по шаблону, используя

LIKE

Отображение столбца таблицы

Для создания меню понадобится вызвать список заголовков статей.

Код создания простого списка заголовков статей очень простой.

Во-первых, вспомним из html, как формируется простой список.

<ul>
  <li>
    <a>Здесь ссылка</a>
   </li>
</ul>

Вид:

Во-вторых, вспомним, как мы формировали ссылку:

index.php?id = «номер строки»

Теперь сделаем выборку номеров строк из таблицы БД. Если таблица носит имя test, выполняем выборку из таблицы test, используя команду SELECT. Создадим на сервере файл menu.php. Открываем и вписываем в файл нижеприведенный абзац:

<ul>
<?php 
/*Открываем соединение с БД, 
  здесь: 
  localhost - имя веб-сервера,  
  Admin — имя пользователя БД,  
  pass — пароль БД,  
  mybase — имя БД */
$mysqli = new mysqli ('localhost', 'Admin', 'pass', 'mybase');
//Проверка подключения 
  if (mysqli _connect _errno()) {
    echo "Подключение невозможно: " .mysqli _connect_error ();
    }
//Определяем кодировку
$mysqli -> query ("SET NAMES 'utf8'");  
/*Выбираем столбцы number ( SELECT  number ) из таблицы,
  результат выборки вносим в переменную  $res _ menu*/
  $res_menu = $mysqli -> query
  ('SELECT number FROM test ORDER BY number'); 
/*В цикле отображаем результат выборки,  
  внося его в ассоциативный массив 
  fetch _ assoc() с именем $row _ menu*/ 
    while($row _ menu = $res _ menu->fetch_assoc()) { 
/*Печатаем результат, 
  $row _ menu[ 'number '] — 
  массив, содержащий значения номеров строк*/ 
?>
      <li>
        <a>
          <?php 
          echo index.php?id = $row _ menu['number'];?>
        </a>
      </li>

  <?php 
//Зачищаем выборку 
 $res _ menu -> close(); 
// Закрываем соединение 
   $mysqli -> close(); 
?> 
</ul>

Вид:

Здесь:

SELECT — команда выбрать

number — имя столбца, содержащего номера строк

FROM — откуда выбираем

test — имя таблицы

ORDER BY — указываем порядок отображения данных

number — согласно столбца number.

Отображаемый список будет выведен на монитор по порядку строк столбца number.

Когда понадобится отображать список ссылок в другом порядке, добавляем в таблицу столбец сортировки. Тот порядок, который задается в столбце сортировки, будет определяющим при отображении списка. И указываем имя столбца сортировки в команде ORDER BY вместо number:

SELECT number FROM test ORDER BY имя столбца сортировки

Помещаем файл menu.php на сервер, открываем, видим список ссылок меню. Здесь приведен самый простой способ отображения списка, который может быть меню сайта. Далее, создавая сайт на основании имеющейся БД, сделаем меню посложнее.

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

UPDATE

Команда изменения данных в строке.

$result = mysql_query 
("UPDATE 
таблица SET поле 1='значение 1', 
поле 2='значение 2' 
WHERE условие");

Скрипт PHP

 <?php 
/*Открываем соединение с БД, 
  здесь: 
  localhost - имя веб-сервера,  
  Admin — имя пользователя БД,  
  pass — пароль БД,  
  mybase — имя БД */
$mysqli = new mysqli ('localhost', 'Admin', 'pass', 'mybase');
//Проверка подключения 
  if (mysqli _connect _errno()) {
    echo "Подключение невозможно: " .mysqli _connect_error ();
    }
//Определяем кодировку
$mysqli -> query ("SET NAMES 'utf8'");
/*изменяем значения данных столбцов для строки с номером 1*/
$result = mysql_query ("
  UPDATE test SET 
  first='новое значение', 
  second='новое значение' 
  WHERE number = 1");

//Очищаем выборку 
     $result -> close(); 
// Закрываем соединение 
     $mysqli -> close();
?>

Сделав выборку из таблицы и распечатав ее, увидим новые данные, если все выполнено верно.

Опубликовано впервые: 2024-12-12

Хочу оставить комментарий
X

Политика ...обработки ПД веб-сайта unatka.ru и его поддоменов



Посмотреть комментарии

Назад ◄ к стр. MariaDB. Создание пользователя, базы данных и таблиц

Вперед ► к стр. Создание сайта html. Практика

Комментариев пока нет

Этот сайт использует сервис веб-аналитики Яндекс Метрика, предоставляемый компанией ООО «ЯНДЕКС».

Чтобы сохранить конфиденциальность персональных данных, Условия использования сервиса Яндекс Метрика запрещают передавать идентификационную информацию в Метрику.

Подробнее