【发布时间】:2011-07-19 09:41:58
【问题描述】:
http://i.stack.imgur.com/5OTgG.png
上图描述了我的问题,并提供了视觉效果。 如您所见,我只想保留或删除右上角的两个空格。我怎样才能做到这一点?
这是我当前的代码:
<html>
<head>
</head>
<body>
<?php
$objConnect = mysql_connect("localhost","root","") or die(mysql_error());
$objDB = mysql_select_db("dbname");
$strSQL = "SELECT * FROM album";
if (!isset($_GET['Page'])) $_GET['Page']='0';
$objQuery = mysql_query($strSQL);
$Num_Rows = mysql_num_rows($objQuery);
$Per_Page = 12; // Per Page
$Page = $_GET["Page"];
if(!$_GET["Page"])
{
$Page=1;
}
$Prev_Page = $Page-1;
$Next_Page = $Page+1;
$Page_Start = (($Per_Page*$Page)-$Per_Page);
if($Num_Rows<=$Per_Page)
{
$Num_Pages =1;
}
else if(($Num_Rows % $Per_Page)==0)
{
$Num_Pages =($Num_Rows/$Per_Page) ;
}
else
{
$Num_Pages =($Num_Rows/$Per_Page)+1;
$Num_Pages = (int)$Num_Pages;
}
$strSQL .=" order by albumID ASC LIMIT $Page_Start , $Per_Page";
$objQuery = mysql_query($strSQL);
echo"<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\"><tr>";
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
echo "<td>";
$intRows++;
?>
<center>
<img src="https://s3.amazonaws.com/thumbnails/<?=$objResult["Picture"];?>" height="190" width="190" /></a><br>
<?=$objResult["albumName"];?>
<br>
</center>
<?php
echo"</td>";
if(($intRows)%4==0)
{
echo"</tr>";
}
}
echo"</tr></table>";
?>
<br>
<?php
//DELETED PAGINATION CODE for the sake of simplicity in StackOverflow
?>
</body>
</html>
<?php
mysql_close($objConnect);
?>
【问题讨论】:
-
看起来你从来没有打开过
<tr>,除非你创建了表。 -
您希望在这些插槽中放入什么?是不是您没有从数据库中获取的另一个图片/专辑名称?
-
是的,或者只是一些无关的东西的空格。还没决定。
-
顺便说一句,您正在不必要地敲打您的数据库。代替执行“SELECT * FROM album”,然后执行 mysql_num_rows(..) 您可以执行“SELECT count(*) FROM album”,它只返回表中的行数并且非常有效。这也将消除像现在这样查询专辑表两次的需要。
-
另外,在 DB 查询中使用来自 $_GET 的值存在安全风险。我建议仅使用 $_GET 将参数解析为其他变量,同时确保它们具有有效数据。例如,对于只能具有数值的变量,请执行以下操作: $PageNum = ($_GET['page'] ? intval($_GET['page'] : 0);
标签: php mysql database pagination html-table