你好我想在php中使用while循环来创建函数但是不能在这里写入是我的代码
function mail_detail($mail_detail){
$data= mysql_query("select * from messages where messages.to = '$mail_detail' and to_viewed = 0 ORDER BY messages.id DESC");
while ($result= mysql_fetch_array($data)){
return $result;
}
}
和out put是
$mail_detail= mail_detail($userid)
echo '<li class="read">
<a href="#">
<span class="message">'. $mail_detail['title'].'</span>
<span class="time">
January 21, 2012
</span>
</a>
</li>';
我没有得到所有价值只是得到一个值,请帮助 THX
答案 0 :(得分:9)
return
语句正在终止循环并退出函数。
要获取所有值,请将它们添加到循环中的数组中,然后返回该数组。像这样:
$results = array();
while ($result = mysql_fetch_array($data)) {
$results[] = $result;
}
return $results;
在接收阵列的一侧
$msgArray = mail_detail($mail_detail);
foreach($msgArray as $msg) {
//use $msg
}
要添加,函数只能返回一次(除了一些你不应该担心的特殊情况)。因此,当您的函数第一次遇到return语句时,它会返回值并退出。
return
的此功能通常可用于您的优势。例如:
function doSomething($code = NULL)
{
if ($code === NULL) {
return false;
}
//any code below this comment will only be reached if $code is not null
// if it is null, the above returns statement will prevent control from reaching
// this point
writeToDb($code);
}
答案 1 :(得分:0)
function mail_detail($mail_detail){
$returnArr = array();
$data= mysql_query("select * from messages where messages.to = '$mail_detail' and to_viewed = 0 ORDER BY messages.id DESC");
while ($result= mysql_fetch_array($data)){
$returnArr[] = $result;
}
return $returnArr;
}
这样你返回返回的所有东西,因为你把它推到一个数组中,当你的循环结束时,整个数组都会被返回。因为就像xbones所说的那样,回归会破坏你的循环!
答案 2 :(得分:0)
harinder,Function(mysql_fetch_array($data))
返回一个数组。这意味着您的$result
是一个数组,因此当您在视图页面上接收$result
时,您必须使用foreach
外观提取它
像这样:
foreach($result as $item)
{
echo $item->user(<-here you have to write the column name ,that you want to retrieve)
}
因此,您可以将所有结果都放在数组中。