php函数返回SQL结果

时间:2009-10-05 01:51:00

标签: php mysql

这就是我所拥有的

function GetEventsList(){
    $result = mysql_query("SELECT * FROM `events`") or trigger_error(mysql_error()); 
    while($row = mysql_fetch_array($result)){ 
    foreach($row AS $key => $value) { $row[$key] = stripslashes($value); } 
    $id = $row['id'];
    $en = $row['name'];
    $endt = $row['date'];
    $push = "<option value=$id>$en - $endt</option>";
    return $push;
    }
    }

当表中有3个

时,它只返回1个结果

3 个答案:

答案 0 :(得分:4)

那是因为你在第一次迭代结束时从函数返回。尝试:

function GetEventsList() {
  $result = mysql_query("SELECT * FROM `events`") or trigger_error(mysql_error()); 
  $push = '';
  while ($row = mysql_fetch_array($result)) {
    foreach($row AS $key => $value) {
      $row[$key] = stripslashes($value); 
    }
    $id = $row['id'];
    $en = $row['name'];
    $endt = $row['date'];
    $push .= "<option value=$id>$en - $endt</option>";
  }
  return $push;
}

旁注:如果您使用了良好的格式/缩进,那么您就更容易发现。

此外,您确定需要使用stripslashes()吗?

答案 1 :(得分:2)

如果我正确阅读代码,请返回$ push;过早退出while循环。您希望仅在收集所有结果并将其存储在某些内容后才返回。

答案 2 :(得分:0)

在foreach循环中使用echo $ push;或者将option元素的每次迭代放入一个数组中,然后根据需要插入数组。