Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Ограничение вывода из таблицы MySQL


Автор: Qubert 17.7.2012, 11:35
Всем здравствуйте!

Есть проблема, конечно же, наверняка распространенная! Гуглил - не помогло!

Нужно, чтобы на главной странице сайта, выводились картинки (загруженные на сервер, ссылки которых хранятся в БД) с ограничением, например 7 картинок на каждой странице...Это я сделал, также сделал кнопки на перелистывание страниц, если эти все эти 7 показали!
Не получается одно: когда нажимаю на кнопку, чтобы он создал другую страницу, где тоже 7 картинок, но уже другие, следующие после первых 7-ми,..а он показывает те же самые!

Вот отрывок кода (вся процедура, про которую говорил):

Код


$connection=mysql_connect("localhost",$user,$pass) or die(mysql_error());
mysql_select_db("HustleAndSwaggImgs",$connection) or die(mysql_error());

$photo_res1= mysql_query("SELECT * FROM swagggimgs ORDER BY data DESC ",$connection) or die(mysql_error());

//-----------------------
$chislo=7;

if (mysql_num_rows($photo_res1) > 0) {

if (!$_GET['i']) {

$i=1;

} else {

$i=$_GET['i'];

}

while($row1=mysql_fetch_array($photo_res1))

foreach ($row1 as $lo2 ) {

$j++;

if(($j>$chislo*$i-$chislo)&&($j<=$chislo*$i)){

$width=$row1['width'];
$height=$row1['height'];

$ssylka=$row1['ssylka'];

if (($width>930) and ($height>600)) {

$new_width=930;
$new_height=600;

echo "<div class='table'>";

echo "<table frame='hsides' width='980'>";
echo "<tr>";
echo "<td>";
echo $lo2= "<img src='$ssylka' width='$new_width' height='$new_height'>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "</td>";
echo "</tr>";
echo "</table>"    ;
echo "<br><br>";

echo "</div>";

} else {

if (($width<500) and ($height<400)) {

echo "<div class='table'>";

echo "<table frame='hsides' width='600'>";
echo "<tr>";
echo "<td>";
echo $lo2="<img src='$ssylka' width='$width' height='$height' >";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "</td>";
echo "</tr>";
echo "</table>"    ;
echo "<br><br>";

echo "</div>";

} else {

echo "<div class='table'>";

echo "<table frame='hsides' width='800'>";
echo "<tr>";
echo "<td>";
echo $lo2="<img src='$ssylka' width='$width' height='$height'>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo "</td>";
echo "</tr>";
echo "</table>"    ;
echo "<br><br>";

echo "</div>";
}

}
}
}
}


а это я поставил в другой див: 

Код


for ($m=1; $m<=$j/$chislo+1;$m++){

if($m==$i){

echo"";
}

else {
echo "<a href='swagg(main).php?$i=$m'><h1><b>$m</b></h1></a>";
}
}



чтобы он просто брал шаблон первой страницы, загружал туда изображения из БД (после 7, но до 14) и так с последующими!

просто я понимаю, что сама команда вывода не совсем правильно, мб еще и цикл поставить! только, когда нажимаю на след страницу , там кнопка - 2, к примеру, то он выдает мне те же изображения.

Подскажите, пожалуйста, буду очень благодарен!!!!! СПАСИБО!

Добавлено через 57 секунд
блин! только там без: foreach ($row1 as $lo2 )

Автор: Fortop 17.7.2012, 14:16
Код

SELECT * FROM table ORDER BY data DESC LIMIT page*picturesPerPage +1, picturesPerPage

Это если в лоб

Если подойти чуть умнее, то

Код

SELECT * FROM table WHERE id BETWEEN page * picturesPerPage  AND (page +1) * picturesPerPage

Но для этого надо подкрутить структуру БД и правильно с ней обращаться в процессе загрузки картинок

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)