按顺序编号输出

时间:2013-06-24 12:08:17

标签: php mysql

我制作了一个图像滑块(或者您想要调用它)并显示6个最新图像。在当前较大的图像下,您拥有所有6个最新图像,并且该过程一切正常,但是当您单击较小的图像时,它不会立即显示大图像。因为最新的图像首先是“活动的”并且有自己的<a href="#1>所以输入href="#1"因为我可以操作标签,因为它在那里。但是因为我使用foreach从提交日期开始按降序显示从第2到第6的下5个图像,我不能给每个单独的结果自己href"#number"所以他们可以链接更大的图像,是否有通过获取它在查询中的位置然后将1或2添加到答案然后在href中给出相应的数字来为每个结果分配一个数字的方式,因此当点击时,更大的图像也链接到href数字,它将立即显示较大的图像。

我修改的教程中的代码看起来像这样..

<?php
$latest_headlines = get_latest_headlines(); 
foreach ($latest_headlines as $latest_headline) {
?>
<a href="#1" class="cross-link active-thumb"><img src="img/<?php echo $latest_headline['img_title'].'.'.$latest_headline['img_ext']; ?>" class="nav-thumb" alt="<?php echo $latest_headline['title']; ?>" /></a>

<?php   
}
?>
<div id="movers-row">
<?php 
$recent_headlines = get_recent_headlines();
foreach ($recent_headlines as $recent_headline) {
?>
        <div><a href="#<?php echo $row_num; ?>" class="cross-link"><img src="img/<?php echo $recent_headline['img_title'].'.'.$recent_headline['img_ext']; ?>" class="nav-thumb" alt="<?php echo $recent_headline['title']; ?>" /></a></div>
<?php
} 
?>
</div> 

这是我的两个功能,以获得结果,在人们开始挑选我已经完成的所有问题之前,只想说这是我新学习的方式,它可能都是错的,但它是什么卡在我的到目前为止,以这种方式做事并且工作(ish)......

function get_recent_headlines() {
$sql = "SELECT *
        FROM `story`
        ORDER BY `submit_date` DESC
        LIMIT 1, 5 ";

$result = mysql_query($sql) or die(mysql_error());

$recent_headlines = array();

while (($row = mysql_fetch_array($result)) !== false) {
    $recent_headlines[] = array(
'title'       => $row['title'],
'img_title'   => $row['img_title'],
'img_ext'     => $row['image_ext']  
            );  
}
return $recent_headlines;
}

function get_latest_headlines() {
$sql = "SELECT *
        FROM `story`
        ORDER BY `submit_date` DESC
        LIMIT 1 ";

$result = mysql_query($sql) or die(mysql_error());

$lastest_headlines = array();

while (($row = mysql_fetch_array($result)) !== false) {
    $latest_headlines[] = array(
'title'       => $row['title'],
'img_title'   => $row['img_title'],
'img_ext'     => $row['image_ext']  
            );      
}
return $latest_headlines;
}

2 个答案:

答案 0 :(得分:1)

更改您的函数get_recent_headlines()

的查询

它使用一个变量,并在SELECT语句中递增它:

    `$sql = "SELECT *,(@row:=@row+1) AS rowno
    FROM `story` inner join (SELECT @row:=0) AS row_count
    ORDER BY `submit_date` DESC
    LIMIT 1, 5 ";`

答案 1 :(得分:0)

您可以使用用户变量来获取MySQL中的序列号。: -

SELECT Sub1.*,@aCount:=@aCount+1 AS aSequence
FROM (SELECT *
        FROM `story`

        ORDER BY `submit_date` DESC) Sub1
CROSS JOIN (SELECT @aCount := 0) Sub2
LIMIT 1, 5