Вывод данных

Простой пример работы с базой данный в php. Часть 3. Новости

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

Прежде чем перейти к написанию кода, нужно спроектировать базу данных. В базе данных мы будем хранить новости и категории новостей. Нам потребуется две таблицы, первая – category, для хранения категорий новостей, она будет состоять из двух полей – id и category_name. Тут все понятно, id – первичный ключ, а name будет служить для хранения названия категорий. Вторая таблица будет создана для новостей — news. Таблица news будет состоять из полей:
Id — первичный ключ,
id_category – id категории из таблицы category,
title — заголовок,
small_text – краткое описание,
text – полный текст новости,
author – автор новости.
Поскольку таблица news использует в своем поле id_category id из таблицы category, нам необходимо связать две таблицы ключом.
Для создания этих таблиц Вы можете воспользоваться sql-патчем. Помимо создания таблиц и связей, патч создаст несколько записей.

CREATE TABLE `category` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; CREATE TABLE `news` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `id_category` INT(10) NOT NULL, `title` VARCHAR(255) NOT NULL, `small_text` TEXT NOT NULL, `text` TEXT NOT NULL, `author` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; ALTER TABLE `news` ADD CONSTRAINT `FK_news_category` FOREIGN KEY (`id_category`) REFERENCES `category` (`id`); INSERT INTO `category` (`category_name`) VALUES ('category_1'); INSERT INTO `category` (`category_name`) VALUES ('category_2'); INSERT INTO `news` (`id_category`, `title`, `small_text`, `text`, `author`) VALUES (1, 'title1', 'small_text1', 'text1', 'author1'); INSERT INTO `news` (`id_category`, `title`, `small_text`, `text`, `author`) VALUES (2, 'title2', 'small_text2', 'text2', 'author2'); INSERT INTO `news` (`id_category`, `title`, `small_text`, `text`, `author`) VALUES (2, 'title3', 'small_text3', 'text3', 'author3');

Теперь приступим к написанию кода. Начнем с того что создадим файл db_connection.php. В этом файле будет содержаться код для подключения базы данных. И теперь при необходимости подключить базу данных, вместо нескольких строк кода, мы будем просто подключать один файл. А вот и код этого файла:

Читайте также:  mycontacts.

Теперь давайте создадим страницу, на которой будет отображаться список категорий новостей, за эту страницу бедет отвечать скрипт index.php, а вто и его код:

 /* * вывод списка категорий * в списке сразу создаем ссылку на страницу, * где будет отображаться список статей той или иной категории */ foreach($rows as $row) < ?>"> 
?>

Теперь давайте создадим файл news_list.php – этот файл будет отвечать за список новостей. Ниже приведен его код:

else < $sqlQuery = " SELECT * FROM `news`; "; >// делаем запрос к бд и получаем новости $sql = mysql_query($sqlQuery) or die(mysql_error()); $rows = array(); while($r = mysql_fetch_array($sql, MYSQL_ASSOC)) < $rows[] = $r; >/* * вывод списка новостей * в списке сразу создаем ссылку на страницу, * где будет отображаться полная новость */ foreach($rows as $row) < ?>  

Author: ">Read more


?>

Теперь создадим файл news.php, он будет отвечать за страницу с полным текстом новости. Вот код этого файла:

 foreach($rows as $row) < ?>  

Author: >else < echo "News not found"; >?>

Все готово. Исходники можете скачать тут.

Источник

Вывод информации из базы данных MySql на веб страницу

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

В этом уроке будем учиться выводить информацию, хранящуюся в базе данных MySql на веб страницу.

Мы научимся выводить информацию в цикле. Эти знания могут Вам понадобиться если Вы будете выводить из базы список новостей, заметок или чего-либо подобного.

А также научимся извлекать конкретную запись с учетом запроса пользователя.

Вывод информации из базы данных MySql

1. Мы создадим html файл, в котором будет кнопка для вывода всего списка в цикле и форма для запроса конкретного пользователя из списка.

2. Конкретного пользователя мы будем запрашивать по имени и фамилии (можете запрашивать по имени и e-mail адресу, принцип все равно будет один).

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

4. Файл обработчик будет обрабатывать наш запрос и выводить на экран то, что мы от него потребовали.

1. Итак, создадим новый html файл и назовем его search_user.html Для сохранения будем использовать папку с файлами из прошлого урока “db1” (эту папку Вы можете найти в исходниках к уроку или скачать из исходников прошлого урока. Не забудьте вписывать свои данные в файл connect.php).

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

Таким образом, код получится следующий:

        






