0

看下面的代码:

<?php

function getmangainfo($teamname)
{
    $rValue = "";
    $lValue = "";
    $query = ("SELECT pic, mn_title FROM table Where mn_team LIKE '%" . $teamname . "%' Limit 0,4 ");
    $row_data = mysql_query($query);
    while ($row_data = mysql_fetch_array($row_data)) {
        $rValue = $row['pic'];
        $lValue = $row['mn_title'];
        return "<a class='linksrepeated' href='" . $ABSPATH . "/" . $lValue . "/'> <img src='" . $rValue . "'/></a>";
    }
}

这个函数没有返回任何东西!我在想这是因为 return 语句在 while 循环内。我尝试了很多事情,希望它能返回 4 个结果,但什么也没发生。SQL 查询工作 100%。问题出在我的功能上。请让我知道出了什么问题以及如何解决。

4

3 回答 3

2

在您的声明中更改$row_data$rowwhile

while($row = mysql_fetch_array($row_data))

因为当我看到里面的代码while

$rValue = $row['pic'];
$lValue = $row['mn_title'];

你得到你的数据,$row但你的while声明是$row_data

问题不在while循环上,因为执行到达return语句,执行指针将退出函数(当然在while语句中)

但是对我来说,让你的代码更干净,因为我看到你期望只有一行作为回报,拉出return你的 while 语句

$rValue = "";
 $lValue = "";
 while ($row_data = mysql_fetch_array($row_data)) {
        $rValue = $row['pic'];
        $lValue = $row['mn_title'];
        break; //just to make sure for one row return
 }
 return "<a class='linksrepeated' href='" . $ABSPATH . "/" . $lValue . "/'> <img src='" . $rValue . "'/></a>";

但正如其他人所说,您期望 4 行返回,您可以创建一个变量,将所有返回存储在单个字符串中

   $rValue = "";
     $lValue = "";
     $links = "";
     while ($row_data = mysql_fetch_array($row_data)) {
            $rValue = $row['pic'];
            $lValue = $row['mn_title'];
            $links .="<a class='linksrepeated' href='" . $ABSPATH . "/" . $lValue . "/'> <img src='" . $rValue . "'/></a>";
     }
     return $links

参考: http: //php.net/manual/en/function.mysql-fetch-array.php

于 2013-01-04T04:26:02.823 回答
1
    function getmangainfo($teamname){
    $rValue = "";
    $lValue = "";
    $query = ("SELECT pic, mn_title FROM table Where mn_team LIKE '%".$teamname."%' Limit 0,4 ");
    $row_data = mysql_query($query);
    $output=array();
    while($row = mysql_fetch_array($row_data))
    {
    $rValue = $row['pic'];
    $lValue = $row['mn_title'];
    $output[]="<a class='linksrepeated' href='".$ABSPATH."/".$lValue."/'> <img src='".$rValue."'/></a>";
    }   
return $output;
}

编辑:更新的变量名

于 2013-01-04T04:25:39.590 回答
1

它没有给出完整的结果集,因为您正在从循环中“返回”。尝试以下应该会有所帮助。

function getmangainfo($teamname){
    $rValue = "";
    $lValue = "";
    $query = ("SELECT pic, mn_title FROM table Where mn_team LIKE '%".$teamname."%' Limit 0,4 ");
    $row_data = mysql_query($query);
    $return = '';
    while($row_data = mysql_fetch_array($row_data))
    {
        $rValue = $row['pic'];
        $lValue = $row['mn_title'];
        $return .= "<a class='linksrepeated' href='".$ABSPATH."/".$lValue."/'> <img src='".$rValue."'/></a>";
    }
    return $return;
}
于 2013-01-04T04:29:17.253 回答