PDA

Просмотр полной версии : Как подключиться к MySQL через PHP.


vintwebpro
12.02.2011, 00:22
Спасибо, что зашли! Как раз узнаете, что надо делать во-первых, чтобы подключиться к Базе Данных через PHP, что надо делать, чтобы вывести таблицу товаров либо прочих предметов через PHP из MySQL(всё делаем с чистого листа, без всяческих движков)

Во-первых:
Создаём файл mysql_connection.php на сервере. Вписываем в него:
<?php
# Type="MYSQL"
# HTTP="true"
$db_hostname = "СЕРВЕР";
$db_database = "БАЗА_ДАННЫХ";
$db_username = "ПОЛЬЗОВАТЕЛЬ";
$db_password = "ПАРОЛЬ";
$_mysqlconnection = mysql_pconnect($db_hostname, $db_username, $db_password) or trigger_error(mysql_error(),E_USER_ERROR);
?>
Пишем вместо СЕРВЕР сервер(хост), на котором стоит База Данных(на домашних серверах: localhost); пишем вместо БАЗА_ДАННЫХ название базы данных, которую будем использовать позже в своих целях; пишем вместо ПОЛЬЗОВАТЕЛЬ имя пользователя базы данных(обычно, бывает дело, когда используют то же название, какое у базы данных, то есть база данных иногда содержит имя пользователя); пишем вместо ПАРОЛЬ пароль пользователя SQL. Таким образом, MySQL выполняет подключение pconnect...

Как подключаться к Базе Данных через другой PHP-скрипт при наличии mysql_connection.php, для послания запросов в неё?
Создаём, к примеру, файл test.php. Вписываем в него:
<?php require_once("mysql_connection.php"); mysql_select_db($db_database, $_mysqlconnection); ?>
Вроде бы просто! Теперь в test.php можно делать запросы к БД с легкостью. Но теперь беда в другом: как?

Какие запросы существуют? (специальный QUICK REFFERENCE для Вас, пока что SELECT)
Открываем известный нам файл test.php, в котором присутствует подключение к Базе Данных.


Обсудим любимый всеми веб-мастерами выбор колонок и строк:SELECT
SELECT КОЛОНКИ FROM ТАБЛИЦА - выбирает особые колонки из нужной таблицы(чтобы выбрать все колонки, вставьте звёздочку вместо КОЛОНКИ).
А вот алгоритмы данной функции:
[WHERE УСЛОВИЕ(Я)] - алгоритм(ГДЕ УСЛОВИЕ) показывает, что он может выбрать особые строки, где, например, содержимое колонки выбранной строки равно заданному содержимому.
[ORDER BY КОЛОНКА [ASC|DESC] - алгоритм(УПОРЯДОЧИТЬ ПО КОЛОНКА [АЛФАВИТНЫЙ|ПРОТИВОАЛФАВИТНЫЙ] ПОРЯДОК) показывает, что он может выбрать строки в [алфавитном/противоалфавитном] порядке заданной колонки.
Примеры:
1. Показ пользователей, которые забанены:
SELECT `nick`, `banned` FROM `users` WHERE `banned` = 1
2. Показ в алфавином порядке все товары:
SELECT `name` FROM `products` ORDER BY `name` ASC


Теперь посмотрим, на что способны DELETE и DROP TABLE. Смотря в словарь мы логично замечаем, что эти функции выполняют роль освобождения Базы Данных - всё правильно!

DELETE FROM ТАБЛИЦА - уничтожает из нужной таблицы все строки, не удаляя колонок.
Есть один знакомый алгоритм этой функции:
[WHERE УСЛОВИЕ(Я)] - алгоритм(ГДЕ УСЛОВИЕ) показывает, что он может уничтожить особые строки, где, например, содержимое колонки выбранной строки равно заданному содержимому.

DROP TABLE ТАБЛИЦА(Ы) - уничтожает таблицу и её данные из Базы Данных(можно выбрать несколько таблиц)

Примеры:
1. Удаляем все новости из Базы Данных, которые относятся к категории с идентификатором 2:
DELETE FROM `news` WHERE `category` = '2'
2. Уничтожаем таблицу с баннерами:
DROP TABLE `banners`

Мы изучили, какие запросы бывают, а теперь надо бы подумать, как выполнить его на PHP...
Тут даже думать не надо! Всего-лишь вписываем в test.php перед ?> следующее:
$sql = "ЗАПРОС";
mysql_query($_sql, $_connection) or die("Извините, но произошла ошибка в сервере. Обратитесь к администратору.");
Просто вписываем вместо слова ЗАПРОС запрос, который надо выполнить.
Всё просто и легко!:blum:
Но пока я не показал, как вывести таблицу, как в HTML(напишу об этом позже), но есть временный способ убедиться во всём: для выполнения запроса, Вы просто можете войти в phpMyAdmin, выбрать нужную базу данных, нажать на вкладку "SQL", ввести/вставить запрос, нажать "Go" или "Пошли" - результат Вы увидите точно! :dirol:

Ну, а теперь то, чего многие ожидали узнать...
Выводим таблицу "на свежий воздух", а точнее в HTML...:give_hear
$_sql = "SELECT * FROM users WHERE `sex` = 'W' and `banned` = '1'";
$_query = mysql_query($_sql, $_connection1) or die("Извините, произошёл сбой в базе данных. Обратитесь к администратору...");
$_rowquery = mysql_fetch_assoc($_query);
$_numquery = mysql_num_rows($_query);
$i = 0;
echo "<table width='100%' cellspacing='0' cellpadding='0'>";
while ($i < $_numquery) {
mysql_free_result($_query);
echo "<tr><td bgcolor='#FFDDFF'>" . $_rowquery['nick'] . "</td></tr>";
$i++;
$_sql = "SELECT * FROM users WHERE `sex` = 'W' and `banned` = '1' LIMIT $i, 1";
$_query = mysql_query($_sql, $_connection1) or die("Извините, произошёл сбой в базе данных. Обратитесь к администратору...");
$_rowquery = mysql_fetch_assoc($_query);
}
mysql_free_result($_query);
echo "</table>";
Логика ясна... Скрипт отображает забаненных женщин. :D Для этого использовался цикл WHILE, который мне больше всего нравится, а почему? Да потому что в нём можно установить обычное условие, при котором и будет всё делаться... FOR было бы не очень хорош для вывода колонок, потому что число $i плюсуется именно В СЕРЕДИНЕ цикла, а точнее перед тем, как дать скрипту прочесть следующую строку... Вы заметили, что запрос копируется в начале и в цикле(не трогая добавки "LIMIT $i, 1") - так всегда!
Никогда не убирайте добавку "LIMIT $i, 1" в запросе цикла, т.к. она выдаёт нам следующую строку в таблице! А для чего число $i нужно, Вы, походу, догадались. :)

