2014-01-14 70 views
0

我需要一些帮助。 由于我构建的结构,我无法使用回声。我没有时间来解释为什么。但我的问题是,有没有办法返回多个数据?可以这么说,例如:如何返回多个值?

final public function getCamps() 
     { 
      $campaigns = mysql_query("SELECT * From cms_news WHERE campaign='1'"); 

      while($skriv = mysql_fetch_assoc($campaigns)) 
      { 
      return 
      ' 
      <hr/> 
      <div class="campaign_images"> 
      </div> 
      <div class="campaign_content"> 
      <b>'.$skriv['title'].'</b><br> 
      '.$skriv['shortstory'].' 
      </div> 
      <p class="gothere">Go there &raquo;</p> 
      <div style="clear:both;"></div> 
      <hr/> 

      '; 
      } 

     } 

但问题是返回将只给我1值,然后停止脚本。我该如何解决这个问题?我听说我应该返回一个数组或其他东西,但我该怎么做?谢谢。对不起,我的英语btw。

回答

0

就试试这个:

final public function getCamps() 
    { 
     $campaigns = mysql_query("SELECT * From cms_news WHERE campaign='1'"); 
     $data_return = ""; 
     while($skriv = mysql_fetch_assoc($campaigns)) 
     { 
     $data_return .= //this returns multiple values from your db 
     ' 
     <hr/> 
     <div class="campaign_images"> 
     </div> 
     <div class="campaign_content"> 
     <b>'.$skriv['title'].'</b><br> 
     '.$skriv['shortstory'].' 
     </div> 
     <p class="gothere">Go there &raquo;</p> 
     <div style="clear:both;"></div> 
     <hr/> 

     '; 
     } 
    return($data_return); 

    } 

希望这有助于。

+0

非常感谢!但是返回=“”;部分给了我一个错误。 – Eymen

+0

对不起,请参阅上面的更新代码:) – Aljie

1

将数据添加到数组并返回。

$data = array(); 

while($skriv = mysql_fetch_assoc($campaigns)) 
{ 
    $data[] = 
    ' 
    <hr/> 
    <div class="campaign_images"> 
    </div> 
    <div class="campaign_content"> 
    <b>'.$skriv['title'].'</b><br> 
    '.$skriv['shortstory'].' 
    </div> 
    <p class="gothere">Go there &raquo;</p> 
    <div style="clear:both;"></div> 
    <hr/> 

    '; 
} 

return $data; 

如果您只需要将输出内容则implodeecho

$data = $obj->getCamps(); 

echo implode($data); 

虽然我个人不会在环路中添加HTML。我只是行数据添加到阵列,并返回:

final public function getCamps() 
{ 

    $data = array(); 

    $campaigns = mysql_query("SELECT * From cms_news WHERE campaign='1'"); 

    while($skriv = mysql_fetch_assoc($campaigns)) 
    { 
    $data[] = $skriv; 
    } 

    return $data; 

} 

然后遍历返回数组过,并添加HTML

<?php foreach ($obj->getCamps() as $camp) { ?> 

    <hr> 

    <div class="campaign_images"></div> 

    <div class="campaign_content"> 

    <b><?php echo $camp['title']; ?></b> 

    <br> 

    <?php echo $camp['shortstory']; ?> 

    </div> 

    <p class="gothere">Go there &raquo;</p> 

    <div style="clear:both;"></div> 

    <hr> 

<?php } ?> 
+0

我不能使用回声。我想在不使用回显的情况下打印数据 – Eymen

+0

您必须使用echo(或“print”)输出数据。 – MichaelRushton

0

您可以轻松地与多个键返回数组/值对。你只需要知道如何在接收端使用它。

return [ 
    'html' => '<hr/><div class="campaing_images>....</div>', 
    'error' => false, 
] 

你也可以做一个正常的数组索引版本

return [ 
    '<hr/><div class="campaing_images>....</div>', 
    false 
] 
1

只要一个return语句执行,控制叶函数的范围。您只能使用return一次。它看起来像要做的是建立一个字符串并返回整个事情。因此,而不是这样的:

while(condition) { 
    return value; 
} 

这样做:

result = ''; 
while(condition) { 
    result .= value; 
} 
return result; 

这是一个函数内汇总结果的标准模式。