Отправляет email-рассылки с помощью сервиса Sendsay

PHP Wars: против целого мира

  Все выпуски  

PHP Wars: против целого мира выпуск 2


Информационный Канал Subscribe.Ru

PHP WARS: против целого - мира. выпуск 2

Здравствуйте уважаемые подписчики.

Мы рады приветствовать вас на страницах нашей рассылки вновь. Это ее второй выпуск. Как и обещалось ранее, мы продолжаем радовать вас авторскими статьями об азах программирования на PHP, а так же сегодня вы почерпнете немного знаний и о простейших приемах работы с БД MySQL.

Опытным людям.

Хотелось бы обратиться к читателям, которые уже знакомы с данным материалом. Будьте терпеливы и уже со следующей рассылки мы начнем усложнять темы статей, основываясь на уже пройденной ранее теории. В дальнейших выпусках будут рассматриваться такие вопросы:

  • Выйдет продолжение статьи PHP для начинающих. В ней уже будут более сложные примеры. Повторюсь, без теории сейчас никуда... что ж теория так теория... :)
  • PHP и статистика. Цикл из двух (возможно трех) статей об основах сбора и обработки данных статистики. Будут приведены примеры готовых скриптов, которые при желании вы сможете интегрировать в свои собственные проекты.
  • Предохраняйся с помощью сессий. Статья о методе защиты (установки пароля) ваших проектов с помощью сессий.

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

В выпуске:

Сегодня в выпуске вы прочтете статью об основах работы с БД MySQL написанную. В материале подробно рассматриваются основные команды MySQL, примеры подключения к серверу и отчасти теория хранения данных в данной БД.

Далее мы дадим вам пару Линков на статьи полезные для поднятия своей образованности. Можно сказать, этот материал должен знать каждый, кто хочет добиться реальных результатов. На этот раз статьи посвящены базам данных.

И, конечно же, для поднятия настроения вы получите очередную дозу анекдотов.


Качаем мускул или введение в mysql.

Mysql - это ответ на множество вопросов, которые могут накопиться у начинающего веб программиста, в процессе создания многофункционального проекта. К примеру, он намного облегчает процесс создания гостевой книги, форума, системы комментариев. К тому же используя mysql, вы сможете создать дополнительные функции для вашего сайта вроде определения количества человек, находящихся на сайте в данный момент, хорошо защищенной системы авторизации и т.д.

С чего начать?

