Link in progress
Обо мне
SELECT и INSERT. Часть 1 из 2

SELECT & INSERT На прошлом занятии мы узнали, как можно добавить данные в базу при помощи INSERT. Сегодня мы будем извлекать данные из БД запросом SELECT и немного поговорим о INSERT.
Простая структура запроса имеет примерно такой синтаксис:
SELECT перечень нужных колонок FROM из какой таблицы.

Пример:

1
SELECT firstname, lastname, email FROM MyEmail;

В чём суть: первоe слово SELECT указывает, что нужно делать, то есть нужно «выбрать” и потом перечисляем что нужно выбрать: firstname, lastname, email. Мы обозначили, что нужно выбрать, а FROM MyEmail говорит БД, что нужно все это выбрать из таблицы MyEmail.

Подумайте!
Что означает каждая из этих функций mysqli_connect(), mysqli_query(), mysqli_close() ?

Это все хорошо, но мы забыли о том, что наша форма еще не умеет отправлять данные взятые из формы. Что нам нужно изменить, что бы данные отправлялись в БД и отображались на странице? Для начала нужно изменить файл connect.php и form.php. Что у нас происходит в этих файлах? В первом мы соединяемся с БД а в другом формируем переменные данных из формы index.php. А если объединить эти два файла в один? Давайте попробуем вклеить файл connect.php в файл form.php.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<head>
    <title>Спасибо, сообщение отправлено!</title>
</head>
<body>
<?php
    $name = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $where = $_POST['where'];
    $alone = $_POST['alone'];
    $other = $_POST['other'];

/* Connect to DataBases */
    $abc = mysqli_connect('my.hosting.mysql', 'my_dog', '9vhfkgpo', 'bestadmin')
        or die ('Нет связи с БД');
    mysqli_query($abc, "SET CHARACTER SET 'utf8'");
       
$query = "INSERT INTO MyEmail (firstname, lastname, email, wher, alone, other) VALUES ('$name', '$lastname', '$email', '$where', '$alone', '$other')";

/* query to database */
$result = mysqli_query($abc, $query);

/* close connect to db */
mysqli_close($abc);

/* page reply */
    echo 'Спасибо за информацию,' . $name . ':-)<br />';
    echo 'Где вы видели собаку? ' . $where;
    echo ' и он был сам? ' . $alone . '.<br />';
    echo 'Дополнительно сказали, ' . $other . '<br />';
    echo 'Ваш E-mail для связи: ' . $email;
?>

</body>
</html>

И немного исправим:
Удаляем mail($to, $subject, $msg); все переменные $msg, $to, $subject — теперь нам не нужно отправлять данные формы письмом, мы уже будем записывать их в БД.

Отлично, а теперь сделаем так, что бы данные в запросе QUERY были не статические, а брались из формы. Для этого переменные, которые заполняются суперглобальной функцией POST вставим в сам запрос mysqli_query():
статические данные изменяем на переменные:

1
$quеry = "INSERT INTO MyEmail (firstname,lastname,email,wher,alone,other) VALUES (‘$name‘,‘$lastname‘,‘$email‘,‘$where‘,‘$alone‘,‘$other‘)";

Получается, что мы удалили просто-данные и вставили переменные, которые будут в своем составе иметь данные из отправленной формы. Замечательно, да? Теперь мы не только оповещаем желающего помочь о том, что его данные были отправлены, но еще и собираем эти данные в БД, где они будут хранится столько времени, сколько понадобится.
INSERT

Давайте проверим, добавляются ли данные в БД или нет. Для этого сохраняем и загружаем наш новый файл form.php на сервер и заходим на форму index.php, заполняем все ячейки формы и нажимаем «Отправить». Теперь зайдем в БД и проверим, если ли только что отправленные данные в таблице MyEmail. Если вы все сделали правильно, данные будут в БД.

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

Ответы на вопросы из прошлого занятия:

1. Каракули в БД, а не данные. Как это исправить?
Если вы внимательно читали сегодняшнее занятие, то могли уже найти ответ на этот вопрос: mysqli_query($abc, «SET CHARACTER SET ‘utf8′»);. Также обратите внимание на кодировку ваших таблиц в БД.

2. Можно как то вносить данные в БД автоматически, средствами PHP?
Да. В этом вся прелесть PHP.

Вопрос:
1. Нужно ли в запросе INSERT перечислять все имена колонок?
2. Можно ли в запросе SELECT указывать дополнительные параметры выборки?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Max quality, min price, min time expenditure
Send me a message to: work@glogla.net
Portfolio