Возник вопрос как сделать что бы добавление новостей было в начало страницы а не в конец ? Тоесть в базе есть статьи на странице вывод 1.2.3 добавляешь 4 новость и она становиться не 4й а первой а все остальные сдвигаються !
Спустя 8 минут, 41 секунда (5.07.2010 - 11:16) Slays написал(а):
DESC
подробнее:
$sql = "SELECT * FROM `таблица БД` ORDER BY id DESC";
подробнее:
$sql = "SELECT * FROM `таблица БД` ORDER BY id DESC";
Спустя 4 минуты, 55 секунд (5.07.2010 - 11:20) Prana написал(а):
Slays Если можно поподробнее
Спустя 6 минут, 24 секунды (5.07.2010 - 11:27) Slays написал(а):
напиши сюда свой запрос к БД для вывода новостей.
Спустя 12 минут, 16 секунд (5.07.2010 - 11:39) Prana написал(а):
Не судите строго я только учусь )))))
<? include ("blocks/bd.php");
if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
if (!isset($cat)) {$cat = 1;}
$result = mysql_query("SELECT * FROM catigories WHERE id='$cat'",$db);
if (!$result)
{
echo "<p>Запрос не прошел. Напишите админу Prana06@mail.ru. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
}
else
{
echo "<p> В таблице нет записей.</p>";
exit();
}
?>
<? include ("blocks/bd.php");
if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
if (!isset($cat)) {$cat = 1;}
$result = mysql_query("SELECT * FROM catigories WHERE id='$cat'",$db);
if (!$result)
{
echo "<p>Запрос не прошел. Напишите админу Prana06@mail.ru. <br> <strong>Код ошибки:</strong></p>";
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
}
else
{
echo "<p> В таблице нет записей.</p>";
exit();
}
?>
Спустя 3 минуты, 49 секунд (5.07.2010 - 11:43) antonov_sa написал(а):
$result = mysql_query("SELECT * FROM catigories WHERE id='$cat' ORDER BY id(или что там у тебя) DESC",$db); у попова бери консультации)
Спустя 3 минуты, 33 секунды (5.07.2010 - 11:47) Slays написал(а):
<?php
include ("blocks/bd.php");
$cat = isset($_GET['cat'])?$_GET['cat']:'1';
$sql = "SELECT * FROM catigories WHERE id='".$cat."' ORDER BY id DESC";
$result = mysql_query($sql,$db) or die("ошибка mysql");
if (empty(mysql_num_rows($result)))
exit("<p> В таблице нет записей.</p>");
$myrow = mysql_fetch_assoc($result);
?>
Спустя 7 минут, 38 секунд (5.07.2010 - 11:54) Basili4 написал(а):
$cat = isset($_GET['cat'])?$_GET['cat']:'1';
единствено что я хочу сказать не стоит так прям пропускать параметры в скрипт и '1' смотрится как то ....... не правильно
$cat = isset($_GET['cat'])?intval($_GET['cat']):1;
единствено что я хочу сказать не стоит так прям пропускать параметры в скрипт и '1' смотрится как то ....... не правильно
$cat = isset($_GET['cat'])?intval($_GET['cat']):1;
Спустя 2 минуты, 57 секунд (5.07.2010 - 11:57) Slays написал(а):
ну да, безопасность это уже отдельная тема )
Prana запоминай советы, пригодятся )
Prana запоминай советы, пригодятся )
Спустя 2 минуты, 7 секунд (5.07.2010 - 11:59) linker написал(а):
Можно, немного подправлю?
$cat = isset($_GET['cat'])?abs((integer)$_GET['cat']):1;
Спустя 2 минуты, 8 секунд (5.07.2010 - 12:01) Prana написал(а):
linker
Да да спасибо я уже исправил !!! ))
Да да спасибо я уже исправил !!! ))
Спустя 4 минуты, 10 секунд (5.07.2010 - 12:06) Prana написал(а):
Slays
Вставив вашь код пишет Fatal error: Can't use function return value in write context in а если сделать проще $result = mysql_query("SELECT * FROM catigories WHERE id='$cat' ORDER BY id DESC",$db); то эффекта нет !
Вставив вашь код пишет Fatal error: Can't use function return value in write context in а если сделать проще $result = mysql_query("SELECT * FROM catigories WHERE id='$cat' ORDER BY id DESC",$db); то эффекта нет !
Спустя 24 минуты, 56 секунд (5.07.2010 - 12:30) Slays написал(а):
у тебя в БД mysql есть поле id с auto_increment и primary key ?
Спустя 1 минута, 33 секунды (5.07.2010 - 12:32) Prana написал(а):
Slays
Конечно !
Конечно !
Спустя 3 минуты, 29 секунд (5.07.2010 - 12:35) Slays написал(а):
а $db есть ?
замени
$result = mysql_query($sql,$db) or die("ошибка mysql");
на
$result = mysql_query($sql) or die("ошибка mysql");
замени
$result = mysql_query($sql,$db) or die("ошибка mysql");
на
$result = mysql_query($sql) or die("ошибка mysql");
Спустя 3 минуты, 2 секунды (5.07.2010 - 12:39) linker написал(а):
if (empty(mysql_num_rows($result)))вот тут скорее всего ошибка empty можно отдать только переменную, типа empty($str), но не результат выполнения функции.
Спустя 3 минуты, 16 секунд (5.07.2010 - 12:42) Prana написал(а):
Slays
Пишет туже хрень ошибка в if (empty(mysql_num_rows($result))) строке !
Пишет туже хрень ошибка в if (empty(mysql_num_rows($result))) строке !
Спустя 3 минуты, 58 секунд (5.07.2010 - 12:46) linker написал(а):
Prana, читай выше что я написал.
Цитата |
if (empty(mysql_num_rows($result)))вот тут скорее всего ошибка empty можно отдать только переменную, типа empty($str), но не результат выполнения функции. |
Спустя 1 минута, 33 секунды (5.07.2010 - 12:47) Slays написал(а):
а, linker прав, тогда верни
if (mysql_num_rows($result)=='0')
или сделай
$num = mysql_num_rows($result);
if(empty($num))
сразу бы сказал строку ошибки =)
if (mysql_num_rows($result)=='0')
или сделай
$num = mysql_num_rows($result);
if(empty($num))
сразу бы сказал строку ошибки =)
Спустя 3 минуты, 57 секунд (5.07.2010 - 12:51) Prana написал(а):
Если я сейчас все правильно понял то када я внес в базу статью она будет в начале страницы ?
Спустя 2 минуты, 2 секунды (5.07.2010 - 12:53) Prana написал(а):
Все равно внес в базу запись и она вылезла 3й так как 2е уже есть там !
Спустя 3 минуты, 57 секунд (5.07.2010 - 12:57) Slays написал(а):
ну смотри, ORDER BY id ASC и ORDER BY id DESC отвечают за сортировку результата, вместо id может быть любое другое поле БД, по которому и будет произведена сортировка.
ASC используется по умолчанию и по-этому его можно не указывать ,в этом случае будет идти обычная сортировка по возрастанию, т.е.
id=1
id=2
id=3
DESC указывает, что нужно сортировать в порядке убывания, т.е
id=3
id=2
id=1
при добавлении, если стоит авто инкремент, твой id будет постоянно увеличиваться, что и даст тебе вывод каждой новой строки из базы выше предыдущих.
ASC используется по умолчанию и по-этому его можно не указывать ,в этом случае будет идти обычная сортировка по возрастанию, т.е.
id=1
id=2
id=3
DESC указывает, что нужно сортировать в порядке убывания, т.е
id=3
id=2
id=1
при добавлении, если стоит авто инкремент, твой id будет постоянно увеличиваться, что и даст тебе вывод каждой новой строки из базы выше предыдущих.
Спустя 12 минут, 40 секунд (5.07.2010 - 13:10) Prana написал(а):
Slays
linker
Огромное вам спасибо за грамотное понятное обьяснение !!!
linker
Огромное вам спасибо за грамотное понятное обьяснение !!!