php - 更高效的 MySQL/PHP 代码

标签 php mysql sql

我正在使用 PHP 和 MySQL DB (sugarcrm) 为 HTML 表单构建一个动态下拉框来填充所述框。

到目前为止,我已经对其中的很多内容进行了硬编码 - 但必须有更好的方法。

一定有比我正在做的更有效的方法来编写这段代码。欢迎任何输入:

function services(){

    mysql_connect('myhost', 'myname', 'mypass');
    mysql_select_db('spaladon_sugar');
    $sqlF = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'facial'";
    $resultF = mysql_query($sqlF);
    $sqlT = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'treatments'";
    $resultT = mysql_query($sqlT);
    $sqlS = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'salon'";
    $resultS = mysql_query($sqlS);
    $sqlWax = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'waxing'";
    $resultWax = mysql_query($sqlWax);
    $sqlWell = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'wellness'";
    $resultWell = mysql_query($sqlWell);
    $sqlH = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'haircutting'";
    $resultH = mysql_query($sqlH);
    $sqlM = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'makeup'";
    $resultM = mysql_query($sqlM);
    $sqlC = "SELECT id, type, name FROM serv1_services WHERE type LIKE 'color'";
    $resultC = mysql_query($sqlC);

    echo "<select name='services'>";
    echo "<option value=''> - Facials - </option>";
    while ($row = mysql_fetch_array($resultF)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "<br /><option value=''> - Medical Spa Treatments - </option>";
    while ($row = mysql_fetch_array($resultT)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "<option value=''> - Salon - </option>";
    while ($row = mysql_fetch_array($resultS)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "<option value=''> - Waxing - </option>";
    while ($row = mysql_fetch_array($resultWax)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "<option value=''> -  Wellness - </option>";
    while ($row = mysql_fetch_array($resultWell)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "<option value=''> - Haircutting - </option>";
    while ($row = mysql_fetch_array($resultH)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "<option value=''> - Makeup - </option>";
    while ($row = mysql_fetch_array($resultM)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "<option value=''> - Color and Highlight - </option>";
    while ($row = mysql_fetch_array($resultC)) {
        echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
    }
    echo "</select>";
}

最佳答案

粗略的改进:

function services(){

    mysql_connect('myhost', 'myname', 'mypass');
    mysql_select_db('spaladon_sugar');
    $types = array(
        'facial' => 'Facials',
        'treatments' => 'Treatments',
        // and more typename => Type Label
    );

    echo "<select name='services'>";
    foreach($types as $name => $label){
        $sql = sprintf('SELECT id, type, name FROM serv1_services WHERE type LIKE \'%s\'', $name);
        $result = mysql_query($sq;);
        echo '<option value=""> - ' . $label . ' - </option>';
        while ($row = mysql_fetch_array($result)) {
            echo "<option value='" . $row['name'] . "'>". $row['name'] . "</option>";
        }
    }
    echo "</select>";
}

关于php - 更高效的 MySQL/PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593383/

相关文章:

PHP PDO 相关 : Update SQL statement not updating the content of the database

mysql - SQL从字典中的键获取值

sql - 具有多行和单行的文本文件中的行数

asp.net - 将 Dropdownlist 与来自 sql 数据源的 optGroup 绑定(bind)

c# - 将参数添加到 DbCommand 时出现异常

php - 如何在库 codeigniter 上调用私有(private)方法

javascript - 没有 Node.js 的实时 HTML5 Web 应用程序

php - Laravel 数据库限制

mysql - 按查询优化组

php - 时间日志监控系统 PHP/MySQL