Спасибо за прочтение!!! :dance2:

Оценивайте, я сам научился специально для Вас ведь... :blum:

rohard
14.02.2011, 23:11
$_query = mysql_query($_sql, $_connection1) or die("Извините, произошёл сбой в базе данных. Обратитесь к администратору...");
$_rowquery = mysql_fetch_assoc($_query);
$_numquery = mysql_num_rows($_query);
$i = 0;
echo "<table width='100%' cellspacing='0' cellpadding='0'>";
while ($i < $_numquery) {
mysql_free_result($_query);
echo "<tr><td bgcolor='#FFDDFF'>" . $_rowquery['nick'] . "</td></tr>";
$i++;
$_sql = "SELECT * FROM users WHERE `sex` = 'W' and `banned` = '1' LIMIT $i, 1";
$_query = mysql_query($_sql, $_connection1) or die("Извините, произошёл сбой в базе данных. Обратитесь к администратору...");
$_rowquery = mysql_fetch_assoc($_query);
}


За такое нужно бить по рукам.

vintwebpro
14.02.2011, 23:42
За такое нужно бить по рукам.

НЕ нравится, так что портишь чужое... Мне 13 и бить по рукам, думаю, будет не прилично, я же Вас не знаю и я Вас не трогал... НЕ для Вас одних писал... Вы же умный, вы же это лучше меня понимаете, верно ведь, надеюсь?

rohard
15.02.2011, 00:12
Мне 13 и бить по рукам, думаю, будет не прилично

Хоть 8. "Бить по рукам" - понимай в переносном смысле. Сейчас, к сожалению, в прямом смысле не практикуется.

НЕ для Вас одних писал... Вы же умный, вы же это лучше меня понимаете, верно ведь, надеюсь?

Отлично понимаю. Поэтому в прошлый раз писал с разжевыванием и примером как это сделать правильно.

vintwebpro
15.02.2011, 13:44
Поэтому в прошлый раз писал с разжевыванием и примером как это сделать правильно.

Ну, необязательно "бить по рукам"... Свой пример напишите, раз так хотите(Вас никто не останавливал), только вот без этих "выкрутасов" своих, очень прошу! :fie: Надеюсь, спорить не станете(Вы же лучше меня это понимаете, верно ведь? Или Вы хотите, чтобы в Вас в другом роде назвали? Не будьте таким суровымм и хмурым, заполняйте анкеты, ничего страшного ведь, я же заполнил, хоть чем-то занялся, нет надо обязательно кому-то написать, в том числе, приследуя!!! Вы же не малый дитя, детский сад 6 группа, не в ясельках жи в конце-то концов!)... Смотрите, я для Вас же лучше делаю.

