2009-10-26 88 views
0

我希望有人可以帮助我将这段代码从对象形式转换为过程形式。如何将PHP代码从对象转换为过程需要帮助?

因此,当我尝试转换代码片段的所有对象形式的代码片段时,我可以对此做些什么。

我是一个全新的初学者。

$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

不要只是为了这样做。 – ceejayoz 2009-10-26 13:29:50

+1

你有什么是一个干净的方法,为什么改变它? – 2009-10-26 13:31:14

+0

为什么不会很有帮助。 – stack 2009-10-26 13:31:38

回答

3

我完全不知道你在做什么。而不是mysql_fetch_object,你想使用别的东西? mysql_fetch_assocmysql_fetch_array在很大程度上是相似的。而不是$obj->id,你会写$obj['id']

至于使用mysql_result(一次取一列数据,按列号),据说慢得多。我无法真正想到使用它的好理由。

更新
你的第二个代码段使用的三种不同的方式访问MySQL的混合:mysqli的对象样式,mysqli的程序性风格,与“旧” mysql扩展(mysql_ *函数)。这是行不通的。

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