|
|
|
|
<?
$dbname = 'guestbook';
$host = 'localhost';
$user = 'root';
$pass = '';
$tbname = 'gb';
$link = mysql_connect($host,$user,$pass);
$num = 5;
@$page = $_POST['page'];
@$nik = ($_POST['nik']);
@$email = ($_POST['email']);
@$msg = ($_POST['msg']);
$query="INSERT into gb values('0','$nik','$email','$msg')";
mysql_connect($host,$user,$pass);
if (!@mysql_select_db($dbname,$link))
{
echo "<p>К сожалению, не доступна база данных</p>";
exit();
}
if (mysql_db_query($dbname,$query,$link))
$query = "SELECT * FROM $tbname";
$result = mysql_db_query ($dbname,$query,$link);
if(!$result) exit(mysql_error());
print ("<table border=1 width=\"75%\" cellspacing=2 cellspadding=2 align=center>\n");
print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>nik</td>\n");
print ("<td align=center valign=top>email</td>\n");
print ("<td align=center valign=top>msg</td>\n");
print ("</tr>\n");
while ($row=mysql_fetch_array ($result))
{
print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>$row[nik]</td>\n");
print ("<td align=center valign=top>$row[email]</td>\n");
print ("<td align=center valign=top>$row[msg]</td>");
print ("</tr>\n");
}
print ("</table>\n");
//вывод постранично
function link_bar($page, $pages_count)
{
for ($j=1;$j<=$pages_count;$j++)
{
// Вывод ссылки
if ($j==$page) echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
else echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> ';
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j!=$pages_count) echo '|';
}
} // Конец функции
// Подключение к базе данных
mysql_connect($host,$user,$pass);
if (!@mysql_select_db($dbname,$link))
{
echo "<p>К сожалению, не доступна база данных</p>";
exit();
}
// Подготовка к постраничному выводу
$perpage = 11; // Количество отображаемых данных из БД (11==>выводит 10)
if (empty($_GET['page']) or $_GET['page']<=0) $page = 1;
else $page = (int)$_GET['page']; // Считывание текущей страницы
// Общее количество информации
$count = mysql_num_rows(mysql_query('SELECT * FROM $tbname')) or die('Error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page-1) * $perpage; // Начальная позиция, для запроса к БД
//
link_bar($page, $pages_count);
//
// Вывод информации из базы данных
$result = mysql_query('SELECT * FROM $tbname LIMIT '.$start_pos.', '.$perpage) or die('Error!');
echo '<br><center><b>Каталог ссылок</b><br><br>';
while ($row = mysql_fetch_array($result)) echo "<table><tr><td><center>$row[gif]</center></td><td><center>$row[link]</center></td></tr></table>";
echo '</center>';
?><html>
<head>
<title>Форма
</title>
</head>
<body>
<form action="" method="post">
<table align=center width=60% height=40% border=0>
<tr><td>Ник:</td><td><input type=text size=20 name=nik></td></tr>
<tr><td>email:</td><td><input type=text size=20 name=email></td></tr>
<tr><td>Собщение</td><td><TEXTAREA NAME=msg ROWS=5 COLS=50></TEXTAREA></td></tr>
<tr><td colspan=2><INPUT TYPE=submit VALUE="Отправить"></td></tr>
</form>
</body>
</html>
<?
echo ("$num_rows")."\n";
echo ("$total");
?>
|
Помогите с постраничным выводом.
Пишет: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\proect\qwe.php on line 72
Error! Записей не найдено! | |
|
|
|
|
|
|
|
для: Oligarx
(30.04.2005 в 17:41)
| | Используйте двойные кавычки для обрамления sql запросов, а одинарные - тлько для передачи значений в sql. | |
|
|
|
|
|
|
|
для: Oligarx
(30.04.2005 в 17:41)
| | Loki хочет сказать что 'SELECT * FROM $tbname' аналогичен "SELECT * FROM \$tbname" - в одинарных кавычках PHP-переменные не интерпретируются и их значения не подставляются. Подробности по ссылке.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=130 | |
|
|
|
|
|
|
|
для: cheops
(30.04.2005 в 22:19)
| | В общем почитал что по ссылке ... , исправил кое что, терерь выдаёт ошибку на 85 , 103 , 104 страницах! Самое главное на 85, я вообще не знаю что с ней делать!
<?
$dbname = 'guestbook';
$host = 'localhost';
$user = 'root';
$pass = '';
$tbname = 'gb';
$link = mysql_connect($host,$user,$pass);
$num = 5;
@$page = $_POST['page'];
@$nik = ($_POST['nik']);
@$email = ($_POST['email']);
@$msg = ($_POST['msg']);
$query = "INSERT into gb values('0','$nik','email','$msg')";
mysql_connect($host,$user,$pass);
if (!@mysql_select_db($dbname,$link))
{
echo "<p>К сожалению, не доступна база данных</p>";
exit();
}
if (mysql_db_query($dbname,$query,$link))
$query = 'SELECT * FROM gb';
$result = mysql_db_query ($dbname,$query,$link);
if(!$result) exit(mysql_error());
print ("<table border=1 width=\"75%\" cellspacing=2 cellspadding=2 align=center>\n");
print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>nik</td>\n");
print ("<td align=center valign=top>email</td>\n");
print ("<td align=center valign=top>msg</td>\n");
print ("</tr>\n");
while ($row=mysql_fetch_array ($result))
{
print ("<tr align=center valign=top>\n");
print ("<td align=center valign=top>$row[nik]</td>\n");
print ("<td align=center valign=top>$row[email]</td>\n");
print ("<td align=center valign=top>$row[msg]</td>");
print ("</tr>\n");
}
print ("</table>\n");
//вывод постранично
function link_bar($page, $pages_count)
{
for ($j=1;$j<=$pages_count;$j++)
{
// Вывод ссылки
if ($j==$page) echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
else echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'>'.$j.'</a> ';
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j!=$pages_count) echo '|';
}
} // Конец функции
// Подключение к базе данных
mysql_connect($host,$user,$pass);
if (!@mysql_select_db($dbname,$link))
{
echo "<p>К сожалению, не доступна база данных</p>";
exit();
}
// Подготовка к постраничному выводу
$perpage = 11; // Количество отображаемых данных из БД (11==>выводит 10)
if (empty($_GET['page']) or $_GET['page']<=0) $page = 1;
else $page = (int)$_GET['page']; // Считывание текущей страницы
// Общее количество информации
$count = mysql_num_rows(mysql_query('SELECT * FROM gb')) or die('Error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page-1) * $perpage; // Начальная позиция, для запроса к БД
//
link_bar($page, $pages_count);
//
// Вывод информации из базы данных
$result = mysql_query('SELECT * FROM gb LIMIT '.$start_pos.', '.$perpage) or die('Error!');
echo '<br><center><b>Каталог ссылок</b><br><br>';
while ($row = mysql_fetch_array($result)) echo "<table><tr><td><center>$row[link]</center></td></tr></table>";
echo '</center>';
?><html>
<head>
<title>Форма
</title>
</head>
<body>
<form action="" method="post">
<table align=center width=60% height=40% border=0>
<tr><td>Ник:</td><td><input type=text size=20 name=nik></td></tr>
<tr><td>email:</td><td><input type=text size=20 name=email></td></tr>
<tr><td>Собщение</td><td><TEXTAREA NAME=msg ROWS=5 COLS=50></TEXTAREA></td></tr>
<tr><td colspan=2><INPUT TYPE=submit VALUE="Отправить"></td></tr>
</form>
</body>
</html>
<?
echo ("$num_rows")."\n";
echo ("$total");
?>
|
Да, ссылки типа 1|2|3|4|5| выводит, но когда на них нажимаешь сообщения отображаютя но на той же странице и както коряво (не все колонки запонены), в общем не правильно | |
|
|
|
|
|
|
|
для: Oligarx
(01.05.2005 в 20:08)
| | Попробуйте после
<?php
$result = mysql_query('SELECT * FROM gb LIMIT '.$start_pos.', '.$perpage) or die('Error!');
?>
|
Проверить на ошибки
<?php
if(!$result) exit("А в синтаксисе ошибка - ".mysql_error());
?>
|
PS Не могли бы вы также такие здоровые листинги прикреплять к сообщению в виде файла? Ещё пару такив листингов в теме и никто не захочет её выгружать :))) | |
|
|
|
|
 3.8 Кб |
