Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с sql запросом

13K
01 августа 2007 года
Mayc
38 / / 01.02.2007
Код:
<?
require_once("class.php");

         $mysql=mysql_pconnect("$hostadr","$hostname","$hostpass");
         if(!$mysql) {
          echo "<center>Ошибка соединения.Попробуйте попытку чуть позднее.</center>";
           require_once("themes/tmp2_down.php"); exit();
          }
         mysql_select_db("$dbname");
         $sql="SELECT count(*) from quest_com";
         $sql=mysql_query($sql);
         $rows=mysql_fetch_array($sql);
         $start=$rows[0];
         $end=5;
         $sql="SELECT * FROM `quest_com` order by date desc LIMIT $start,$end";
         $sql=mysql_query($sql);
                 
         while($row=mysql_fetch_array($sql))
         {
         echo "<table width='90%' border='0' CELLPADDING='0' CELLSPACING='0'>";
         echo "<tr><td><font color='white'>".$row['name']." | ".$row['date']."</font></td></tr>";
         echo "<tr><td align='left'><font color='white'>".nl2br($row['message'])."</font></td></tr>";
         echo "<tr><td><font color='white'>------------------------------------------------------</font></td></tr>";
         echo "</table>";
         }
         echo "<table width='90%' border='0' CELLPADDING='0' CELLSPACING='0' align='left'>";
         echo "<form action='chat.php' method='POST'>";
         echo "<tr><td><font color='white'>Имя:</font> </td><td><input type='text' name='name' size='29'></td></tr>";
         echo "<tr><td><font color='white'>Сообщение:</font> </td><td><textarea maxlength='200' name='message' cols='30' rows='3'></textarea></td></tr>";
         echo "<tr><td colspan='2' align='right'><input type='submit' value='Отправить'></td></tr></table>";
?>

Результат скрипта должны выводиться 5 комментов на страницу, а выводится пустота.Уже незнаю что и думать
8
01 августа 2007 года
mfender
3.5K / / 15.06.2005
Ты результат-то видел? через print_r() ?

Сдаётся мне, что его нет.
9.0K
01 августа 2007 года
Toxin_F
93 / / 03.01.2007
2 Mayc
 
Код:
$sql="SELECT count(*) from quest_com";
         $sql=mysql_query($sql);
         $rows=mysql_fetch_array($sql);
         $start=$rows[0];
         $end=5;
         $sql="SELECT * FROM `quest_com` order by date desc LIMIT $start,$end";

Цитата:
Уже незнаю что и думать...


Ну это вообще оригинально! В этом случае не думать нужно, а мануал читать.

251
01 августа 2007 года
SkyMаn
1.7K / / 31.07.2007
Цитата: Mayc
 
Код:
$sql="SELECT * FROM `quest_com` order by date desc LIMIT $start,$end";

Результат скрипта должны выводиться 5 комментов на страницу, а выводится пустота.Уже незнаю что и думать


Почему бы тебе просто не ставить явно числа лимитации?

 
Код:
$sql="SELECT * FROM `quest_com` order by date desc LIMIT $start,5";

LIMIT A, B, где
A - с какого
B - и сколько элементов брать
13K
01 августа 2007 года
Mayc
38 / / 01.02.2007
Не пойму что я не так сделал
Я пробовал и числа подставлять просто, нифига
print_r($sql); выдает следующее:
Resource id #9
8
01 августа 2007 года
mfender
3.5K / / 15.06.2005
Цитата: Mayc
Не пойму что я не так сделал
Я пробовал и числа подставлять просто, нифига
print_r($sql); выдает следующее:
Resource id #9


Это уже хорошо. Значит объект есть.
Давай дальше.
Таблицу рисует? (чтобы было виднее, заполни таблицу в БД чем-нибудь и поставь border="1")

9.0K
01 августа 2007 года
Toxin_F
93 / / 03.01.2007
Цитата: SkyM@n
Почему бы тебе просто не ставить явно числа лимитации?
 
Код:
$sql="SELECT * FROM `quest_com` order by date desc LIMIT $start,5";

LIMIT A, B, где
A - с какого
B - и сколько элементов брать


Да а count(*), что выведет? Не общее ли число строк, совершенно случайно так? А мускул как раз с самого последнего элемента попытается вывести 5 строк!

239
02 августа 2007 года
Dolonet
1.7K / / 20.05.2000
Сделай в цикле
 
Код:
print_r( $row );echo ++$i;
. Это чтобы понять что происходит в цикле, если он случается. Что вряд ли.

А вообще SkyM@n совершенно прав. Скорее всего, у тебя паленый первый запросе, и поэтому возвращается пустое значение вместо циферки. Поставь жесткие данные в лимите, а лучше сначала попробуй вообще без лимита. Если работает, понятно где ошибку искать.

Еще есть замечательная функция mysql_error() (http://www.php.net/manual/ru/function.mysql-error.php), с ней ты сразу решишь свою проблему.
9.0K
02 августа 2007 года
Toxin_F
93 / / 03.01.2007
 
Код:
$sql  = mysql_query('SELECT count(*) from quest_com');
$rows = mysql_fetch_row($sql);
$end  = 5;
$sql  = mysql_query('SELECT * FROM `quest_com` order by date desc LIMIT ' . ($rows[0] - 5) . ',' . $end);

Вот.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог