|
|
|
| Доброе време суток!!!
Я хочу сделать фотогалерею, ана должна выводится(из мускуля) в 3 ячейки горизонтально и 3 вертикально (ячейки из таблицы) например:
фото1 фото2 фото3
фото4 фото5 фото6
фото7 фото8 фото9
и кагда ана доходит до девятой фотке то должна созждоватса сылка на другую страницу в которой должны стоять остольные фотографии.
Я сам примерно понемаю как это делается, но только примерно :)
Быду очень благодарен если вы приведете небольшой скриптик :) | |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.09.2004 в 04:47)
| | Для выборки из таблицы ограниченного числа записей следует использовать инструкцию LIMIT N, M, где N - позиция начиная к которой следует выбирать записи (например $start), а M - число выбираемых записей ($pnumber). Сам SQL-запрос может выглядеть следующим образом:
SELECT * FROM base LIMIT 10, 9
|
Поэтому управление выводом сводится к манипуляции этими двумя переменными. Для вывода ссылок на другие странице понадобится так же общее число записей в таблице - $total (SELECT COUNT(*) FROM base).
<?php
// Число страниц с фотографиями
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
// В цикле выводим ссылки на другие фотографии
for($i = 1; $i<=$number; $i++)
{
if($number == $i)
{
if($start == $i)
echo "[".(($i - 1)*$pnumber + 1)."-$total]";
else
echo "<a href=index.php?start=".$i.">[".(($i - 1)*$pnumber + 1)."-$total]</a>";
}
else
{
if($start == $i)
echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]";
else
echo "<a href=index.php?start=".$i.">[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] </a>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 10:07)
| | Если вас не затруднит моглибы вы чуть лутше объеснить этот код ? | |
|
|
|
|
автор: elenaki (12.09.2004 в 14:10) |
|
|
для: Адоп Акробат
(12.09.2004 в 13:32)
| | извините, позволю себе не согласиться. у вас только навигационная часть, т.е. ссылки на группы. а вопрос был сначала про вывод в таблицу, а потом уже ссылки на други страницы. я делала такое. причем можно задавать количество строк и столбцов на странице, скрипт рассчитывает количество страниц, если на последней странице таблица неполная, то не выводятся пустые ячейки.
вот, смотрите здесь
(если б я еще знала, как код прицеплять как у вас - красиво...) | |
|
|
|
|
автор: elenaki (12.09.2004 в 14:19) |
|
|
для: elenaki
(12.09.2004 в 14:10)
| | нашла как код выделять :)
на PHP я это написала давно-давно и не использовала. но потом пришлось переделать на CFML. а сейчас - обратно на PHP :)
если можно короче - исправляйте. мне кажется, все понятно...
<?php
include "config.php";
$show_cols = 3; // кол-во колонок
$show_rows =2; // кол-во строк
if (!isset($start1)) $start1=1; //если нач.страница не установлена, идем на первую
//определяем, сколько столбцов и где мы находимся
$query = ("SELECT * FROM #table order by pic_id ");//здесь можно только кол-во записей запрашивать
$array=mysql_query($query);
$num_rows = mysql_num_rows($array); //всего строк в базе
$cols=floor($num_rows/$show_cols); //всего кол-во столбцов
$pages = floor($num_rows/($show_cols*$show_rows));//кол-во страниц
if ($num_rows > $show_cols*$show_rows*$pages) $pages++; //если строк в базе больше, чем помещается на одной странице, переходим на след.
for ($ii=1; $ii<=$pages; $ii++) { //начинаем цикл перебора всех страниц
$from1=$ii*$show_rows*$show_cols-($show_rows*$show_cols-1); //
$to1=$ii*$show_rows*$show_cols; //кол-во показ.страниц
if ($to1 > $num_rows) $to1 = $num_rows; //если кол-во показ.страниц больше, чем строк в базе, делаем его равным
if ($start1==$from1) echo "| <font style=\"font-face: Verdana, Arial, Helvetica, sans-serif;
color : #ff8c00; font-weight : bold; font-size: 12px;\">$from1 - $to1</font>";
else
{echo " | <a href=\"view4.php?start1=$from1&gal=$gal\" style=\"font-face: Verdana, Arial, Helvetica, sans-serif;
color : #000000; font-weight : bold; font-size: 12px;\"> $from1 - $to1</a>";}
}
?>
</td></tr></table><br><br>
<?
/// вывод страницы
if ($num_rows > $pages*$show_cols*$show_rows) $vid++;
for ($iii=0; $iii<=$vid; $iii++) {
/// вывод таблицы
if ($num_rows > $show_rows) $show_rows++;
for ($i=2; $i<=$show_rows; $i++) {
$start1=$start1 - 1;
$query = "SELECT * FROM ecard_pics WHERE own = 'Y' and markdel = 'N' ORDER BY pic_id limit $start1,$show_cols";
$start1=$start1+$show_cols + 1;
$result = mysql_query($query);
$number = mysql_num_rows($result);
echo"<table align=center border=\"0\" cellpadding=5 cellspacing=2 >";
$j = 0;
WHILE ($j < $number)// вывод строки
{
$pic_name = mysql_result($result,$j,"pic_name");
echo"<td align=center bgcolor=#ffffff valign=middle style=\"border-style: solid; border-color: #909090; border-width: 1px\">
<img src=\"mic/".$pic_name."\" border=0></TD>";
$j++;
}// конец вывода строки
}// конец вывода таблицы
}// конец вывода страницы
///
?>
|
| |
|
|
|
|
|
|
|
для: elenaki
(12.09.2004 в 14:19)
| | Большое спосибо всем за помошь!!!! | |
|
|
|