|
|
для: cheops
(01.05.2005 в 20:38)
| | В общем прочитал много инфы, исправил, вставил проверку ()
<?php
if(!$result) exit("А в синтаксисе ошибка - ".mysql_error());
?>
|
Проверка не среагировала (типо всё правильно), не знаю что и делать, у меня 2 вида скрипта, я их прикреплю так будет легче разобраться :)
Постараюсь больше не писать большие листинги прямо в форуме (в общем исправлюсь), заранее спасибо! | |
|
|
|
|
|
|
|
для: Oligarx
(02.05.2005 в 05:06)
| | Хм... странно, у меня проверка среагировала, дело в том, что у вас запрос оформлен следующим образом
<?php
@$result = mysql_query('SELECT COUNT * FROM gb');
?>
|
Функция COUNT обязательно должна сопровождаться скобками, т.е. нужно написать
<?php
@$result = mysql_query('SELECT COUNT(*) FROM gb');
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(02.05.2005 в 13:42)
| | Я исправил, теперь выдаётся тока ошибка Error! Что тогда можно сделать, я не знаю.
Да, и мне ещё не понятно, зачем писать (*) в скобке, чё то я такое первый раз вижу. | |
|
|
|
|
|
|
|
для: Oligarx
(02.05.2005 в 20:12)
| | Теперь следует найти где выводится "Error!" и пытаться локализовать ошибки дальше.
COUNT() - это встроенная функция MySQL и как любая функция должна обязательно иметь после имени круглые скобки. Специфика SQL позволяет передавать ей в качестве параметра не только имена столбцов, но и значёк *. | |
|
|
|
|
|
|
|
для: cheops
(03.05.2005 в 03:34)
| | Ошибку выводит в этой строке! Из этого следует, что оштбочна $start_pos или $perpage, да?
А вот что дальше делать я не знаю :(
$result = mysql_query('SELECT * FROM gb LIMIT '.$start_pos.', '.$perpage) or die('Error!');
|
| |
|
|
|
|
|
|
|
для: Oligarx
(03.05.2005 в 16:18)
| | Выведите перед этим строку
<?php
echo 'SELECT * FROM gb LIMIT '.$start_pos.', '.$perpage;
?>
|
Что в ней? Как она выглядит и нет ли ошибок в синтаксисе? | |
|
|
|