使用aFetch($ sql)问题从php获取mysql db中的所有行

时间:2011-05-17 13:04:45

标签: php mysql

我从some-one继承了这个代码,这只返回它找到的第一行:

function getMessages($userID, $from, $limit)
{
  $id = $_SESSION['user_id'];
  $sql = "SELECT * FROM rc_message_box_table WHERE profile_id_to = {$userID} AND rc_message_box_table.profile_id_from NOT IN (SELECT profile_id_block FROM rc_blocklist_table WHERE profile_id = {$id}) LIMIT {$from}, {$limit}";
  $row = $this->aFetch($sql);
  return $row;
}

function aFetch($sSql)
{   
//print_r($sSql);
$aResults = array();
if(is_string($sSql))
{
      $fnSql = $this->query($sSql);
    }

   while($row = mysql_fetch_assoc($fnSql))
   {
  $aResults[] = $row;
   }
   return  $aResults;       
}

我怎么能用这段代码返回profile_id_to = {$ userID}的所有行? 感谢

3 个答案:

答案 0 :(得分:1)

function aFetch($result = false) {
        if($result)
            return mysql_fetch_assoc($result);
        else
            return mysql_fetch_assoc($this->result);
    }

你可以使用这个功能。

答案 1 :(得分:0)

您的结果可能受$from$limit参数的限制。

查看调用getMessages的代码,并分析它传递的值。

答案 2 :(得分:0)

尝试删除LIMIT子句:

SELECT *
FROM rc_message_box_table
WHERE profile_id_to = {$userID}
AND rc_message_box_table.profile_id_from NOT IN
(
    SELECT profile_id_block
    FROM rc_blocklist_table
    WHERE profile_id = {$id}
)