Зарегистрироваться | Забыли пароль


Для начинающих

bottom

Уроки

bottom

Полезное

bottom

Файлы

bottom

Ссылки

bottom

Главная страница » Основы MySQL

Подключение к базе MySQL и вывод данных на экран

Чтобы начать работу с базой данных необходимо выполнить подключение к ней. Для подключения к MySQL требуется в начале документа прописать следующие строки:

<?php
$db = mysql_connect("localhost","user","password");
mysql_select_db("example",$db);
?>

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

<?php
$resultat = mysql_query("SELECT * FROM spisok",$db);

$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";

$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";

$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";
?>

Теперь попробую объяснить, что здесь происходит. Мы сделали запрос к базе данных, который вытащил всю таблицу в виде массива, и занесли в переменную $resultat. (SELECT - выбрать * - все поля FROM - из spisok - таблица из которой берутся записи). Ну чтобы мы могли обратиться к любому из полей, нужно воспользоваться функцией mysql_fetch_array, которая из массива всей таблицы выбирает только первую запись тоже в виде массива и результат помещается в переменную $array. И теперь мы можем обратиться к данным в виде этой переменной с индексом нужного поля. Чтобы вытащить из базы вторую строку, нужно снова обратиться к функции mysql_fetch_array и т.д. Результатом этого скрипта будет вывод на экран трех первых записей. Но такую форму записи некогда не используют, для этого применяют циклы:

<?php
$resultat = mysql_query("SELECT * FROM spisok",$db);
$array = mysql_fetch_array($resultat);
do
{
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex']."<br><br>";
}
while($array = mysql_fetch_array($resultat));
?>

В этом примере мы сделали запрос к базе и в переменную $array занесли первую запись таблицы. С помощью функции echo вывели первую запись. В условия цикла мы снова обращаемся к функции mysql_fetch_array, котроя вытаскивает вторую запись, а поскольку условие выполняется (в базе еще имеются записи), цикл повторяется. Происходит это до тех пор пока в таблице не закончатся записи.

Если же мы хотим вытащить только одну строку, то в таком случае придется воспользоваться условием, которое будет говорить, что вытаскивать из базы нужно только одну строку:

<?php
$resultat = mysql_query("SELECT * FROM spisok WHERE id='3'",$db);
//Выберем все поля из таблицы spisok, где id равно 3
$array = mysql_fetch_array($resultat);
echo "Имя: ".$array['name']."<br>Возраст: ".$array['age']."<br>Пол: ".$array['sex'];
?>

В этом случае из базы будет выбрана только та строка, у которой id равно 3. Для этого нам и нухно поле id.

Чтобы мы могли вывести на экран какое-то конкретное поле мы должны сделать запрос к базе так же с условием, но в место звездочки указать те поля, которые нам потребуются:

<?php
$resultat = mysql_query("SELECT name FROM spisok WHERE id='3'",$db);
//Выберем поле name из таблицы spisok, где id равно 3 (это Марина)
$array = mysql_fetch_array($resultat);
echo $array['name'];
?>

В переменную$resultat попадает массив, в котором содержатся все поля name из таблицы spisok у которых id равно 3.

Если мы хотим вывести несколько полей, то мы просто перечисляем их через запятую:

<?php
$resultat = mysql_query("SELECT name,age FROM spisok WHERE id='3'",$db);
$array = mysql_fetch_array($resultat);
?>

Такой способ рекомендуется использовать, если нам не нужны все данные из таблицы. Он значительно может уменьшает нагрузку на сервер, если столбцов в таблице очень много.

Автор: Евгений Бочкарев · Урок добавлен: 1 Февраля 2010 15:20 · Просмотров: 1782

Рекомендую
  • Currently 4.50/5
  • 1
  • 2
  • 3
  • 4
  • 5

Рейтинг: 4.5/5 (всего 8 голоса)

Понравился сайт? Внесите свой вклад в его развитие?
R314489888859
41001346159934




   Комментарии к уроку (16)

12
прохожий    Добавлено: 30-06-2010 в 10:50
Хороший урок,а немогли бы вы сделать урок,где вывод из базы ОП КАТЕГОРИЯм...
 
34
12
Евгений    Добавлено: 30-06-2010 в 14:03
Смысл вывода данных по категориям состоит в том что в таблице с данными есть поле (например category), в котором пишется к какой категории относится данная статья. А чтобы вытащить нужные нам статьи по этим категориям делается запрос с условием WHERE category='my_category' Вместо my_category Вы можете дать любое другое название.
 
34
12
Рамиль    Добавлено: 08-07-2010 в 21:30
Сделайте урок по добавления комментария пожалуйста,вот у меня после создания статьи она выглядит так lessons1.php?id1 например....А как сделать добавление комментария?....
 
34
12
Евгений    Добавлено: 09-07-2010 в 13:20
Так как у нас на странице присутствует id статьи то в форме поиска, в которой прописан какой-то обработчик мы создаем помимо имени и текста комментария скрытое поле, которое будет передаваться наш id
<input name="id" type="hidden" value="<?php echo $id; ?>">
обработчик получив все данные производит добавление в базу
$result = mysql_query("INSERT INTO comment (post,author,text) VALUES ('$id','$author','$text')",$db);
После чего перенаправляем пользователя обратно
<meta http-equiv="refresh" content="0; url=lessons1.php?id<?php echo $id; ?>">

