Cakephp查询仅显示数组的最后一个值

时间:2013-06-05 09:28:23

标签: php arrays

我确定我在这里做错了但我无法理解。我尝试了几种方法,但没有运气。

这是我的控制者:

$result = mysql_query("SELECT name FROM spa_packages") or die(mysql_error()); 
$names=array();
while ($row = mysql_fetch_row($result)) $names[]=$row[0]; 
mysql_free_result($result);
foreach ($names as $asd => $lol) {}
$this->set('anything', $lol);

这是我显示它的地方:

if(!empty($anything)) {
    echo " '<option value=" . $anything . '">' . $anything . '</option>';
}

2 个答案:

答案 0 :(得分:2)

继续我的评论和更多答案。你 做错了什么。完全没有理由使用mysql_函数(它们已被弃用),您不应该在像CakePHP这样的MVC框架中使用任何直接的数据库访问

您的代码应该更符合

在您的Controllers / SpaPackagesController.php索引操作中:

$spaPacakges = $this->SpaPackage->find('all');
$this->set('spaPackages', $spaPackages):

在您的Views / SpaPackages / index.ctp

<?php foreach ($spaPackages as $package): ?>
<!-- some html -->
<?php endforeach;?>

你真的需要运行一些CakePHP初学者教程,因为你的问题显示了对框架如何工作的一个很大的误解

答案 1 :(得分:1)

看起来你正试图这样做:

$result = mysql_query("SELECT name FROM spa_packages") or die(mysql_error()); 

$names = array();
while ($row = mysql_fetch_assoc($result)) {
    $names[] = $row["name"]
}
$this->set('anything', $names);

mysql_free_result($result);

if(!empty($anything)) {
    foreach($anything as $name){
        echo " '<option value=" . $name . '">' . $name . '</option>';
    }
}