Местене на резултатите на нов ред при определен брой
Автор: jooorooo
така ето един урок, как да се прехвърлят резултатите на нов ред когато стигнат до зададения брои на ред. ще ви покажа 2 начина, единия е с таблици а другия с див. този който е с дивовете не се различава от нормална заявка, всичко става с CSS.
та стига приказки а ето го и него.
забележете в CSS-а как съм задал 800пиксела на контеинера и 195 пиксела на дивовете, значи като разделиме 800/195 е приблизително равно на 4, винаги оставям малко по голям контеинера (на 1 див по 5 пиксела) защото често се получава да не е желания резултат заради бордера на дива.
<style type="text/css">
<!--
#konteiner
{
width: 800px;
}
.div{
width:195px;
height:150px;
float:left;
}
-->
</style>
<?php
$server="localhost";
$dbusername="dbuser";
$dbpassword="dbpassword";
$db_name="dbname";
mysql_connect($server, $dbusername, $dbpassword)or die("Сайтът не може да се свърже към базата данни");
@mysql_select_db($db_name) or die("Грешна база данни");
$query="SELECT * FROM testova ORDER BY id DESC";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
$i=0;
echo '<div id="konteiner">'; //тук задаваме един див, който ще ни е контейнер
while ($i < $num) {
$title=mysql_result($result,$i,"title");
$pic=mysql_result($result,$i,"pic");
//дивовете в които ще визуализираме резултата и при достигане до края на контейнера минават на нов ред. размерите са зададени в CSS стила по-горе.
echo "<div class=\"div\">
<img alt='$title' src='img/$pic' border='0'><br>
<center><b>$title</b><center>
</div>";//затваряме дивовете за резултатите
$i++;
}
echo '</div>';//затваряме контейнера
?>а ето сега и начина с таблица:
<table>
<?php
$server="localhost";
$dbusername="dbuser";
$dbpassword="dbpassword";
$db_name="dbname";
$i="0";
$nared="4"; //по колко резултата на ред да покаже
mysql_connect($server, $dbusername, $dbpassword);
@mysql_select_db($db_name) or die("Unable to select database");
$query="SELECT * FROM testova ORDER BY id DESC";
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
$title=$red[title];
$pic=$red[pic];
$i++;
$width=ceil(100/$nared);//смятаме 100% делено на броя който сме задали да са на ред необходимо за td-тата на таблицата
echo "<td valign=\"top\" width=\"".$width."%\"><img alt='$title' src='img/$pic' border='0'><br>
<center><b>$title</b></td>";
if ($i==$nared) //правиме проверка и ако броя е достигнал до зададения, да визуализира </tr><tr> за да пренесе резултата на нов ред.
{
echo "</tr>
<tr>";
$i=0;
}
}
?></table>а сега ето и една примерна База данни за да тествате спокойно 🙂
CREATE TABLE `testova` (
`id` int(10) NOT NULL auto_increment,
`title` varchar(255) default NULL,
`pic` varchar(255) default NULL,
PRIMARY KEY (`id`)
);така, според примерите които съм дал, полето pic е за картинка и се записва само името и разширението на картинката, а картинките трябва да са в папка img, а ако искаше да смените папката, намерете src=’img/$pic’ и маркираното в червено го сменете с името на папката която желаете.
Урока е подготвен по поръчка на потребител на https://web-tourist.net/forum/ и специално за https://web-tourist.net
Забранява се неговото копиране в други сайтове, без разрешение.


