[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: LIMIT 10 выводит из базы 9 записей
Гость_User
Здравствуйте.
При выводе данных из базы

$result = mysql_query ("SELECT * FROM field ORDER BY id DESC LIMIT 9", $db);


и далее

while($r = mysql_fetch_array ($result))
{
echo $r['some']."<br>";
};

Выводит на одну запись меньше, чем есть (8).
Это нормально???



Спустя 1 минута, 41 секунда (30.01.2011 - 19:20) Dron19 написал(а):
мой тебе ответ - это не нормально biggrin.gif biggrin.gif biggrin.gif

Спустя 50 секунд (30.01.2011 - 19:21) alex12060 написал(а):

$result = mysql_query ("SELECT * FROM field ORDER BY id DESC LIMIT 0, 10", $db);

Спустя 48 секунд (30.01.2011 - 19:22) alex12060 написал(а):
Dron19
У тебя крутой аватар, и кол-во сообщений))

Сообщений: 666

Сорри за офтоп)

Спустя 2 минуты, 20 секунд (30.01.2011 - 19:24) Гость_User написал(а):
$result = mysql_query ("SELECT * FROM field ORDER BY id DESC LIMIT 0, 10", $db);


Тот же результат.

Спустя 6 минут, 1 секунда (30.01.2011 - 19:30) Basili4 написал(а):
Гость_User
раньше по коду ищи до цикла $r = mysql_fetch_array ($result)

код не бойсь после попова переделывал. Если да тогда точно забыл перед циклом убрать 99% ошибок с такими симптомов из -за этого.

и еще вместо mysql_fetch_array ($result) используй mysql_fetch_assoc ($result) , почему не скажу погляди в мануале, больше пользы будет.

Спустя 1 минута, 40 секунд (30.01.2011 - 19:32) Гость_User написал(а):
0_o

Вот такой вариант работает нормально:

<?php
DEFINE('DATABASE_USER', 'root');
DEFINE('DATABASE_PASSWORD', '');
DEFINE('DATABASE_HOST', 'localhost');
DEFINE('DATABASE_NAME', 'base1');

$dbc = @mysqli_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD,
DATABASE_NAME);

if (!$dbc) {
trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
}

$query="SELECT * FROM comments ORDER BY id DESC limit 5";
$result = mysqli_query($dbc,$query);
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC))
{
echo $row['some']."<br>";
}
?>

Спустя 23 секунды (30.01.2011 - 19:32) Гость_User написал(а):
0_o

Вот такой вариант работает нормально:

<?php	
DEFINE('DATABASE_USER', 'root');
DEFINE('DATABASE_PASSWORD', '');
DEFINE('DATABASE_HOST', 'localhost');
DEFINE('DATABASE_NAME', 'base1');

$dbc = @mysqli_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD,
DATABASE_NAME);

if (!$dbc) {
trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
}

$query="SELECT * FROM comments ORDER BY id DESC limit 5";
$result = mysqli_query($dbc,$query);
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC))
{
echo $row['some']."<br>";
}
?>

Спустя 24 секунды (30.01.2011 - 19:33) alex12060 написал(а):
Значит у тебя 8 записей, либо у тебя что то в коде не то. Будет не плохо, если скинешь весь скрипт.

Спустя 7 минут, 44 секунды (30.01.2011 - 19:40) Гость_User написал(а):
Записей более 30. Цифры разные ставил и всегда количество записей на вывод - минус одна. Проверял код в совершенно "голом" php-файле.

Весь код неверно работающего варианта:

<?php

include ("connect.php");
$result_rs = mysql_query ("SELECT * FROM field limit 0, 5", $db);
$myrow_rs = mysql_fetch_array ($result_rs);

while($myrow_rs = mysql_fetch_array ($result_rs))
{
echo $myrow_rs['some']."<br>";
};

?>


содержимое connect.php:


<?php
$host_name_bd = "localhost";
$user_name_bd = "root";
$password_bd = "";
$db = mysql_connect ( $host_name_bd, $user_name_bd, $password_bd) or die(mysql_error());
mysql_select_db ("base1", $db);
?>


По поводу поповского кода, да это старый кусок его. Использовался в одном файле.

А другой вариант - мой.

Спустя 1 минута, 42 секунды (30.01.2011 - 19:42) Basili4 написал(а):
$myrow_rs = mysql_fetch_array ($result_rs);

while($myrow_rs = mysql_fetch_array ($result_rs))

Я жеж говорил смотри ранее по коду.

Спустя 3 минуты, 8 секунд (30.01.2011 - 19:45) Гость_User написал(а):
Не уловил мысль.

Спустя 2 минуты, 9 секунд (30.01.2011 - 19:47) Basili4 написал(а):
$myrow_rs = mysql_fetch_array ($result_rs); // вот это убить надо

while($myrow_rs = mysql_fetch_array ($result_rs))

Ну ты 1 раз до цикла выбираешь запись и ниче с ней не далаешь за место её еще раз выбираешь поэтому одна запись теряется.

Спустя 2 минуты, 51 секунда (30.01.2011 - 19:50) Гость_User написал(а):
Понял. Точно!
Спасибо.

Спустя 1 минута, 16 секунд (30.01.2011 - 19:52) alex12060 написал(а):

$myrow_rs = mysql_fetch_array ($result_rs);

while($myrow_rs = mysql_fetch_array ($result_rs))
{
echo $myrow_rs['some']."<br>";
};


Очень нравится этот кусок кода :D

Тебе этого хватит за глаза:


<?php

include ("connect.php");
$result_rs = mysql_query ("SELECT * FROM field limit 9", $db);

while($myrow_rs = mysql_fetch_array ($result_rs))
{
echo $myrow_rs['some']."<br>";
};

?>

Спустя 1 минута, 15 секунд (30.01.2011 - 19:53) Basili4 написал(а):
alex12060
еще один.....
на куа тут mysql_fetch_array ????? в крайнем случае использовать 2 параметр

Спустя 12 минут, 43 секунды (30.01.2011 - 20:06) Гость_User написал(а):
А в случае с этой поповской конструкцией:

<?php

include ("connect.php");
$result_rs = mysql_query ("SELECT * FROM field limit 9", $db);
$myrow_rs = mysql_fetch_array ($result_rs)
do {
echo "...";
}
while($myrow_rs = mysql_fetch_array ($result_rs))


?>

Запись тоже выпадать будет?

Спустя 1 минута, 29 секунд (30.01.2011 - 20:07) Basili4 написал(а):
нет там сначала происходит выбор записи потом отображение записи там цикл другой. с пост условием.

Спустя 2 минуты, 22 секунды (30.01.2011 - 20:09) Гость_User написал(а):
Спасибо. Ясно.

Спустя 31 минута, 56 секунд (30.01.2011 - 20:41) alex12060 написал(а):
Basili4

Мне лень было дописывать) Да и показать ему этого не хотел, не в этом суть вопроса была.

Спустя 2 минуты, 21 секунда (30.01.2011 - 20:44) Basili4 написал(а):
alex12060
так тaм array на assoc поменять smile.gif))

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.