rohard
15.02.2011, 16:31
Ну, необязательно "бить по рукам"... Свой пример напишите, раз так хотите(Вас никто не останавливал), только вот без этих "выкрутасов" своих, очень прошу! :fie: Надеюсь, спорить не станете(Вы же лучше меня это понимаете, верно ведь? Или Вы хотите, чтобы в Вас в другом роде назвали? Не будьте таким суровымм и хмурым, заполняйте анкеты, ничего страшного ведь, я же заполнил, хоть чем-то занялся, нет надо обязательно кому-то написать, в том числе, приследуя!!! Вы же не малый дитя, детский сад 6 группа, не в ясельках жи в конце-то концов!)... Смотрите, я для Вас же лучше делаю.

Ты идиот?

User_2kx
15.02.2011, 16:51
Ты идиот?
Это же не ты, а он - ребёнок. Делай скидку на это, учи уму-разуму ;-)

O Mich
15.02.2011, 16:59
Ну, необязательно "бить по рукам"... Свой пример напишите, раз так хотите(Вас никто не останавливал), только вот без этих "выкрутасов" своих, очень прошу! :fie: Надеюсь, спорить не станете(Вы же лучше меня это понимаете, верно ведь? Или Вы хотите, чтобы в Вас в другом роде назвали? Не будьте таким суровымм и хмурым, заполняйте анкеты, ничего страшного ведь, я же заполнил, хоть чем-то занялся, нет надо обязательно кому-то написать, в том числе, приследуя!!! Вы же не малый дитя, детский сад 6 группа, не в ясельках жи в конце-то концов!)... Смотрите, я для Вас же лучше делаю.
Какое это вещество, скажи мне. Я джва года жду такого человека как ты, ты поможешь мне встретиться с родными и близкими.

vintwebpro
15.02.2011, 17:05
учи уму-разуму ;-)

... сам себя -_-

VanDamM
15.02.2011, 17:10
web pro? :dypak: :acute:

vintwebpro
15.02.2011, 17:14
web pro? :dypak: :acute:

да ладно... ни я же выдумал web приставку... :005:


ТАК!!! ЧТО ЗА ОФФТОП ТУТ РАЗВЕЛИ? УБИРАЙТЕСЬ(ЗА СОБОЙ)...
уахахахаххах представляю - так сложно нажать "ПРАВКА", "Удалить" ой ржу немагу! XD

VanDamM
15.02.2011, 17:22
ТАК!!! ЧТО ЗА ОФФТОП ТУТ РАЗВЕЛИ? УБИРАЙТЕСЬ(ЗА СОБОЙ)...
уахахахаххах представляю - так сложно нажать "ПРАВКА", "Удалить" ой ржу немагу! XD

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

rohard
15.02.2011, 18:26
Это же не ты, а он - ребёнок. Делай скидку на это, учи уму-разуму ;-)

Скидку сделал - не запостил "это" на говнокод. Тем более, изначально я все ему разжевал. Только вот тему он почему-то удалил и создал заново.

Вообще, скидку делать не вижу смысла.

Jinc
15.02.2011, 21:54
во первых, кричать будешь у себя дома
во вторых, получи бан на 14 дней за рекламу своих услуг на форуме
в третьих, предупреждение о размещении топика не в соответствующем разделе, на первый раз прощается, но тема сейчас будет перемещена.
вот после такого не понимания взрослых дядть дети идут писть синьку по поездам и сшибать мобилы у прохожих :(

xriby
16.02.2011, 17:49
Без говнокода "webpro" не получиться.

И он же вроде бесплатно услуги оказывает. :)

vintwebpro
01.03.2011, 20:02
Слуйшайте, если бы не Вы, просто проблем бы не было и всё... А вот эти Ваши баны и всё такое не решают дело, заключения не ставят... Просто прошу выкладывать сообщения по теме, а на счёт услуг - онибесплатные, это правда, ну не верите, спросите у тех, кому помог. Мне неинтересно, что у Вас там за мысли про меня, но ничего из этого не выходит, а услуги вовсе не так то навязчивы, не спам же всяких сайтов и т.д. имхо даже и говорить не охото об этом, несправедливое не обсуждается... Если всё понятно, всё толлерантно и без хаоса, цивилизованно. Спасибо за внимание!

P.S.: В усгугах нуждаются те, кому они нужны. Логично, без комментариев...