<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

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

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Запрос SQL на добавление и удаление записей

Запрос SQL на добавление и удаление записей

В этой статье мы разберём, пожалуй, одни из самых важных SQL-запросов. Это запросы на добавление и удаление записей из таблицы базы данных. Поскольку, ОЧЕНЬ часто приходится добавлять новые записи в таблицу, причём делать это в автоматическом режиме, то данный материал обязателен к изучению.

Для начала SQL-запрос на добавление новой записи в таблицу:

INSERT INTO users (login, pass) values('TestUser', '123456')

При добавлении записи вначале идёт команда "INSERT INTO", затем название таблицы, в которую мы вставляем запись. Далее идёт в круглых скобках названия полей, которые мы хотим заполнить. А затем в круглых скобках после слова "values" начинаем перечислять значения тех полей, которые мы выбрали. После выполнения этого запроса в нашей таблице появится новая запись.

Иногда требуется обновить запись в таблице, для этого существует следующий SQL-запрос:

UPDATE users SET login = 'TestUser2', pass='1234560' WHERE login='TestUser'

Данный запрос является более сложным, так как он имеет конструкцию "WHERE", но о ней чуть ниже. Вначале идёт команда "UPDATE", затем имя таблицы, а после "SET" мы описываем значения всех полей, которые мы хотим изменить. Было бы всё просто, но встаёт вопрос: "А какую именно запись следует обновлять?". Для этого существует "WHERE". В данном случае мы обновляем запись, поле "login" у которой имеет значение "TestUser". Обратите внимание, что если таких записей будет несколько, то обновятся абсолютно все! Это очень важно понимать, иначе Вы рискуете потерять свою таблицу.

Давайте немного ещё поговорим о "WHERE". Помимо простых проверок на равенство существуют так же и неравенства, а также логические операции: AND и OR.

UPDATE users SET login = 'TestUser2', pass='1234560' WHERE id < 15 AND login='TestUser'

Данный SQL-запрос обновит те записи, id которых меньше 15 И поле "login" имеет значение "TestUser". Надеюсь, Вы разобрались с конструкцией "WHERE", потому что это очень важно. Именно "WHERE" используется при выборке записей из таблиц, а это самая частоиспользуемая задача при работе с базами данных.

И, напоследок, простой SQL-запрос на удаление записей из таблицы:

DELETE FROM users WHERE login='TestUser2'

После команды "DELETE FROM" идёт имя таблицы, в которой требуется удалить записи. Дальше описываем конструкцию "WHERE". Если запись будет соответствовать описанным условиям, то она будет удалена. Опять же обратите внимание, в зависимости от количества записей, удовлетворяющих условию после "WHERE", может удалиться любое их количество.

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

Полный курс по PHP и MySQL: http://srs.myrusakov.ru/php

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (35):

Trust Trust 03.11.2011 17:58:11

А как сделать апдейт таблицы так чтобы когда человек открыл форму на сайте то у него отображалась уже внесенная информация, в общем как вконтакте...хочет человек отредактировать даные о себе то там пишутся уже существующие данные. Ну или анологично phpmyadmin у !

Ответить

Admin Admin 03.11.2011 18:00:13

Для этого узнаётся сначала пользователь (допустим, из сессии или GET-параметра). Дальше на основании id пользователя или его логина делается выборка соответствующей записи. В результате получается массив со всеми данными пользователя, которые затем просто подставляются в форму.

Ответить

Trust Trust 06.11.2011 09:34:43

$result = mysql_query("INSERT INTO information (deiatelnost) VALUES ('$deiatelnost') WHERE login='$login' ") Когда я делаю запрос с указанием сессионного логина, мне выдает такую ошибку: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE login='мой логин'' at line 1

Ответить

Admin Admin 06.11.2011 13:27:47

Попробуйте вместо "мой логин" подставить "mylogin".

Ответить

Trust Trust 06.11.2011 13:48:55

