|
|
|
| Заранее прошу извинить, если тему надо было создать в разделе MySQL
Итак, здравствуйте!
В общем в ходе изучения PHP и MySQL естественным образом возникли трудности.
Есть у меня БД, есть в ней таблица News. В таблице этой три поля: id, title и date_add.
Таблица заполнена.
Разумеется, эту таблицу мне нужно каким-то образом вывести на экран в читабельном виде.
Шаблон, по которому по идее должны выводиться новости:
<ul>
<li>
<h2>Новость <a href="#" title="первая новость">первая</a></h2>
</li>
<li>
<h2>Новость <a href="#" title="вторая новость">вторая</a></h2>
</li>
<li>
<h2>Новость <a href="#" title="третья новость">третья</a></h2>
</li>
</ul>
|
Я пытался это осуществить при помощи урока о создании древовидных комментариев, смысл мне показался похожим, т.к. в нем тоже описывалось каким образом вывести комменты из базы. Но у меня это не получилось, что не удивительно, ведь код я видоизменял.
В общем я не прошу, чтобы мне здесь писали готовые решения, я лишь прошу послать меня по нужному направлению, где я мог бы посмотреть как это осуществить.
Понимаю, что это простейший вопрос, но в голове хаос.
В надежде на помощь
С уважением, Алексей | |
|
|
|
|
|
|
|
для: Упорный чайник
(06.01.2012 в 21:20)
| | Как говорится, хорошая мысля приходит опосля. Подправил немного код, новости из базы вывелись.
Но, тем не менее, я это сделал благодаря изменению готового решения. А хотелось бы еще и понимать что и откуда берется. Поэтому все же не отказался бы от помощи в поиске материала, где этому можно было бы научиться, а не просто скопировать | |
|
|
|
|
|
|
|
для: Упорный чайник
(06.01.2012 в 21:36)
| | Э... ну это... как его, научиться можно известно где... в книге (главное остерегайтесь видео уроков Попова)
если подправили и получили желаемый результат, то это хорошо
__
ну и типа на првах первого попавшегося под горячую руку...
велком ту пати :) | |
|
|
|
|
|
|
|
для: Valick
(06.01.2012 в 22:54)
| | Вы шутите? :) Я этот вывод организовал как раз по уроку этого товарища (Попова)! А в чем собственно он провинился? Я, вроде как и раньше где-то вскользь читал негатив о Попове..
Поделитесь правдой, буду признателен:) | |
|
|
|
|
|
|
|
для: Упорный чайник
(06.01.2012 в 23:15)
| | провиниля он циклом do{} while() там где надо использовать цикл while()
сам по себе Попов молодец (если действительно существует в природе такой человек), но вся беда в том что он ничему НЕ учит
ну а как поется в песне "правда всегда одна..."
сразу возьму быка за рога и посоветую купить вам хорошую книгу, благо создатели этого форума постарались на славу и написали кучу полезных книг, ну и не в обиду авторам, я всегда рекомендую Д. Котерова, из русских "поэтов прозаиков" равных им нет :) с забугорными нужно разбираться с каждым конкретно, поэтому на данном этапе ничего не посоветую | |
|
|
|
|
|
|
|
для: Valick
(06.01.2012 в 23:31)
| | Благодарю за дельные советы. Будем надеяться, что вопросов у меня будет много, а тревожить форумчан буду мало ;) | |
|
|
|
|
|
|
|
для: Valick
(06.01.2012 в 23:31)
| | >провиниля он циклом do{} while() там где надо использовать цикл while()
А вот откуда это... | |
|
|
|
|
|
|
|
для: cheops
(07.01.2012 в 14:39)
| | а я откуда знаю откуда он его взял, видать книжек мало читал до создания видеокурса :) | |
|
|
|
|
|
|
|
для: Valick
(07.01.2012 в 15:10)
| | Я новичок в этом деле и не понимаю чем плох цикл do{} while()?? И что ещё в видео уроках Попова не так? А то я сайт пытаюсь создать по его урокам...) | |
|
|
|
|
|
|
|
для: Grends
(07.01.2012 в 16:24)
| | вы когда-нибудь покупали что-нибудь в телемагазине? | |
|
|
|
|
|
|
|
для: Valick
(07.01.2012 в 17:40)
| | нет | |
|
|
|
|
|
|
|
для: Grends
(07.01.2012 в 18:44)
| | Попов - это "телемагазин"
по-другому просто не знаю как вам объяснить | |
|
|
|
|
|
|
|
для: Valick
(07.01.2012 в 18:52)
| | Ну в телемагазине предлагают вещи в 3 раза дороже... я так понимаю, а по качеству то как? то как он учит писать код - правильно или нет? | |
|
|
|
|
|
|
|
для: Grends
(07.01.2012 в 18:53)
| | то как он учит писать код - правильно или нет?
по мне, нет, но это лично моё мнение (свое мнение вы сможете составить когда не будете зацикливаться на Попове и почитаете много хороших книг)
он не учит, он вдалбливает "киянкой в темечко", после такого прессинга его последователи (зомбикодеры) не хотят видеть мир по-другому и даже указав им на ошибки, они все отрицают ссылаясь на то что так учил Попов (и клепают на основе его видеокурса франкенсайты)
я неоднократно высказывал свое мнение, что он хороший коммерсант, но не более (я даже полагаю что и подбором материала для видеокурса и "промыванием мозгов" занимались другие люди, а Попов это как бы тот кто заварил всю эту кашу и лицо этого проректа, хотя может и все сам сделал)
поверьте мне не доставляет удовольствия говорить о видеоурорке Попова плохо (но приходиться), я лучше 10 раз скажу хорошо про других, а про него промолчу.(вот щас пишу, а самому от себя противно :))
дело в том что каждый месяц на форуме появляется человек "от Попова", которого надо переучивать прикладывая немалые усилия, некоторые уходят думая что все им врут, только лишь по причине неприязни к Попову
его учение оставляет слишком много белых пятен именно в базовых знаниях
к примеру чем отличается цикл do while от обычного while, есть у Попова ответ на этот "скучный" теоретический вопрос?
авторитетные учителя программирования (по крайней мере для меня) - это И. Симдянов и Д. Котеров
Симдянову я благодарен за книги и за этот форум, а Котерову за книги и за Денвер | |
|
|
|
|
|
|
|
для: Упорный чайник
(06.01.2012 в 21:20)
| |
function news_list() //объявляем функцию
{
$zapros='SELECT `id`, `title`, `date_add` FROM `News`'; //пишем запрос к базе - выбираем нужные поля из нужной таблицы
$zapros=mysql_query($zapros); // выполняем запрос
if ($zapros) // проверяем не пуст ли результат запроса
if (mysql_num_rows($zapros)>0) // проверяем количество строк запроса, ибо запрос может вернёть 0 строк и при этом он не будет пуст
{
$list.='<ul>'; // присваеваем переменной значение начала списка
while (list($id, $title, $date_add)=mysql_fetch_row($zapros)) // перебираем цыклом все значения, переменные могут называться по другому, но так проще их отслеживать
{
$list.='<li><h2>Новость <a href="#" title="'.$title.'">'.$id.'</a></h2></li>'; // добавляем каждую строчку как элемент списка в переменной
}
$list.='</ul>'; // закрываем список
}
return($list); // возвращаем список
}
//использование
echo user_name_list();
|
это самый простой вариант, может где ошибка будет - не проверял | |
|
|
|
|
|
|
|
для: skinny
(07.01.2012 в 01:03)
| | Благодарю, буду разбираться и в этом коде | |
|
|
|
|
|
|
|
для: skinny
(07.01.2012 в 01:03)
| | В общем я нашел такое решение. Правда строки будут выводиться не списком, а просто заголовками. Пока что для меня это проще :)
<?php
$connect = mysql_connect("localhost", "root", "");
$select = mysql_select_db("dbnews", $connect);
/* Устанавливаем кодировку */
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET NAMES utf8');
$result = mysql_query("SELECT * FROM news", $connect);
while ($data = mysql_fetch_row($result))
{
//echo "<pre>";
//print_r($data);
//echo "</pre>";
echo "<h2>$data[1]</h2>"; //[0] - поле `id` новости, [1] - поле `title`(текст новости), [2] - `date` - дата.
}
?>
|
Вот такое простенькое решение. Может кому и пригодится. А может кто и раскритикует :) | |
|
|
|
|
|
|
|
для: Упорный чайник
(07.01.2012 в 17:05)
| |
<?php
$connect = mysql_connect("localhost", "root", "");
$select = mysql_select_db("dbnews", $connect);
/* Устанавливаем кодировку */
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET NAMES utf8');
$result = mysql_query("SELECT * FROM news", $connect);
echo "<ul>";
while ($data = mysql_fetch_row($result))
{
printf("<li>%s%s%s</li>", $date[0],$date[1],$date[2]);
}
echo "</ul>";
?>
|
теперь список :) не проверял, должно работать | |
|
|
|
|
|
|
|
для: ladan
(07.01.2012 в 17:33)
| | Да нет :) Отображаются только маркеры списка если в таблице стилей их не отключать)
Но если надо списком, то я сделал так:
<?php
$connect = mysql_connect("localhost", "root", "");
$select = mysql_select_db("dbnews", $connect);
/* Устанавливаем кодировку */
mysql_query('SET CHARACTER SET utf8');
mysql_query('SET NAMES utf8');
$result = mysql_query("SELECT * FROM news LIMIT 5", $connect);
while ($data = mysql_fetch_row($result))
{
//echo "<pre>";
//print_r($data);
//echo "</pre>";
echo "<ul>";
echo "<li><h2>$data[1]</h2></li>";
echo "</ul>";
}
?>
|
Или это плохое решение? =) | |
|
|
|
|
|
|
|
для: Упорный чайник
(07.01.2012 в 17:59)
| | Отображаются только маркеры списка
у ладана описка в коде data он неглядя махнул на date
Или это плохое решение? =)
тут нет никакого решения :))
это примерно тоже самое, когда вы садитесь кушать, вы же не спрашиваете "взять ложку это хороршее решение?"
__
добавили в запрос лимит... очень хорошо, теперь еще ORDER BY() и будет совсем великолепно
обычно по дате добавления сортируют
а echo "<ul>"; и echo "</ul>"; нужно действительно вынести за пределы цикла, как показал ladan | |
|
|
|
|
|
|
|
для: Valick
(07.01.2012 в 18:17)
| | Да, действительно. Лучше вынести... А то в моем примере получилось, что теги и в html отображается не один, а все шесть раз, то есть каждая новость - это отдельный список. Это, конечно, не правильно, следовательно решение все-таки плохое)))
______
P.s за ORDER BY спасибо. Добавил еще DESC. Новости выводятся начиная с последней и сортируются по дате :) | |
|
|
|