Slashdot? На PHP - халява!

Никита "Nikitos" Кислицин

Xakep, номер #051, стр. 051-086-3


<? require(kernel.inc);

connect(db);

showposts(); ?>

Скрипты index.php и admin.php будут строиться следующим образом. В зависимости от передаваемого параметра do, скрипты будут при помощи уже написанных функций выполнять различные действия: либо показывать конкретную статью, либо осуществлять навигацию/поиск по архиву, выполнять административные задачи и т.п. Этим мы в следующий раз и займемся - свяжем написанные функции в единую систему, что в будущем поможет тебе сделать проект с посещаемостью не 50, а 150 млн. хостов в месяц.

<?

function connect($db)

{

$co=mysql_connect("localhost", "root","");//Подключаемся к серверу БД

if (!($co)) {echo "Не удалось подключиться к серверу БД!";} //Если не вышло…

else { mysql_select_db($db); return $co; } // Если все ок

}

function get_author_info_by_aid($aid)

{

$sql="select * from authors where aid='$aid'"; //Составляем sql-запрос

$aut=mysql_query($sql); //посылаем его

$auth=mysql_fetch_array($aut); //Помещаем ответ в ассоциативный массив

return $auth; //возвращаем массив

}

function showposts($category='no',$start=1,$howmuch=20)

{

$sql="select * from posts";

if ($category!='no') {$sql.=" where cid='$category'";} //Если в переменной $category находится значение не по умолчанию, т.е. она определена программистом, к составленному строчкой выше запросу присоединяется новое условие

$sql.=" order by timest desc limit $start,$howmuch"; // Это условие выборки статей по howmuch, начиная со start в порядке убывания поля timest

$re=mysql_query($sql); //отсылаем запрос

while ($res=mysql_fetch_array($re)) //цикл для прохода по всем возвращенным записям в БД

{

$author=get_author_info_by_aid($res[aid]); //получаем информацию об авторе по его идентификатору

$head=substr($res[text],0,99); //берем первые 100 знаков текста статьи

echo "Автор: <b>$author[fname]</b>

Дата: <b>$res[date]</b><br>

Время: <b>$res[time]</b><br>

$head<br>

<a href='?do=read&pid=$res[pid]'>[more...]</a><br>"; //Выводим информацию о материале

}

}

function showpost($pid)

{

$sql="select * from posts where pid='$pid'"; //Запрос на получение статьи pid

$po=mysql_query($sql);

$post=mysql_fetch_array($po);

$author=get_author_info_by_aid($post[aid]);

echo "$post[text]<br><p align=rigth><b>$author[fname] ($author[email])<br>$post[date], $post[time]</p>"; //Выводим статью

}

function showcomments($pid)

{

$sql="select * from comments where pid='$pid' order by 'timest' desc"; //Запрос на получение комментариев читателей к статье

$co=mysql_query($sql);

Назад на стр. 051-086-2  Содержание  Вперед на стр. 051-086-4