1

我有一个数据库,其中包含指向其中每一集的链接的行。我正在尝试使用下面的代码来获取一种类型的节目的所有链接,并且我成功地做到了。我似乎想不通的是如何只显示其中的一行,而不是让它们全部显示在一行文本中,这样我就可以在构建页面时使用它们。

$query = "SELECT direct_link FROM episode_link WHERE anime_id = '$animeid'";
$result = mysql_query($query) or die(mysql_error());    
while($row = mysql_fetch_array($result)) 
{
    $dlink = $row['direct_link'];
    echo $dlink;
}

目前它正在像这样显示它们。

link1link2link3link4link5link6

我希望能够一次显示一个或为它们分配变量,以便我可以将它们放在我网站上的 href 标记中。我以为我可以通过使用 $row[1] 来做到这一点,但这并没有显示任何内容。

抱歉,如果我让我难以理解,是 php 新手,所以我还在学习。

4

7 回答 7

2

我建议你多看看一些基本的教程网站

$dlink = array();
while($row = mysql_fetch_array($result)){
        $dlink[] = $row['direct_link'];
}

那么当你想回显时:

foreach($dlink as $link){
echo '<a href="'.$link.'">'.$link.'</a><br />'.PHP_EOL;
}


另外:由于您可能想要链接的标题而不是文字链接,因此您也应该从数据库中获取标题,如果您已将其存储为:

SELECT direct_link,title FROM episode_link...

$dlink = array();
$i=0;
while($row = mysql_fetch_array($result)){
        $dlink[$i]['title'] = $row['title'];
        $dlink[$i]['link']  = $row['direct_link'];
$i++;
}

然后在回显时:

foreach($dlink as $link){
echo '<a href="'.$link['link'].'">'.$link['title'].'</a><br />'.PHP_EOL;
}
于 2012-05-27T15:48:12.397 回答
1

您可以使用类似的方法将结果返回到可用数组中。

// Returns the rows as an array of rows 
// Providing a key_column gives you access to specific rows (e.g. if (isset($result_array[$user_id])) ...) 
function db_result_array($result, $key_column = null) { 
   for ($array = array(); $row = mysql_fetch_assoc($result); isset($row[$key_column]) ?     $array[$row[$key_column]] = $row : $array[] = $row); 
   return $array; 
} 

利用:

$results = db_result_array(mysql_fetch_array($result),null)

或者,您可以遍历 mysql_fetch_array($result) 并将对象添加到数组中,这基本上就是上述函数的作用。

$stored = array();
while($row = mysql_fetch_array($result)) 
{
    array_push($stored,$row['direct_link']);
}

print_r($stored); //Now $stored is an array of your direct_link values.
于 2012-05-27T15:48:43.380 回答
1

我不确定是否能很好地理解你的问题,但这里有一些东西可以给你灵感:

$links = array();
while($row = mysql_fetch_array($result)) {
  $links[] = $row;
}

然后稍后您通过执行以下操作访问每个:

$links[1]['direct_link'];  // Or $links[2] ... 3 ... 4 depending on result count.

或者你可以这样做:

foreach ($links as $link) {
  echo '<a href="'.$link['direct_link'].'">Link</a>';
}

希望这有帮助。

于 2012-05-27T15:52:03.350 回答
1
while($row = mysql_fetch_array($result)) 
    {
        $dlink[] = $row['direct_link'];
    }

$count = $dlink;

echo $count;
echo $dlink[1]
echo $dlink[2]

and so on.
于 2012-05-27T15:45:47.113 回答
1
$dlink = array();
while($row = mysql_fetch_array($result)) 
    {
        $dlink[] = $row['direct_link'];
    }

展示它echo $dlink[0];

于 2012-05-27T15:46:00.780 回答
1
$dlink = array();

while ($row = mysql_fetch_assoc($result))
    $dlink[] = $row['direct_link'];
于 2012-05-27T15:46:05.403 回答
0

您可以使用数组 [] 将其添加到数组中。

$dlink = array();
while($row = mysql_fetch_array($result)) 
{
    $dlink[] = $row['direct_link'];
}

To print this

foreach($dlink as $arrays){
   echo $arrays; // This will print value on loop
}
于 2019-06-11T05:19:17.347 回答