我想在我的页面上有一个上一个|下一个链接来更改图片。
我使用一个函数来获取相关元素。然而,我不知道在我的函数中需要什么额外的代码,以及把它放在哪里。也不知道html部分应该有什么。
我从foreach看了很多下一页/上一页,但我似乎无法理解它们。
代码:
function image_data($image_album_id) {
$image_album__id = (int)$image_album_id;
$args = func_get_args();
unset($args[0]);
$fields = '`'.implode('`, `', $args).'`';
$query = mysql_query("SELECT $fields FROM `album_images`
WHERE `image_album_id`=$image_album_id AND `member_id`= '1'");
$ query_result = mysql_fetch_assoc($query);
foreach ($args as $field) {
$args[$field] = $query_result[$field];
}
return $args;
}
Html页面:
<a href="">Last</a>|
<a href="">Next</a>
</div>
<?php
$image_album_id =$_GET['image_album_id'];
$image_data = image_data($image_album_id, 'album_id', 'albumname', 'ext', 'timestamp');
echo '';
?>
<td class="smallfont albumthumb2" align="center" valign="middle" >
<a href="album_viewT.php?=<?php echo 'images/albums/thumbs/'. $image_data['album_id']. '/'. $image_album_id. '.' .$image_data['ext']; ?> "></a>
<img alt="" class="album_cover" src="<?php echo 'images/albums/thumbs/'. $image_data['album_id']. '/'. $image_album_id. '.' .$image_data['ext'];?> " height="175px" width="175px">
</td>
非常感谢。我希望我说得通。
感谢您的快速响应。
由于有很多东西要看和消化,我想我会看看它是否有效。
唉,没有。
存在解析错误:语法错误,意外'<'在线
$prev_link=上一个;
我在那一节中唯一注意到的是后面的一个额外的花括号
我看到‘title="$next_name"}’也是如此
参考你的具体问题。
当我点击上一页中的链接时,我会进入album_viewT页面。其中包含微小的缩略图。链接是localhost/Testing/album_view.php?artist_id=4&以image_album_id=4为例。
不确定我是否完全理解"日期顺序为image_album_data
是的,数据库中几乎有3000行。
我还应该提到,album_id已被artist_id取代。
href是否应更改为"album_view.php/id/…
您的问题缺少一些数据,即您正在访问的生成此代码的页面是什么(即URL),以及您的数据是如何排序的。例如,我可以看到您正在使用album_viewT.php?
脚本提供潜在的更多信息,但它不一定是显示您生成的HTML的脚本。
因此,在所有这些之后,我将做出一些假设,希望这将为您找到解决方案提供正确的指导。
- 我假设您的访问页面http://mysite.com/albums/id/25
- 我还假设数据的顺序是image_album_id
- 最后,我假设你的数据库中有数据,我不需要检查当前图像的模板中是否有返回的数据。你需要自己解决这个问题
您需要首先从数据库中获取数据:
function image_data($image_album_id)
{
$results = array(
'previous' => FALSE,
'current' => FALSE,
'next' => FALSE,
);
$image_album__id = (int)$image_album_id;
$args = func_get_args();
unset($args[0]);
$fields = '`'.implode('`, `', $args).'`';
// Current record
$results['current'] = get_data(
$fields,
"AND image_album_id = {$image_album_id}"
);
// Previous - no need to run this if we don't have a current
if ($results['current'])
{
// Current record
$results['previous'] = get_data(
$fields,
"AND image_album_id < {$image_album_id} " .
"LIMIT 1"
);
}
// Next - no need to run this if we don't have a current
if ($results['current'])
{
// Current record
$results['next'] = get_data(
$fields,
"AND image_album_id > {$image_album_id} " .
"LIMIT 1"
);
}
// If all went well the $results array will contain the data
// for the 3 records. If we are at the beginning or the end,
// the previous and/or next will be FALSE
return $results;
}
function get_data($fields, $where = '')
{
$return = FALSE;
// Template
$template = "SELECT %s "
. "FROM album_images "
. "WHERE member_id = 1 %s";
// Current record
$sql = sprintf($template, $fields, $where);
$query = mysql_query($sql);
$query_result = mysql_fetch_assoc($query);
// If data has been found
if ($query_result)
{
$return = $query_result;
}
return $return;
}
对于您的HTML页面:
<?php
$image_album_id = $_GET['image_album_id'];
$image_data = image_data(
$image_album_id,
'album_id', 'albumname', 'ext', 'timestamp'
);
$prev_link = '';
$next_link = '';
if ($image_data['previous'])
{
$prev_id = $image_data['previous']['album_id'];
$prev_name = $image_data['previous']['albumname'];
$prev_link = <a href="/albums/id/{$prev_id}" title="$prev_name"}>Previous</a>";
}
if ($image_data['next'])
{
$next_id = $image_data['next']['album_id'];
$next_name = $image_data['next']['albumname'];
$next_link = <a href="/albums/id/{$next_id}" title="$next_name"}>Next</a>";
}
$curr_id = $image_data['current']['album_id'];
$curr_ext = $image_data['current']['ext'];
?>
<?php echo $prev_link; ?>|<?php echo $next_link; ?>
</div>
<td class="smallfont albumthumb2" align="center" valign="middle">
<a href="album_viewT.php?images/albums/thumbs/
<?php echo "{$curr_id}/{$image_album_id}.{$curr_ext}; ?>
<img alt="" class="album_cover"
src="images/albums/thumbs/
<?php echo "{$curr_id}/{$image_album_id}.{$curr_ext}"; ?>
height="175px"
width="175px" />
</a>
</td>
注意:为了清楚起见,我已经在HTML文件中拆分了img
和a
标记的行。