Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: гостевая - пример из книги PHP5 практика_разработки_web-сайтов
 
 автор: crimso13   (08.09.2008 в 05:57)   письмо автору
 
 

поставил себе этот скрипт но почемуто не выводятся сообщения
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
вот указывает на эту строку
while($themes = mysql_fetch_array($thm))
код вроде такой же
<?
  
// Осуществляем соединение с базой данных
  // Извлекаем из строки запроса параметр start
  
if(isset($_GET['start'])) $start = $_GET['start'];
  else 
$start = "";
  
// Стартовая точка
  
if (empty($start)) $start = 0;
  
// Стартовая точка не может быть меньше нуля
  
if ($start < 0) $start =0;
  
// Запрашиваем общее число отображаемых сообщений
  
$query = "SELECT count(*) FROM guest 
            WHERE hide = 'show'"
;
  
$tot = mysql_query($query);
  
// Запрашиваем сами сообщения
  

  
$thm = mysql_query("SELECT * FROM guest 
            WHERE hide = 'show' 
            ORDER BY puttime DESC
            LIMIT 
$start, $pnumber",$db);
 
  
// Общее число отображаемых сообщений
  
$count= mysql_result($tot,0);
  
// Выводим ссылки на предыдущие и следующие сообщения
  
if ($start > 0)  print "<a href=guest_book.php?start=".($start-$pnumber).">Предыдущие</A>";
  if (
$count > $start + $pnumber)  print " <a href=guest_book.php?start=".($start + $pnumber).">Следующие</A>";
   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']);
?>
  <table border="0" cellpadding="0" cellspacing="0" width=80%>
    <tr bgcolor="#DEDEDE">
      <td height="20"><p>&nbsp;&nbsp;<b><? echo $name?></b>&nbsp;
          <? if (!empty($city)) print "($city)"; ?></td>
      <td align="right"><p class=help>от: <? print $themes['puttime']; ?></td>
    </tr>
    <tr>
      <td><p class=help><? if (!empty($email)) print "e-mail: <a class=link href=mailto:$email>$email</a>"; ?>
          <? if (!empty($url))  print "www: <a class=link href='$url'>$url</a>"; ?></td>        
    </tr>
    <tr>
        <td><p><? echo $msg; ?><br>
        <?
        
if (!empty($answer) && $answer != "-" ) print "<p class=msg>Администратор:&nbsp$answer</p>";
        
?>
        </td>
    </tr>
</table><br>    
<?
  
}
  print 
'<a class=link href=addrec.php>Написать сообщение</A>';
  
// Выводим ссылки на предыдущие и следующие сообщения
  
if ($start > 0)  print "<a href=guest_book.php?start=".($start-$pnumber).">Предыдущие</a>";
  if (
$count > $start + $pnumber)  print " <a  href=guest_book.php?start=".($start + $pnumber).">Следующие</a>";
  
?>      

в чем ошибка

  Ответить  
 
 автор: tokmak   (08.09.2008 в 14:42)   письмо автору
 
   для: crimso13   (08.09.2008 в 05:57)
 

Попробуй этот код:

<?
  
// Осуществляем соединение с базой данных
  
include "config.php";
  
// Извлекаем из строки запроса параметр start
  
if(isset($_GET['start'])) $start = $_GET['start'];
  else 
$start = "";
  
// $start может принимать либо числовые значения, либо 
  // пустое значение
  
if(!preg_match("|^[\d]+$|",$start) && !empty($start)) exit();
  
// Стартовая точка
  
if (empty($start)) $start = 0;
  
$start = intval($start);
  if (
$start < 0) $start = 0;
  
// Запрашиваем общее число отображаемых сообщейний
  
$query = "SELECT count(*) FROM guest 
            WHERE hide = 'show'"
;
  
$tot = mysql_query($query);
  
// Запрашиваем сами сообщения
  
$query = "SELECT * FROM guest 
            WHERE hide = 'show' 
            ORDER BY puttime 
            DESC LIMIT 
$start, $pnumber";
  
$thm = mysql_query($query);
  if(!
$tot || !$thm) puterror("Ошибка при выборке сообщений...");
  
// Общее число отображаемых сообщений
  
$count= mysql_result($tot,0);

  
// Выводим ссылки на предыдущие и следующие сообщения
  
if ($start > 0)  print "<img style='margin-right: 10px' src='images/arrow1.gif' border='0' width=7 height=17 align=middle><A class=link href=index.php?start=".($start - $pnumber).">Предыдущие</A></em> ";
  if (
$count > $start + $pnumber)  print " <A class=link href=index.php?start=".($start + $pnumber).">Следующие</A><img style='margin-left: 10px' src='images/arrow2.gif' border=0 width=7 height=17 align=middle> \n";
  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']);
?>
  <table border="0" width="100%" cellpadding="0" cellspacing="0">
    <tr bgcolor="#F8F8F8">
        <td rowspan="1" height="20"><nobr><p class=ptdg><b><? echo $name?></b>&nbsp;<? if (!empty($city)) print "($city)"; ?></nobr></td>
        <td width="100%" valign="bottom" align="right" ><nobr><p class=help>от: <b><? print $themes['puttime']; ?></b></nobr></td>
    </tr>
    <tr>
        <td></td>       
        <td bgcolor="gray" height="1"><img src="images/pic.gif" border="0" width="1" height="1" alt=""></td>
    </tr>
    <tr valign="top">
        <td rowspan="2" colspan="2" height="25"><nobr><p class=ptdg><? if (!empty($email)) print "e-mail: <a class=link href=mailto:$email>$email</a>&nbsp;&nbsp;"; ?>
        <? if (!empty($url)) print "www: <a class=link href='$url'>$url</a>"; ?></nobr></td>        
    </tr>   
    <tr>
        <td height="10"><nop></td>
    </tr>
    <tr valign="top">
        <td colspan="2"><p class=ptext>
        <? echo $msg; ?>
        <br>
        <?
        
if (!empty($answer) && $answer != "-" ) 
        {
           print 
"<p class=panswer>Администратор:&nbsp$answer</p>";
        }           
        
?>
        </td>
    </tr>
</table>    
<br><br>
<?
  
}
  print 
'<a class=link href=addrec.php>Написать&nbsp;сообщение</A>&nbsp;&nbsp;&nbsp;&nbsp;';
  if (
$start != 0) print " <img style='margin-right: 10px' src='images/arrow1.gif' border='0' width=7 height=17 align=middle><A class=link href=index.php?start=".($start - $pnumber).">Предыдущие</A> ";
  if (
$count > $start + $pnumber) print " <A class=link href=index.php?start=".($start + $pnumber).">Следующие</A><img style='margin-left: 10px' src='images/arrow2.gif' border=0 width=7 height=17 align=middle> \n";
  if (
$count > $start + $pnumber) $count = $start + $pnumber;
?>
</td></tr></table>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования