良好的编码实践

时间:2011-03-21 07:46:53

标签: php mysql html coding-style

我今年六月毕业,所以在此之前我想为自己在这个行业工作做好准备:)

My Question:

例如,我想使用列表框列出表格中的所有歌曲,这就是我实现它的方式:

playlist.php

<tr id='' >
<td  width="" class="">&nbsp;&nbsp;<font color=#00000 />Select Songs</td>
<td width="" colspan="">
<select size='25'multiple='multiple' id="select_songs" name="playlist_songs[]">
<?php
display_songs_list();
?>
</select></td>
</tr>

我有一个单独的php_functions.php文件,我已经实现了所有的php函数

function display_songs_list(){
    $query = "select * from songs order by ID asc";

    $result = mysql_query($query);
    if(!$result)
    echo "<script language = 'javascript'>alert('$result Sorry couldn't connect to the database...');</script>";
    else{
        $num_rows = mysql_num_rows($result);
        if($num_rows > 0){
            while($row = mysql_fetch_array($result)){
                $ID = $row['ID'];
                $title = $row['title'];
                $value = $ID.'_'.$title;
                echo "<option id=\"$ID\" value=\"$value\">$ID : $title</option>";
            }
        }
    }
}

是否推荐这种实施方式。我还能做些什么来增加scalability/maintainability/re-usability。请指导我这个。是否建议遵循任何行业编码标准,如果是这样,您所遵循的是什么。谢谢。

3 个答案:

答案 0 :(得分:6)

  • 不推荐使用内联样式属性(color=#00000)并杀死小猫。了解CSS。
  • 除了表格数据(想想电子表格)之外,不建议使用表格,而是使用CSS代替布局。
  • 如果不添加任何含义,则不希望使用&nbsp;硬编码空白,学习使用CSS添加间距。
  • echo来自同一个函数的HTML Javascript是不好的。 Javascript警报将在您调用函数时导致无效的HTML语法。
  • 如此紧密地混合数据库调用和HTML并不好。研究MVC分离。
  • 在半完成页面中间向用户输出随机的,无意义的Javascript警报是不好的。您应该显示专用的错误页面。参见MVC,它可以帮助您实现这一目标。
  • 为属性混合单引号和双引号是不一致的,这使得代码更难以阅读。坚持使用一种类型的报价。
  • 您的标记中没有表单提交所选的选择选项

答案 1 :(得分:2)

请耐心等待我的建议,但首先,您应该将与数据库对话的代码与给定用户错误的代码分开,它们是两个不同的东西。因此,如何在php中实现该功能的想法可能是一个查询数据库并返回一个关联数组的函数,该关联数组包含另一个函数随后打印的所有结果。此外,您应该拥有一个更通用的数据库类,您的所有查询都可以通过。这是首选的原因是您可以在稍后的时间点轻松切换数据库,只需对代码进行最少的更改,但如果在每个函数中调用mysql_query(),它可能会变得更复杂。

答案 2 :(得分:2)

这是一个相当不错的方法来接受php。

我通常将我的代码拆分为模型/视图/控制器类型模型。

“控制器”是URL到达服务器时运行的程序。它: -

  • 从屏幕上抓取并检查任何获取/发布的变量。
  • 解决任何请求的操作,例如数据库更新。
  • 使用一些“模型”函数来获取下一个屏幕的数据。
  • 使用“查看”功能或功能格式化下一个屏幕。

注意控制器本身不会发出任何html。

“模型”函数执行数据库访问并应用“业务”规则。

“view”函数会发出html标签等。

除了一般的整洁之外,这方面的一大优点是您处理序列与字段在屏幕上显示的顺序无关。所以它确实使程序更易于维护。