Добавить пользователя

А выглядеть страница будет вот так:

Помимо формы мы поместили в нее ссылку на файл, через который мы можем добавлять пользователей ( см. предыдущий урок). Это для того, чтобы мы могли перемещаться по веб страницам и с легкостью обращаться к любому файлу.

2. Если Вы нажмете на любую из кнопок, то увидите ошибку. Так и должно быть, потому что еще никаких файлов-обработчиков мы не создали, а только прописали их имена в “action”.

Давайте это исправим и создадим первый файл, который будет искать и выводить пользователя по заданным имени и фамилии.

Создадим файл ‘select_user.php’ и разместим его в том же каталоге, что и html файл.

1. В этом файле мы сначала подключим файл “connect.php” (он обеспечит подключение к базе данных MySql).

2. Затем получим значения введенные в поля и поместим их в переменные “$first_name” и “$last_name”.

3. После сформируем запрос для выбора элементов с заданными параметрами из таблицы базы данных MySql.

4. С помощью функции “mysql_query” исполним этот запрос. В качестве результата эта функция возвращает массив, который мы должны разбить на строки. Делает это специальная функция “mysql_fetch_array”. Результат ее работы мы заносим в переменную “$row”.

5. При помощи конструкции “if – else” мы проверяем есть ли запись с введенными параметрами и если есть, то при помощи функции “printf” выводим на экран результат, подставляя в нужное место вывода каждый из параметров записи. Если записи с заданными параметрами нет, то выводим сообщение о том, что в базе данных отсутствуют записи с такими параметрами.

6. В конце страницы вставляем ссылки для перехода обратно в режим поиска, либо для вставки нового элемента в таблицу базы данных MySql.

Вот код всей вышеописанной процедуры:

       Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."

Контактные данные

E-mail: " .$row['email'] . "

Facebook: " .$row['facebook'] . "

---------
); > else
");> ?> Вернуться к поиску

Добавить пользователя

Теперь вставьте в таблицу Вашей базы данный несколько записей людей с разными именами и фамилиями и попробуйте скрипт в действии.

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

7. Если Вы поняли принцип того, что мы сделали в файле “select_user.php”, то вывести всех пользователей не составит труда.

Создайте файл “all_users.php” и поместите его в тот же каталог, где лежит файл “search_user.html”.

Отличаем этого файла от предыдущего будет то, что мы не будем передавать никаких параметров из файла “search_user.html”. Мы просто составим запрос к базе данных и попросим вывести все записи из таблицы базы.

А далее вместо конструкции “if – else” мы будем использовать конструкцию “do – while”. Эта конструкция скажет нашей программе выводить записи до тех пор пока они есть в таблице базы. Это и есть вывод данных из базы в цикле.

Итак, пропишите в файле “all_users.php” следующий код:

       Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."

Контактные данные

E-mail: " .$row['email'] . "

Facebook: " .$row['facebook'] . "

---------
" ); > while($row = mysql_fetch_array($result)); ?> Вернуться к поиску

Добавить пользователя

Протестируйте кнопку, которая выводит всех пользователей:

Теперь Вы умеете выводить записи из базы данных MySql в цикле и по заданным параметрам. Практическое применение этому Вы найдете практически везде, где речь заходит о php и MySql.

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

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

Также жду Ваших комментариев и пожеланий.

Успехов Вам и до встречи в следующем уроке!

Источник

Вывод всех статей блога на главной странице с цитатами и миниатюрами

Добрый вечер всем, помогите вывести все статьи на главной с миниатюрами и цитатами, вставил одну статью вроде все получилось, но когда вставил другую статью то в рубрике она есть а на главной как я этого хочу не вывелась. Как я понял, что то недоработал в индексном файле, очень прошу помогите, я новичок только учусь. Заранее благодарю, скопированный контент файла предоставляю:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
div class="content">  while(have_posts()) : the_post(); ?> div class="home_page"> h1>a href=" " rel="bookmark"> the_title(); ?>a>span>( the_date_xml(); ?>)span>h1> a onclick="return !window.open(this.href)" href=" "> the_post_thumbnail(array(166,124)); ?>a> div class="post"> "> -->  the_excerpt(); ?> p>a href=" ">Читать далееa>p> p> the_tags(); ?>p> div> div>  endwhile; ?> div class="nav">  posts_nav_link(); ?> div> div>

Добавлено через 17 минут
Я не понял, вы о форуме или по моей теме

Добавлено через 2 минуты
Извините я новичок, тока сегодня зарегистрировался, еще не успел изучить всё

Источник

Оцените статью