http://img.ruphp.com/php/5OTgG.gif
Изображение выше описывает мою проблему и обеспечивает визуальную визуальность. Как вы можете видеть, я просто хочу зарезервировать или удалить два пробела в правом верхнем углу. Как я могу это достичь?
Это мой текущий код:
<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); ?>
В вашем цикле вам нужно будет включить некоторый условный оператор, чтобы прервать его поведение по умолчанию.
while($objResult = mysql_fetch_array($objQuery)) { if(($intRows)%4==0) { echo"<tr>"; // You forgot this. } echo "<td>"; $intRows++; if ($intRows == 3 || $intRows == 4) : ?> <!-- special cells --> <? else: ?> <center> <img src="https://s3.amazonaws.com/thumbnails/<?=$objResult["Picture"];?>" height="190" width="190" /></a><br> <?=$objResult["albumName"];?> <br> </center> <?php endif; echo"</td>"; if(($intRows)%4==0) { echo"</tr>"; } } // You also need this part: echo ($intRows %4 > 0 ? "</tr>" : "") . "</table>";
Ваша переменная $ intRows, кажется, подсчитывает ячейки, а не строки. Таким образом, вы можете просто определить верхние правые ячейки по их номерам, которые должны быть 2 и 3. Добавьте это в свой цикл:
$cell = 0; echo '<table border="1" cellpadding="2" cellspacing="1"><tr>'; while($objResult = mysql_fetch_array($objQuery)) { if($cell % 4 == 0) { echo '</tr><tr>'; } if($cell == 2 || $cell == 3) { echo '<td>RESERVED</td>'; } else { echo '<td>'.$objResult["albumName"].'</td>'; } $cell++; } echo '</tr></table>';