Пропустим процесс установки mysql и связки его с Apache и php, об этом написано уже много статей, в конце концов, можно установить джентльменский набор веб программиста "Денвер" и не париться со всеми этими премудростями (хотя я лично рекомендую устанавливать и настраивать все вручную) (а я советую Денвер - ибо мы программеры а не сис. Админы - прим Iprit'а). Создавать, редактировать и удалять базы данных mysql можно через shell (командный интерпретатор) и с помощью php скриптов. Если вы воспользуетесь Денвером, то получите как бонус уже настроенный набор для управления БД - "php Mу Admin", заботливо переведенный на "великий и могучий".

Принципы хранения информации в MySQL.

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

Рассмотрим сначала, как работать с mysql при помощи командной строки (shell). В директории, где установлен MySQL, вы найдете каталог bin в котором, в свою очередь, вас дожидается консольный клиент под название mysql (название исполняемого файла). Запустив его вы уже сможете начать собственно процесс работы с базами данных и таблицами.

Первым делом нужно подключиться к серверу баз данных. Опять же если будете использовать Денвер, то для этого вам будет необходимо набрать в консоли (Вызов консоли: Пуск -> Выполнить -> команда cmd) "mysql -h localhost -u root -p" (без кавычек, разумеется). В результате проделанных действий вы получите приглашение к вводу команд.

Немного остановимся на синтаксисе для ввода инструкций. Программа принимает за команду все символы до тех пор, пока ей не встретятся ";" (точка с запятой). Таким образом, можно ввести сразу несколько команд: <команда 1>; <команда 2>;

Символы между "/*<Любой текст>*/" считаются комментариями и не выполняются. Это поможет вам комментировать код в скриптах, для его лучшего понимания в дальнейшем.

Основыные команды для работы с MySQL

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

Создание базы данных:

CREATE database newbase;

После этой команды будет создана база с именем newbase. Команда считается законченной, если она оканчивается символом ";". Регистр команд значение не имеет.

В базе данных следует создать таблицу для этого нужно подключиться к только что созданной базе:

USE newbase;

И ввести следующую команду:

CREATE table users ( /*создаем таблицу users*/
id int auto_increment primary key, /*задаем колонку id, являющееся числовым целым значением (int), auto_increment означает, что полю id по умолчанию будет присвоено значение на одно выше, чем самое большое из значений, primary key - означает, что поле будет ключевым и его значения не могут повторяться.*/
name varchar(20), /*создаем колонку name, являющуюся текстовым значением длиной не более 20 символов*/
biograf mediumtext, /* создаем колонку biograf, представляющую собой текст */
pub_date datetime); /*создаем колонку pub_date, со значением даты и времени*/

В итоге должна получиться такая команда:
CREATE table users ( id int auto_increment primary key, name varchar(20), biograf mediumtext, pub_date datetime);

Ввод данных в базу.

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

INSERT INTO users VALUES ( /*выбираем таблицу users для добавления*/
"", /*поле id оставляем пустым, оно заполнится автоматически*/
"Саша", /*добавляем в поле name запись*/
"Родился, женился, умер…", /*добавляем в поле biograf запись*/
'now()'); /*функция now() вставит в поле дату и время*/

Забегая вперед скажу, что не следует генерировать время и дату с помощью средств php и затем вставлять значение в это поле, это будет куда больше грузить систему, чем если дата и время определятся при помощи встроенной функции date() mysql.

Поля можно заполнять выборочно:
INSERT into users (name, biograf, pub_date) values (/*выбираем таблицу users в ней выбираем поля name и biograf, для добавления*/
"Маша", /*заполняем поле name*/
"Родилась, женилась, умерла…", now() );/*заполняем поле biograf и поле pub_date*/

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

Просмотр данных.

SELECT * from users; /*просмотр таблицы users, символ * означает, что будут показаны все столбцы таблицы*/
Можно сделать вывод некоторых столбцов:
SELECT name, biograf from users; /*вывод данных, содержащихся в столбцах name и biograf*/
Также можно вывести определенную строку таблицы:
SELECT * from users WHERE id=2; /*ввод всех столбов строчки id =2*/
Если нужно вывести данные по нескольким условиям:
SELECT *form users WHERE id=2 OR id=3 OR id=143; Эту команду можно заменить следующей:
SELECT *form users WHERE id IN(1,3,143);
Как вы понимаете, чем меньше данных нам нужно вывести, тем быстрее будет выполняться запрос, поэтому делайте вывод только тех данных, которые вам понадобятся. Если вам понадобятся данные только столбцов name и pub_date, то незачем делать запрос на вывод всех данных, сделайте следующий запрос:
SELECT name, biograf from users;
Если нужно вывести только первых 30 строк, то воспользуйтесь функцией LIMIT:
SELECT *from users LIMIT 30;
Если нам нужно вывести 30 записей, начиная, например, с 10-ой строки, то пишем следующее:
SELECT *from users LIMIT 10,30;
В результате этого запроса нам будет выданы 30 строк, начиная с 10-ой. Для ускорения поиска в таблице нужно проиндексировать поле, по которому будет происходить поиск. К примеру, если мы ищем по полю id:
SELECT *from users WHERE id=100;
То индексировать нужно поле id. Это можно сделать при помощи следующей команды:
ALTER TABLE users ADD INDEX (id); /*об ALTER мы поговорим чуть позднее*/
Если поиск ведется по 2-м полям, то нужно проставить смешанный индекс на оба поля. Предположим нам нужно подсчитать количество строк в таблице, для этого есть специальная функция COUNT():
SELECT COUNT(*) from users; /*запрос выдаст нам количество строк в таблице*/
С помощью этой функции можно подсчитывать количество, к примеру, одинаковых полей:
/*запрос выдаст нам количество полей, где name="Саша"*/
Можно так же искать "похожие" значения, при помощи следующей функции:
SELECT *from users WHERE name like "Саш%" /*результатом данного запроса будет строги со значением поля name, начинающимся на "Саш". Кстати, лучше выполнять поиск типа "word%", этот запрос выполнится быстрее, чем "%word", т.к. если знак % стоит вначале, то операция не кэшируется.

Изменение данных базы данных.

Для этого используют команду UPDATE. Например мы хотим изменить поле "name" в первой записи:
UPDATE users SET name = 'Миша' WHERE id=1;
В WHERE лучше указывать то поле, которое у вас проиндексировано, так как поиск по проиндексированному полю выполняется быстрее, чем по обычному.

Изменение самой базы данных.

Для изменения уже созданной базы данных используют команду ALTER. Например, мы хотим добавить столбец "years", после столбца "name", для этого пишем следующее:
ALTER TABLE users ADD years INT DEFAULT '18' AFTER name; И у нас появится столбец years со значением по умолчанию 18.
Так же с помощью этого запроса мы можем изменить имеющийся столбец:
ALTER TABLE users CHANGE date date_reg DATETIME DEFAULT '0000-00-00' NOT NULL;
Меняем имя таблицы с date на date_reg со значением даты-времени по умолчанию.
Удалить столбец можно с помощью следующей команды:
ALTER TABLE users DROP date_reg;

Удаление таблицы.

Удаление таблицы "newbase":
DROP TABLE newbase;

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


Линки

Краткое пособие по языку SQL(informix) - большая статьи на нашу тему. Реомендую для самообразования.
MySQL & mSQL-book - книга о SQL. Тоже было бы неплохо почитать

Ё-хумор

Компьютерная лихорадка

ПЕРВАЯ СТАДИЯ (легкая)
Симптомы: Человек приходит на работу и сразу садиться за компьютер. С интересом за ним работает, но уходит домой вовремя. О компьютере не вспоминает до следующего утра. Аппетит и сон нормальные. Hаблюдается реакция на компьютерную литературу, выражающаяся в виде желания ее посмотреть.

Рекомендуемое лечение: Hеобходим присмотр. Почаще напоминать о вреде работы на компьютере.

ВТОРАЯ СТАДИЯ (полулегкая)
Симптомы: Убольного наблюдается повышенный интерес к компьютеру, выражающийся в нездоровом возбуждении при нахождении рядом с любым устройством, имеющим клавиатуру. Аппетит нормальный но сон бесспокойный. Задерживается на роботе на 2-3 часа и "топчет кнопки" (жаргон, означающий работу на клавиатуре). Повышенное внимание к компьютерной литературе.

Рекомендуемое личение: Hе разрешать больному долго находиться рядом с компьютером. Принемать внутрь настойку из двух капельпортвейна "777" и 25 грамм медецинского спирта 3 раза в день. Прятать копьютерную литературу. обязать родственников встречать его с работы и прогуливать не менее3-х часов.

ТРЕТЬЯ СТАДИЯ (средней тяжести)
Симптомы: Больной задерживается на работе более 4-5 часов. Копит деньги на домашний компьютер. В обиходе начинает употреблять компьютерную терминологию, не риагируя на непонимающие взгляды. Становиться неразборчив в еде и одежде. Сон беспокойный, с выкрикиванием жаргонных словечек. Приходит в сильное возбуждение даже при виде калькулятора или если слышит в разговоре специальные термины. Если нет рядом компьютера, то крадет техническую литературу и запоем читает.

Рекомендуемое личение: Hе допускать больного ко всем устройствам, по внешнему виду напоминающих компьютер. Прятать собачью миску с остатками пищи. Давать в нутрь настойку из 10 капель портвейна "777" и 50 грамм медецинского спирта 5 раз в день. Сжечь всю компьютерную литературу, которая может попастся в его поле зрения. С работы увозить и читать на ночь эротические романы.

ЧЕТВЕРТАЯ СТАДИЯ (тяжелая)
Симптомы: Больной покупает себе компьютер и модем. Речь в основном состоит из спецтерминов. Копит деньги на выделенную телефонную линию. Крайне не разборчив в еде и одежде. Спит 3-4 часа в день. По ночам звонит по модему и при каждом соединении приходит в бурное возбуждение. Hа окружающих реагирует слабо.

Рекомендуемое лечение: Hеобходимо лечение в стационарных условиях.

ПЯТАЯ СТАДИЯ (безнадежная)
Симптомы: Больной заводит себе BBS, которой уделяет все свободное от звонков и программированния время. Речь невнятная. Аппетит и сон отсутствуют. Hа окружающих не обращает внимания даже в том случае, если они произносят компьютерные термины. Испытывает чувство полного удовлетворения от строки на экране "Connect 19200..."

Рекомендуемое лечение: Отдать в сумасшедший дом.

В следующем выпуске.

Следующий наш выпуск порадует людей, которые уже реально заждались выхода статей направленных именно на реализацию каких-либо идей, которые можно прикрутить к своему проекту. Думаю, многим будет интересна статья "PHP и статистика" (первая часть), посвященная источникам для сбора данных статистики и простейшим методам их накопления. И как обычно будут ссылки на полезные статьи по теме и, конечно же, "e-хумор".


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpwars
Отписаться

В избранное