|
|
|
|
|
для: Trianon
(04.07.2006 в 14:00)
| | спасибо | |
|
|
|
|
|
|
|
для: kolobokk
(04.07.2006 в 13:34)
| |
for($i = 30; $i < 40; $i++)
echo $array[$i]['name'];
|
| |
|
|
|
|
|
|
|
для: Trianon
(04.07.2006 в 12:28)
| | нет ну почему же врядли поможет..
можно добавить условие типа
if (empty($_GET['start']))
{
// делаем выборку, формируем массив и записываем его в сессию
}
else
// листаем массив, который уже есть в сессии
|
вопрос остается открытым Как мне сделать выборку из массива, например с 30 по 40 записи? | |
|
|
|
|
|
|
|
для: elenaki
(04.07.2006 в 11:38)
| | Боюсь, это врядли поможет. Если, конечно, не засовывать взятый массив куда-нибудь в сессию... Запрос второй страницы приведет к тому, что данные будут извлечены заново, причем в совершенно другом порядке.
Можно привязать случайность к сессии и более простым способом.
написав что-нибудь вроде "SELECT .... ORDER BY MD5(CONCAT(id, '$session_id')) LIMIT ...." | |
|
|
|
|
|
|
|
для: elenaki
(04.07.2006 в 11:38)
| | то есть так?
<?
// Запрашиваем общее число отображаемых сообщейний
$query = "SELECT id FROM tour order by rand() ";
$tot = mysql_query($query);
// Общее число отображаемых сообщений
$count= mysql_num_rows($tot);
// формируем массив индексов
while ($fot=mysql_fetch_array($query))
{
$catalog[]=$fot[id];
}
//записываем массив в сессию
$_SESSION['catalog']=$catalog;
|
и затем постранично листаем...
вот только как? Помогите пож-та с массивом разобраться. Как мне сделать выборку из массива, например с 30 по 40 записи? | |
|
|
|
|
|
|
|
для: kolobokk
(04.07.2006 в 11:05)
| | постраничную навигацию для того и делают, чтоб уменьшить количество данных, возвращаемых
запросом (вместо 1000 сразу - 100 раз по 10). в вашем случае придется делать один запрос
на вывод случайного набора записей, заносить его в массив и листать уже этот массив, не
делая больше запросов. | |
|
|
|
|
|
|
| Здравствуйте.
Такая ситуация - у меня есть таблица в БД в которой хранится информация о товарах и есть страница razdel.php, которая представляет собой каталог с постраничной навигацией.
Если показывать товары вподряд или отсортировано по какому-нибудь признаку навигация работает нормально, а вот с меня требуют чтобы товары выводились в случайном порядке :( Делаю в запросе
все тоже работает, только вот загвоздка - на каждой странице навигации 1,2,3 выборка получается случайной и, следовательно, смысл постраничной навигации пропадает. Как мне быть?
Вот код выборки
<?
// Запрашиваем общее число отображаемых сообщейний
$query = "SELECT * FROM tour ";
$tot = mysql_query($query);
// Общее число отображаемых сообщений
$count= mysql_num_rows($tot);
// Запрашиваем сами сообщения
$sql="SELECT * FROM tour order by rand() limit $start ,$anumber ";
$result = mysql_query($sql);
|
а вот код навигации
<?
//Показываем навигацию
print '<table width=100%><td ALIGN=center>';
if ($start != 0) print "<A href=razdel.php?start=".($start - $anumber)."&".SID." alt=Предыдущие><img src=images/24bb.gif border=0 valign=absmiddle alt=Предыдущие></A><font size=1>ПРЕДЫДУЩИЕ </font>";
if ($count >= $start+$anumber||$start != 0)
{
for ($i=1; ; $i++)
{
if ($i==$_GET['start']+$anumber||($i==1&&empty($_GET['start'])))
print " <font size=1>".$i."</font>";
else
print " <A href=razdel.php?start=".($i*$anumber-$anumber)."&".SID."><font size=1>".$i."</font></A>";
if ($i>=$count/$anumber-0.51)
{
break;
}
if ($i>=20)
{
print "<font size=1>...</font>";
break;
}
}
}
if ($count > $start + $anumber) print "<font size=1> СЛЕДУЮЩИЕ </font><A href=razdel.php?start=".($start + $anumber)."&".SID." alt=Следующие><img src=images/24db.gif valign=bottom border=0></A> \n";
if ($count > $start + $anumber) $count = $start + $anumber;
print '</td></table>';
|
| |
|
|
|
|