|
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); |