"мой логин" - это ошибка. а вообще там стоит не "мой логин" а мой логин на английском!

Ответить

Admin Admin 06.11.2011 13:54:21

$result = mysql_query("INSERT INTO `information` (`deiatelnost`) VALUES ('$deiatelnost') WHERE `login`='$login'") Попробуйте такой запрос с обратными кавычками.

Ответить

Trust Trust 06.11.2011 17:17:44

РАзницы нет. Но я попробовал ошибка вообще не на счет синтаксических ошибок...я вообще таких запросов раньше не писал... поэтому не знаю...да вообще с высоконагружеными системами не работал..=(

Ответить

Admin Admin 06.11.2011 17:26:24

Запрос правильный на 100%. Единственное, что, возможно, переменная $login некорректная приходит. Но это уже Вам лучше знать. Если с ней всё хорошо, то тогда проблема в структуре таблицы (названия таблицы и её полей, типы полей, допустимые значения и прочее).

Ответить

Trust Trust 11.11.2011 12:14:57

Спасибо большое! Все работает , разобрались=) Теперь очень прошу вас описать функцию Cron , как запускать этот скрипт через крн... было бы идеально посвятить этому целую тему=))) И еще хоть убейте, не могу найти вашу статью про аудио/видео проигрыватели на сайте... прошу ссылку=) Спасибо за помощь вам, вы мне во многом уже помогли=)))

Ответить

Admin Admin 11.11.2011 13:44:00

Про cron постараюсь в скором времени написать. Про аудио: http://myrusakov.ru/html-add-audio.html И про видео: http://myrusakov.ru/html-video.html Ещё на сайте есть поиск, где эти статьи элементарно найти, введя "аудио" и "видео".

Ответить

Trust Trust 12.11.2011 10:53:08

Про Cron буду ждать вашей сатьи, так как я не могу с ней разобратся, а она мне очень необходима для онлайн пользователей=)

Ответить

Trust Trust 17.11.2011 16:37:53

Михаил! Опять столкнулся с проблемой... пишу запрос на добавление информации зарегестрированным пользователем именно его записи к нему в строку... $res = mysql_query("INSERT INTO information (deiatelnost) VALUES ('$deiatelnost') WHERE login='$login'"); Этим запросом просто не хочет добавлять запись ... а вот если я ввожу тот же запрос но уже без login="$login" то все добавляется но соответственно без логина, и уже следовательно вытащить эти данные для конкретного пользователя просто нет возможности... что делаю не так? Могу скинуть на почту полный код action... спасибо заранее=)

Ответить

Admin Admin 17.11.2011 17:56:05

Постараюсь объяснить, что Вы хотите: "Я хочу добавить запись в существующую запись". Вам не кажется, что это странно? Если Вам нужно обновлять запись, то используйте команду UPDATE.

Ответить

Trust Trust 17.11.2011 20:01:43

так в том то и дело, что я создал чистый столбец дабы разгрузить все остальные(заранее), и там человек который авторизирован под своим логином может добавить новую запись о себе именно ДОБАВИТЬ, ну а после того как добавил он будет апдейтить себя соответственно, Вопрос в том что сейчас запись не добавляется если я ставлю login='$login' =(( А если этой записи нет но добавляет инфу, но она соответственно не относится к этому пользователю так как вытащить ее можно для любого другого пользователя авторизированного на сайте. Что не так с запросом?

Ответить

Admin Admin 17.11.2011 23:06:07

Для таких случаев в таблице делают поле user_id, в котором содержится id того пользователя, который добавил данную запись. Всё, что я писал ранее, остаётся в силе. Вы требуете от MySQL абсурд, который он выполнить не сможет.

Ответить

Trust Trust 30.11.2011 21:33:37

Михаил а вот у меня возник такой вопрос,вот человек зарегестрировался у меня на сайте, и ему нужно добавить о себе информацию например его интересы, и у меня для этого создан запрос на INSERT в базу, а вот когда ему нужно внести еще одну запись или обновить запись о себе, то как поставить вместо INSER запрос UPDATE а то каждый раз будет добавлятся новая строка с одним и тем же пользователем...

Ответить

Admin Admin 30.11.2011 21:37:53

Подобные вещи реализуются так. Никаких новых записей вообще не добавляется, а все эти "интересы" и прочее хранятся в записи пользователя (со всеми остальными его данными). Поэтому всегда идёт только UPDATE.

Ответить

Trust Trust 30.11.2011 21:44:31

Тоесть я никак не смогу разгрузить ту таблицу?

Ответить

Admin Admin 30.11.2011 21:46:20

А она загружена что ли? Даже 100 полей - это нормально.

Ответить

Trust Trust 30.11.2011 21:48:10

То есть вот так вот все просто?!=))) Ларчик то прост, а я думал если одновременно к этой таблице обратится например 100 человек? то моя соц сеть упадет?

