需要有关如何将PHP代码从对象转换为程序的帮助?

时间:2009-10-26 13:25:41

标签: php mysql

我希望有人可以帮助我将这段代码从对象形式转换为程序形式。

因此,当我尝试转换此片段来自对象形式的较大代码片段时,我可以了解该怎么做。

我是一个全新的初学者。

$sql = "SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC";
$items = mysql_query($sql);
while ($obj = mysql_fetch_object($items)) {
    if ($obj->parent_id == 0) {
        $parent_menu[$obj->id]['label'] = $obj->label;
        $parent_menu[$obj->id]['link'] = $obj->link_url;
    } else {
        $sub_menu[$obj->id]['parent'] = $obj->parent_id;
        $sub_menu[$obj->id]['label'] = $obj->label;
        $sub_menu[$obj->id]['link'] = $obj->link_url;
        $parent_menu[$obj->parent_id]['count']++;
    }
}
mysql_free_result($items);

我知道这段代码有问题吗?

$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC");

if (!$dbc) {
    // There was an error...do something about it here...
    print mysqli_error();
}

while ($obj = mysql_fetch_assoc($dbc)) {
    if ($obj->parent_id == 0) {
        $parent_menu $obj['id']['label'] = $obj['label'];
        $parent_menu $obj['id']['link'] = $obj['link_url'];
    } else {
        $sub_menu $obj['id']['parent'] = $obj['parent_id'];
        $sub_menu $obj['id']['label'] = $obj['label'];
        $sub_menu $obj['id']['link'] = $obj['link_url'];
        $parent_menu $obj['parent_id']['count']++;
    }
}
mysql_free_result($dbc);

1 个答案:

答案 0 :(得分:3)

我完全不确定你要完成什么。而不是mysql_fetch_object,你想要使用其他东西吗? mysql_fetch_assocmysql_fetch_array大致相似。而不是$obj->id,而是写$obj['id']

至于使用mysql_result(按列号一次一列地获取数据),它应该慢得多。我无法想到使用它的充分理由。

<强>更新
你的第二个代码片段使用三种不同的方式来访问MySQL:mysqli对象样式,mysqli过程样式和'旧'mysql扩展(mysql_ *函数)。那是行不通的。

这个PHP Manual page有一些不错的例子。它们展示了面向对象和“程序化”的风格。