С помощью команды INSERT можно добавлять новую информацию в таблицу. Синтаксис такой:
//ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ поле1=значение1, поле2=значение2, поле3=значение3 INSERT INTO имя_таблицы SET поле1=значение1, поле2=значение2, поле3=значение3...;
Давайте добавим нового студента Иванова, в возрасте 17 лет, со стипендией 1000 руб:
<?php //ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ фамилия='Иванов', возраст=17, стипендия=1000 $query = "INSERT INTO students SET fam='Иванов', age=17, stip=1000"; mysql_query($query); /* Обратите внимание на то, что строку 'Иванов' мы взяли в кавычки. Также обратите внимание на то, что поле id мы не указываем - база данных сама поставит в него нужное значение. Результат запроса не записывается в переменную */?>
Результат данного действия можно смотреть в phpMyAdmin.
Чтобы увидеть результат запроса и на странице index.php, выполните сначала этот запрос, а затем отберите данные из БД и отобразите их на странице, т.е. код будет иметь вид:
<?php$host = 'localhost'; $user = 'root'; $password = ''; $db_name = 'test'; mysql_connect($host, $user, $password);mysql_select_db($db_name);mysql_query("SET NAMES 'cp1251'");$table = 'students'; //составляем первый запрос на добавление студента //с фамилией Иванов, в возрасте 17 лет и со стипендией 1000 руб//в таблицу students$query = "INSERT INTO". $table. "SET fam='Иванов', age=17, stip=1000";//выполняем этот запросmysql_query($query);//оставляем второй запрос на отбор всех записей из таблицы students$query = "SELECT * FROM ". $table;//результат запроса записываем в переменную$result= mysql_query($query); echo '<table align="center" border="1">';echo '<tr>';echo '<th>Номер</th>';echo '<th>Фамилия</th>';echo '<th>Возраст</th>';echo '<th>Стипендия</th>';echo '</tr>';while($row = mysql_fetch_assoc($result)){ echo '<tr align="center">'; echo '<td>'.$row['id'].'</td>'; echo '<td>'.$row['fam'].'</td>'; echo '<td>'.$row['age'].'</td>'; echo '<td>'.$row['stip'].'</td>'; echo '</tr>';}echo '</table>';?>
|
|
Что будет, если не указать значение какого-либо столбца?
<?php //ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ фамилия='Петров', стипендия=2000 $query = "INSERT INTO students SET name='Петров', stip=1000"; //Мы не выставили поле "возраст", хотя оно есть в таблице! mysql_query($query);?>Ошибки в данном случае не будет. База данных просто поставит значение по умолчанию для данной колонки. В нашем случае это будет ноль. Проверьте это!
Другой синтаксис INSERT
INSERT имеет альтернативный синтаксис:
<?php //ВСТАВИТЬ В имя_таблицы (поле1, поле2...) ЗНАЧЕНИЯ (значение1, значение2...) $query = "INSERT INTO students (поле1, поле2...) VALUES (значение1, значение2...)"; mysql_query($query);?>
Давайте добавим нового студента Кравцова, в возрасте 20 лет, со стипендией 2000 руб с помощью альтернативного синтаксиса:
<?php //ВСТАВИТЬ В students (name, age, stip) ЗНАЧЕНИЯ ('Кравцов', 20, 2000)" $query = "INSERT INTO students (name, age, stip) VALUES ('Кравцов', 20, 2000)"; mysql_query($query);?>Массовая вставка через INSERT
|
|
С помощью INSERT можно вставлять не одну запись, а несколько. Синтаксис такой:
<?php /* ВСТАВИТЬ В имя_таблицы (поле1, поле2...) ЗНАЧЕНИЯ (значение1, значение2...), (значение1, значение2...)... */ $query = "INSERT INTO имя_таблицы (поле1, поле2...) VALUES (значение1, значение2...), (значение1, значение2...)..."; mysql_query($query);?>
Давайте добавим одновременно двух новых студентов: Сидорова, в возрасте 18 лет, со стипендией 1400 руб, Васильева, в возрасте 19 лет, со стипендией 1500 руб:
<?php /* ВСТАВИТЬ В students (name, age, stip) ЗНАЧЕНИЯ ('Сидоров', 18, 1400), ('Васильев', 19, 1500) */ $query = "INSERT INTO students (name, age, stip) VALUES ('Сидоров', 18, 1400), ('Васильев', 19, 1500)"; mysql_query($query);?>Команда DELETE – удаление записей
С помощью команды DELETE можно удалять записи из таблицы. Ее синтаксис очень похож на команду SELECT:
<?php //УДАЛИТЬ ИЗ имя_таблицы ГДЕ условие_такое_то "DELETE FROM имя_таблицы WHERE условие_по_которому_следует_удалять_строки";?>Давайте удалим запись с id=6:
<?php //УДАЛИТЬ ИЗ students ГДЕ id=6 $query = "DELETE FROM students WHERE id=6"; /* Обратите внимание на то, что после удаления id=6 в таблице не будет вообще. */ mysql_query($query);?>ORDER BY - сортировка
С помощью команды ORDER BY можно сортировать строки результата.
Выберем из нашей таблицы students всех студентов и отсортируем их по возрасту:
<?php //В $result строки будут отсортированы по возрасту от меньшего к большему: $query = "SELECT * FROM students ORDER BY age"; mysql_query($query);?>Если мы хотим обратный порядок сортировки, то следует написать:
<?php //В $result строки будут отсортированы по возрасту от большего к меньшего: $query = "SELECT * FROM students ORDER BY age DESC";?>LIMIT – ограничение количества
С помощью команды LIMIT мы можем ограничить количество строк в результате.
В следующем примере ограничим количество строк до двух:
<?php //В $result будет только две первых строки: $query = "SELECT * FROM students LIMIT 2";?>
С помощью LIMIT можно выбрать несколько строк из середины результата!
В примере ниже мы выберем со второй строки, 5 штук:
<?php //В $result будут строки со второй (в запросе с первой), пять штук: $query = "SELECT * FROM students LIMIT 1,5";?>LIMIT и ORDER вместе:
<?php //В $result будут строки со вторую, 5 штук, отсортированные по убыванию id $query = "SELECT * FROM students ORDER BY id DESC LIMIT 1,5";?>