Ответить

Admin Admin 30.11.2011 21:49:13

Если одновременно, то всё упадёт из-за превышения количества одновременных соединений, а не из-за большой таблицы.

Ответить

Trust Trust 30.11.2011 21:53:48

А например вконтакте соединения реализованны тае же как вы описывали в теме http://myrusakov.ru/mysql-max-user-connections.html ??? или там другая схема?!

Ответить

Admin Admin 30.11.2011 21:56:37

Им такая схема и не нужна, у них свои собственные сервера.

Ответить

Trust Trust 30.11.2011 21:58:10

Спасибо Михаил=) Завтра надеюсь сделаю уже все по уму, всмысле всю информацию о себе в своей соц сети))) Вы кстати зашли бы хоть=))))

Ответить

Trust Trust 01.12.2011 14:26:50

Михаил ..у меня опять проблема с запросом sql=((( Хочу апдейтить таблицу users и добавить данные из формы в строку status передаю данные из формы методом POST , значения передаются, а вот сам запрос... $result = mysql_query("UPDATE users SET (status) VALUES ('$status') WHERE login='$login'"); что не так в запросе?

Ответить

Admin Admin 01.12.2011 18:00:02

UPDATE `users` SET `status`='$status' WHERE `login`='$login'

Ответить

Trust Trust 04.12.2011 21:50:30

Спасибо, помогло, все работает=))) Михаил а немогли бы вы написать статью про нормальный fancybox а то те которые я читал непомогли мне в установке этого окна не как изображения а как подгрузки окна например быстрого сообшения...

Ответить

Admin Admin 04.12.2011 21:59:19

Я пока не пишу статьи, относящиеся к JQuery - это дело будущего.

Ответить

Adrenalin Adrenalin 25.02.2013 07:24:16

А эти SQL-запросы нужно отправлять из специальной формы в phpMyAdmin или из формы на сайте? Или же их надо прописывать в PHP-коде страницы? Если можно, то поясни поподробней.

Ответить

Admin Admin 25.02.2013 10:14:14

И в phpmyadmin и в PHP-коде их можно использовать. Но раз задан такой вопрос, то рекомендую для начала основы прочитать, не надо лезть в эту статью, если не знаете, как запрос отправляется и откуда.

Ответить

savrid savrid 25.04.2013 11:12:24

Привествую. У меня возник вопрос по конкретной ситуации: Есть таблица в которой храняться данные специальностей учебных заведений. (у каждого уч. заведения может быть несколько записей) Уже реализован вывод этой информации для редактирования. Выборка данных идет по зарегистрированому юзеру(уч заведение). Но при замене через update заменяются данные всего столбца. как реализовать замену конкретной специальности?

Ответить

Admin Admin 25.04.2013 11:15:02

Добавить в запрос AND `специальность`='конкретная специальность'

Ответить

savrid savrid 25.04.2013 11:52:36

спасибо, работает)))

Ответить

gad007x5 gad007x5 07.09.2013 21:43:41

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

Ответить

Admin Admin 09.09.2013 11:13:33

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

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.