0

我必须在循环中回显一个列表并删除最后一个逗号,到目前为止我所做的适用于逗号问题,但是当我尝试回显一个 href 时,它会在一个 href 标记中给出所有结果。

这是我的代码

$select_actors=mysql_query("SELECT * FROM actors_in_movies WHERE  movie_ref='$movie_ref'");
if (mysql_num_rows($select_actors)>=1) {
    while ($row=mysql_fetch_array($select_actors)) {
        $actor_ref=$row['actor_ref'];  
        $select_actor_name=mysql_query("SELECT * FROM actors WHERE actors_ref='$actor_ref' AND     active='1'");
        while ($row_actor=mysql_fetch_array($select_actor_name)) {
            $actor_name .= $row_actor['actors_name'] . ", ";
        }
    }
    $actor_name = substr(trim($actor_name), 0, -1);
    echo'<a href="../actors/index.php?name='.$actor_name.'">'.$actor_name.'</a>';
}

我需要做的就是列出它列出name1、name2、name3,但每个都需要有自己的url(href)。

4

3 回答 3

1

我建议使用你的循环来构造一个链接数组。然后你可以使用输出链接implode

像这样的东西:

$actor_links=array();

// build array of links from db result
while ($row_actor=mysql_fetch_array($select_actor_name)) {
  $actor_links[]= '<a href="../actors/index.php?name='.
                    $row_actor['actors_name'].'">' .
                    $row_actor['actors_name'] .
                  '</a>';
}


// output each link inside a <p> tag
if (!empty($actor_links)) {
  echo "<p>".implode("</p><p>",$actor_links)."</p>";
}

// alternatively, output links separated by commas
if (!empty($actor_links)) {
  echo implode(",",$actor_links);
}
于 2013-06-06T17:25:19.103 回答
0

如果演员不是第一个,请尝试在前面加上逗号,而不是附加逗号然后将其切断:

$select_actors=mysql_query("SELECT * FROM actors_in_movies WHERE  movie_ref='$movie_ref'");
if (mysql_num_rows($select_actors)>=1) {
    while ($row=mysql_fetch_array($select_actors)) {
        $actor_ref=$row['actor_ref'];  
        $select_actor_name=mysql_query("SELECT * FROM actors WHERE actors_ref='$actor_ref' AND     active='1'");
        $first = true;
        while ($row_actor=mysql_fetch_array($select_actor_name)) {
            if ($first) {
                // no comma first time
                $first = false;
            } else {
                // comma all other times
                echo ", ";
            }
            echo'<a href="../actors/index.php?name='.$row_actor['actors_name'] .'">'.$row_actor['actors_name'] .'</a>';
        }
    }

}

另外,不要使用mysql_*, 函数;它们已被弃用。请改用 MySQLi 或 PDO。

于 2013-06-06T17:44:41.623 回答
0

尝试移动线条

$actor_name = substr(trim($actor_name), 0, -1);
echo'<a href="../actors/index.php?name='.$actor_name.'">'.$actor_name.'</a>';

在while语句中......

我认为它会很好用 =)

于 2013-06-06T17:26:41.347 回答