|
|
|
| Сейчас в процесе изучения пытаюсь воспроизвести скрипт гостевой книги, руководствуясь "Самоучитель PHP 5". Авторы: Кузнецов М.В., Симдянов И.В. Книга оченьинтересная и познавательная... Но возникло ряд вопросов.
Вот в конце книги приводятся практические примеры, а именно написание гостевой книги...
Не могу понять некоторые детали в кодах:
1. Листинг 22.3
Где берется переменная $start, что она означает и где ей присваивается значиние.
2. Листинг 22.3
$query = "SELECT count(*)
FROM guest
WHERE hide = 'show'";
|
и
$query = "SELECT *
FROM guest
WHERE hide = 'show'
ORDER BY puttime DESC
LIMIT $start, $pnumber ";
|
Почему в первом случае SELECT count(*) а во втором просто SELECT * ?
3.
if(!$tot || $thm) puterror("Ошибка при выборке сообщений");
|
что тут означает puterror ?
4. какая разница между print и echo
5.
while ($themes = mysql_fetch_array($thm))
{
$name = trim($themes['name']);
$city = trim($themes['city']);
$email = trim($themes['email']);
$url = trim($themes['url']);
$msg = trim($themes['msg']);
$answer = trim($themes['answer']);
?>
|
зачем тут используется while
6.
$count = mysql_result($tot,0)
|
как это происходит?
Сорри что так много вопросов, но они меня действительно интересуют. Помогите пожалуйста. Заранее благодарен. | |
|
|
|
|
|
|
|
для: Leon_uman
(27.12.2006 в 17:15)
| | >> Где берется переменная $start, что она означает и где ей присваивается значиние
В этой переменной должен лежать номер страницы (или сообщения) с которой нужно начинать вывод сообщений ... значение ей присваивается методом ГЕТ, в примере, для простоты наверное подразумевается что register_globals=on ...
иначе пришлось бы $start = $_GET['start']
>> Почему в первом случае SELECT count(*) а во втором просто SELECT * ?
первым запросом получаем общее количество сообщений, у который статус "show", для того, чтобы посчитать количество страниц. Вторым получаем нужные соощения для вывода, начиная со $start, $pnumber штук. Там их число, а тут сами сообщения
>> что тут означает puterror ?
эта функция описывается где-то там ... служит для вывода ошибки и выхода из скрипта (нестандартная функция)
>> какая разница между print и echo
да, собсно, никакой :)
>> зачем тут используется while
без цикла в $themes будет лежать только первая строка из БД, а так все, поочереди
>> как это происходит?
После первого запроса в БД, в результате в первой строке будет находиться нужное нам количество сообщений | |
|
|
|
|
|
|
|
для: kasmanaft
(27.12.2006 в 18:31)
| | >>> зачем тут используется while
>без цикла в $themes будет лежать только первая строка из БД, а так все, поочереди
== А что тогда значи условие $themes = mysql_fetch_array($thm) и сама mysql_fetch_array($thm) ... Я он ней читал, но понять толком не могу.
>>> как это происходит?
>После первого запроса в БД, в результате в первой строке будет находиться нужное нам количество сообщений
==Эт чтото вообще не понял...
А так бооольшое спасибо за ответы... Вам можно когда нить в аську стукнуть, пообщатся? | |
|
|
|
|
|
|
|
для: Leon_uman
(27.12.2006 в 18:41)
| | >> А что тогда значи условие $themes = mysql_fetch_array($thm) и сама mysql_fetch_array($thm) ... Я он ней читал, но понять толком не могу.
это, можо сказать, не условие ... после этого в $themes будет ассоциативный массив, ключи которого - имена полей таблицы, значения - собственно значения этих полей из таблицы
Сама mysql_fetch_array "превращает" текущую строку из запроса в массив, одну строку! А потому что строк у нас будет много, нужно проделывать это несколько раз. (пока "делается" столько и делаем :)
>> Эт чтото вообще не понял...
Даж не знаю как объяснить :) ... с помощью этой функции можно получить доступ к определенному полю из результата запроса ... тут мы берем значение из самой первой строки (нулевой)
А в аське меня очень трудно поймать ... а так не против :) | |
|
|
|