Структура таблицы комментариев:
Поле id
Поле post внего мы записываем id нашей статьи
Ну и поля имени и текста.

А вывод всех комментариев на странице lessons1.php

$resultat = mysql_query(&quot;SELECT * FROM comment WHERE post='$id'&quot;,$db);
$array = mysql_fetch_array($resultat);

и выводятся в цикле.
 
34
12
Рамиль    Добавлено: 30-07-2010 в 09:11
Уу,спасибо Евгений))) ОГРОМНОЕ СПАСИБО) я с вашего сайта теперь даже не ухожу,хороший сайт,осталось только сделать красивую форму)
 
34
12
Прохожий    Добавлено: 07-07-2010 в 20:14
Я это понял,но для этого нужно создавать отдельный php файл,скажите как сделать так,чтобы было примерно так: lessons.php?cat=php%id=18
PS Клёвый сайт!) Автор спасибо за материалы,особенно урок "Как сделать смайлы на сайте" Только не вижу их у вас при вводе коммента)
 
34
12
Евгений    Добавлено: 08-07-2010 в 12:44
Ну в принципе да. У меня на сайте для вывода всех уроков по категориям используется один файл (category.php) и ссылка на него такого типа
category.php?category=mysql.
В этом файле мы с помощью цикла выводим все уроки по нужной нам категории и так же создаем ссылки на файл categoryview.php со ссылками типа
categoryview.php?category=mysql&id=18
В этом файле выбор из базы данных уже происходит по id (WHERE id='$id').
 
34
12
Прохожий    Добавлено: 08-07-2010 в 18:52
Прости канеш за тупость,но мне немного непонятно,можно подробнее? с примером кода?
 
34
12
Sasha    Добавлено: 08-07-2010 в 22:17
Класный сайт, немного ппеределал код и теперь у меня на сайте поиск есть! Спасибо автору!
 
34
12
Sasha    Добавлено: 08-07-2010 в 22:19
Евгений, если не трудно напишите мне на e-mail или свой дайте, у меня к вам один вопрос есть по програмированию. Мой e-mail: [email protected]
 
34
12
Евгений    Добавлено: 09-07-2010 в 12:45
Вывод из базы по категориям
В меню у нас есть ссылки прописанные вручную:
category.php?category=mysql
category.php?category=php
...
При нажатии на них мы попадаем на страницу
category.php на которой происходит выбор


<?php
$resultat = mysql_query("SELECT * FROM spisok WHERE category='$_GET[category]'",$db);
$array = mysql_fetch_array($resultat);

do
{
echo "Название статии: ".$array['name']."<br>
Краткий текст статьи: ".$array['description']."<br>
Ссылка: /categoryview.php?id=".$array['id'];
}
while($array = mysql_fetch_array($resultat));
?>


Здесь мы вывели краткое описание статьи и сформировали ссылки на вывод полной статьи. При переходе по ним мы передаем id на страницу categoryview.php, на которой выбор проходит по id


<?php
$resultat = mysql_query("SELECT * FROM spisok WHERE id='$_GET[id]'",$db);
$array = mysql_fetch_array($resultat);

echo "Название статьи: ".$array['name']."<br>Текст статьи: ".$array['text'];
?>

 
34
12
Евгений    Добавлено: 09-07-2010 в 12:59
По поиску
Если поиск нужно сделать таким чтобы он искал среди большого количества текста или статьи, то условие прописывается несколько по другому
WHERE MATCH(text) AGAINST('$search')
Где $search это переменная, в которой содержится поисковый запрос, а text это поле в базе данных, по которому осуществляется поиск.
В таком случае будут выводится все записи, в которых встречается поисковый запрос. Только не забудь полю text в таблице поставить Полнотекстовый (В структуре таблицы есть такая иконка).
 
34
12
прохожий    Добавлено: 11-07-2010 в 20:14
Спасибо,я понял алгоритм)) но у меня почему то вообще ничего не выводит,а когда убираю условие,всё норма...
 
34
12
Прохожий    Добавлено: 30-07-2010 в 09:09
Спасибо Евгений,всё получилось,у меня загвоздка была канеш,так как у меня постраничная навигация)
 
34
12
Светлана    Добавлено: 13-08-2010 в 15:20
Хороший сайт! Добавила Вас в закладки! Целый день искала ошибку, нашла решение у вас, спасибо!
 
34
12
Александр    Добавлено: 31-12-2010 в 01:46
Большое Вас спасибо. "ВАМ" с БОЛЬШОЙ БУКВЫ. Только не возгордитесь.
Правда. Я многому научился у Вас на сайте. Спасибо.
 
34
12

   Добавить комментарий


Ваше имя:


Текст комментария:

Получать уведомления по Email могут только зарегистрированные пользователи. Регистрация
Введите цифры с картинки


 
34