Вернуться   Форумы Якутск Онлайн > Hi-Tech > Сисадмины и программисты
Сисадмины и программисты Форум посвящён системным администраторам и программистам

Ответ
 
Опции темы Опции просмотра

Как подключиться к MySQL через PHP.
Старый 12.02.2011, 00:22   #1
vintwebpro
Участник
 
Аватар для vintwebpro
 
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
vintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутацию
Thumbs up Как подключиться к MySQL через PHP.

Спасибо, что зашли! Как раз узнаете, что надо делать во-первых, чтобы подключиться к Базе Данных через 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("Извините, но произошла ошибка в сервере. Обратитесь к администратору.");
Просто вписываем вместо слова ЗАПРОС запрос, который надо выполнить.
Всё просто и легко!
Но пока я не показал, как вывести таблицу, как в HTML(напишу об этом позже), но есть временный способ убедиться во всём: для выполнения запроса, Вы просто можете войти в phpMyAdmin, выбрать нужную базу данных, нажать на вкладку "SQL", ввести/вставить запрос, нажать "Go" или "Пошли" - результат Вы увидите точно!
Цитата:
Ну, а теперь то, чего многие ожидали узнать...
Выводим таблицу "на свежий воздух", а точнее в HTML...
Код:
$_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 нужно, Вы, походу, догадались.
Спасибо за прочтение!!!

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

Последний раз редактировалось vintwebpro, 12.02.2011 в 14:48.
  Ответить с цитированием

Старый 14.02.2011, 23:11   #2
rohard
Постоялец
 
Аватар для rohard
 
rohard вне форума
Регистрация: 19.01.2009
Адрес: На восток от Солнца, на запад от Луны.
Сообщений: 1,120
rohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутацию
Отправить сообщение для rohard с помощью ICQ
По умолчанию

Цитата:
Сообщение от vintwebpro
$_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);
}
За такое нужно бить по рукам.
__________________
Почти.
  Ответить с цитированием

Старый 14.02.2011, 23:42   #3
vintwebpro
Участник
 
Аватар для vintwebpro
 
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
vintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутацию
Angry

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

Старый 15.02.2011, 00:12   #4
rohard
Постоялец
 
Аватар для rohard
 
rohard вне форума
Регистрация: 19.01.2009
Адрес: На восток от Солнца, на запад от Луны.
Сообщений: 1,120
rohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутацию
Отправить сообщение для rohard с помощью ICQ
По умолчанию

Цитата:
Сообщение от vintwebpro
Мне 13 и бить по рукам, думаю, будет не прилично
Хоть 8. "Бить по рукам" - понимай в переносном смысле. Сейчас, к сожалению, в прямом смысле не практикуется.

Цитата:
Сообщение от vintwebpro
НЕ для Вас одних писал... Вы же умный, вы же это лучше меня понимаете, верно ведь, надеюсь?
Отлично понимаю. Поэтому в прошлый раз писал с разжевыванием и примером как это сделать правильно.
__________________
Почти.
  Ответить с цитированием

Старый 15.02.2011, 13:44   #5
vintwebpro
Участник
 
Аватар для vintwebpro
 
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
vintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутацию
По умолчанию

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

Последний раз редактировалось vintwebpro, 15.02.2011 в 13:49.
  Ответить с цитированием

Старый 15.02.2011, 16:31   #6
rohard
Постоялец
 
Аватар для rohard
 
rohard вне форума
Регистрация: 19.01.2009
Адрес: На восток от Солнца, на запад от Луны.
Сообщений: 1,120
rohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутациюrohard имеет наиславнейшую репутацию
Отправить сообщение для rohard с помощью ICQ
По умолчанию

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

Старый 15.02.2011, 16:51   #7
User_2kx
Moderator
 
Аватар для User_2kx
 
User_2kx вне форума
Регистрация: 08.02.2010
Адрес: Princeton-Kaschenko@.ru
Сообщений: 3,056
User_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутациюUser_2kx имеет наиславнейшую репутацию
Отправить сообщение для User_2kx с помощью ICQ
По умолчанию

Цитата:
Сообщение от rohard Посмотреть сообщение
Ты идиот?
Это же не ты, а он - ребёнок. Делай скидку на это, учи уму-разуму ;-)
__________________
Снимаю порчу от guard.mail.ru, яндекс бара, избавление от спутника, амиго и пр.
Недорого, работаю по фотографии.
  Ответить с цитированием

Старый 15.02.2011, 16:59   #8
O Mich
 
Сообщений: n/a
По умолчанию

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

Старый 15.02.2011, 17:05   #9
vintwebpro
Участник
 
Аватар для vintwebpro
 
vintwebpro вне форума
Регистрация: 20.10.2010
Адрес: г. Якутск
Сообщений: 300
vintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутациюvintwebpro имеет наиславнейшую репутацию
По умолчанию

Цитата:
Сообщение от User_2kx Посмотреть сообщение
учи уму-разуму ;-)
... сам себя -_-
  Ответить с цитированием

Старый 15.02.2011, 17:10   #10
VanDamM
Аксакал
 
Аватар для VanDamM
 
VanDamM вне форума
Регистрация: 10.06.2007
Адрес: universe/spiral galaxy/sol system/earth/russia/ykt
Сообщений: 947
VanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутациюVanDamM имеет наиславнейшую репутацию
Talking

web pro?
__________________
What evil lurks in the hearts of men
Hold the beat. Stop the beat. Drop the beat!
Портфолио - Блог эмуляции - Блог увлечений
  Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +9, время: 11:14.


vBulletin skin developed by: eXtremepixels
Powered by vBulletin® Version 3.6.3
Copyright ©2000 - 2024, Якутск-Online. Перевод: zCarot