<?php
$image_url = 'images/';
//User defined variables for page settings
$rows_per_page = 2;
$cols_per_page = 4;
//Master array of ALL the images in the order to be displayed
$images = array(
'image1.jpg', 'image2.jpg', 'image3.jpg', 'image4.jpg',
'image5.jpg', 'image6.jpg', 'image7.jpg', 'image8.jpg',
'image9.jpg', 'image10.jpg', 'image11.jpg', 'image12.jpg',
'image13.jpg', 'image14.jpg', 'image15.jpg', 'image16.jpg',
'image17.jpg', 'image18.jpg', 'image19.jpg'
);
//END USER DEFINED VARIABLES
//System defined variable
$records_per_page = $rows_per_page * $cols_per_page;
$total_records = count($images);
$total_pages = ceil($total_records / $records_per_page);
//Get/define current page
$current_page = (int) $_GET['page'];
if($current_page<1 || $current_page>$total_pages)
{
$current_page = 1;
}
//Get records for the current page
$page_images = array_splice($images, ($current_page-1)*$records_per_page, $records_per_page);
//Create ouput for the records of the current page
$ouput = "<table border=\"1\">\n";
for($row=0; $row<$rows_per_page; $row++)
{
$ouput .= "<tr>\n";
for($col=0; $col<$cols_per_page; $col++)
{
$imgIdx = ($row * $rows_per_page) + $col;
$img = (isset($page_images[$imgIdx])) ? "<img src=\"{$image_url}{$page_images[$imgIdx]}\" />" : ' ';
$ouput .= "<td>$img</td>\n";
}
$ouput .= "</tr>\n";
}
$ouput .= "</table>";
//Create pagination links
$first = "First";
$prev = "Prev";
$next = "Next";
$last = "Last";
if($current_page>1)
{
$prevPage = $current_page - 1;
$first = "<a href=\"test.php?page=1\">First</a>";
$prev = "<a href=\"test.php?page={$prevPage}\">Prev</a>";
}
if($current_page<$total_pages)
{
$nextPage = $current_page + 1;
$next = "<a href=\"test.php?page={$nextPage}\">Next</a>";
$last = "<a href=\"test.php?page={$total_pages}\">Last</a>";
}
?>
<html>
<body>
<h2>Here are the records for page <?php echo $current_page; ?></h2>
<ul>
<?php echo $ouput; ?>
</ul>
Page <?php echo $current_page; ?> of <?php echo $total_pages; ?>
<?php echo "{$first} | {$prev} | {$next} | {$last}"; ?>
</body>
</html>上面的代码提供了一种简单的方法将图片放到我的网站上,同时让其他图片自动移动,而不需要数据库。但我想知道:如果我把我的图片移到数据库而不是我现在正在做的事情,会不会让页面加载更快?我的意思是上面的例子显示我只使用了19张图片,但是如果我使用1000张图片,php文件会不会太大?我应该现在就创建一个数据库,还是无关紧要?
此外,由于某些原因,分页不起作用。有人想做个诊断吗?
谢谢!
发布于 2011-03-14 04:17:39
正如你所提到的,如果你有1000张图片,PHP文件将会特别大。虽然这可能会导致加载时间稍微变慢,但包含1000个元素的数组肯定不会超出PHP的有效处理能力。
使用数据库的一部分(实际上是很大一部分)原因是它更容易管理大型数据集。使用您当前的设置,当您想要在开头或结尾以外的位置添加图片时,尤其是当图片变大时,会发生什么情况。
为自己设置一个数据库是确保您未来健全的一个很好的步骤。但是,您可能需要考虑要使用的数据库。考虑到dataset的简单特性,您可能希望考虑使用非SQL数据库,如mongodb,甚至像sqlite这样简单的数据库。
如果你想通过给图片添加标题或位置来增加网站的复杂性,那么你可以考虑使用MySQL/PostgreSQL/等。
就分页而言,您能提供更多关于哪些不起作用的信息吗?页面没有显示,是页数错误吗?它总是显示第1页吗?如果你能提供更多的细节,我会检查并更新我的帖子。
发布于 2011-03-14 04:17:26
如何手动更新包含1000个条目的数组?
我会把它放在数据库的数据里。这样,您还可以在数据被MySQL处理之前通过PHP过滤数据。
发布于 2011-03-14 04:22:02
您应该将数据与代码分开。为了添加新的图像,你不想编辑代码。
通过创建一个函数来重构代码,该函数读取数据目录中的图像,并返回一个包含文件名的数组。
将图像放入数据库不会带来任何进一步的优势。
https://stackoverflow.com/questions/5291985
复制相似问题