$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 запросом
Код:
<?
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>";
?>
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 комментов на страницу, а выводится пустота.Уже незнаю что и думать
Сдаётся мне, что его нет.
Код:
Цитата:
Уже незнаю что и думать...
Ну это вообще оригинально! В этом случае не думать нужно, а мануал читать.
Цитата: 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 - и сколько элементов брать
Я пробовал и числа подставлять просто, нифига
print_r($sql); выдает следующее:
Resource id #9
Цитата: Mayc
Не пойму что я не так сделал
Я пробовал и числа подставлять просто, нифига
print_r($sql); выдает следующее:
Resource id #9
Я пробовал и числа подставлять просто, нифига
print_r($sql); выдает следующее:
Resource id #9
Это уже хорошо. Значит объект есть.
Давай дальше.
Таблицу рисует? (чтобы было виднее, заполни таблицу в БД чем-нибудь и поставь border="1")
Цитата: SkyM@n
Почему бы тебе просто не ставить явно числа лимитации?
LIMIT A, B, где
A - с какого
B - и сколько элементов брать
Код:
$sql="SELECT * FROM `quest_com` order by date desc LIMIT $start,5";
LIMIT A, B, где
A - с какого
B - и сколько элементов брать
Да а count(*), что выведет? Не общее ли число строк, совершенно случайно так? А мускул как раз с самого последнего элемента попытается вывести 5 строк!
Код:
print_r( $row );echo ++$i;
А вообще SkyM@n совершенно прав. Скорее всего, у тебя паленый первый запросе, и поэтому возвращается пустое значение вместо циферки. Поставь жесткие данные в лимите, а лучше сначала попробуй вообще без лимита. Если работает, понятно где ошибку искать.
Еще есть замечательная функция mysql_error() (http://www.php.net/manual/ru/function.mysql-error.php), с ней ты сразу решишь свою проблему.
Код:
$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);
$rows = mysql_fetch_row($sql);
$end = 5;
$sql = mysql_query('SELECT * FROM `quest_com` order by date desc LIMIT ' . ($rows[0] - 5) . ',' . $end);
Вот.