2011-03-22 52 views
1

请帮我关于这个功能。我想从数据库中获取数据,如果有结果,我想返回一个消息和数据数组。返回数组和消息功能

$this->query=("select * from user where pno='".$search."'"); 
    $rd = $this->executeQuery(); 
    $data = $rd->fetch_assoc(); 


    if ($data) { 
     $message = "Record found."; 
    } else { 
     $message = "Record not found."; 
    } 
return array($data, $message); 

我打电话这样说:

list($data, $message)=$user->search($result); 

echo $message 
echo $data['name']; 

我收到消息,但我无法获取阵列。 如果功能有问题,或者我能改善它,请帮助我。

回答

0

您的代码示例中的echo $message之后缺少分号。

尝试附加给你的代码,并告诉我们它返回:

var_dump($data); 
+0

在函数中其显示记录数组,而从调用点它的空 – user667340 2011-03-22 13:43:56

2

决不做这种方式
你应该把你的邮件设置代码外设功能的

function getData(){ 
    $this->query=("select * from user where pno='".$search."'"); 
    $rd = $this->executeQuery(); 
    return $rd->fetch_assoc(); 
} 
if ($data = getData()){ 
    $message = "Record found."; 
    echo $message; 
    echo $data['name']; 
} else { 
    $message = "Record not found."; 
    echo $message; 
} 
1

我不确定你在用什么,但很可能你会在$ data中有一行数组,即使只有一行。尝试$data[0]['name']。此外,我建议你将这个消息从你的函数移动到它被调用的地方,并且如果没有找到,使函数返回NULL或FALSE。

$this->query=("select * from user where pno='".$search."'"); 
$rd = $this->executeQuery(); 
$data = $rd->fetch_assoc(); 

return empty($data)?FALSE:$data;