Php HTML提供空选项值

Php HTML提供空选项值,php,html,mysql,Php,Html,Mysql,您正在php中放置php标记 echo '<option value="<?php echo $date ?>"><?php echo $date ?></option>'; 应该是 echo '<option value="'.$date.'">'.$date.'</option>'; mysql也被删去,考虑更新你在PHP 中放置PHP标签 echo '<option value="<?php echo


您正在php中放置php标记

echo '<option value="<?php echo $date ?>"><?php echo $date ?></option>';
应该是

echo '<option value="'.$date.'">'.$date.'</option>';

mysql也被删去,考虑更新

你在PHP

中放置PHP标签
echo '<option value="<?php echo $date ?>"><?php echo $date ?></option>';
应该是

echo '<option value="'.$date.'">'.$date.'</option>';

mysql也被删除,考虑根据代码风格偏好更新

,可以避免在双引号中使用回音字符串包装使用连接。这将允许您直接在字符串中放置变量。性能优势非常微小,但您可能会发现阅读和调试工作更容易。我发现,如果只是为了回显变量而有一堆串联,那么很容易有一个额外的或缺少的单引号,并忽略它——因此通常尝试避免它,除非编写内联条件语句或函数

您也不需要声明新变量来存储$date=$row['date'];,像这样回显数组元素是完全有效的:$row['date']

在回音数组元素周围使用花括号。记事本++或任何您正在编码的东西应该或者可能会很好地为脚本着色,以帮助您识别字符串中的变量

我会将您的mysql_uu函数更新为mysqli,并按以下方式编写代码:

if(!$db=new mysqli("localhost","root","","employees")){
    echo "Connection Error: ",$db->connect_error;  // do not echo when live
}elseif(!$result=$db->query("SELECT DISTINCT LEFT(from_date,4) AS date FROM salaries")){
    echo "Query Syntax Error: ",$db->error;  // do not echo when live
}elseif(!$result->num_rows){
    echo "Query Logic Error: No dates found in salaries table";  // write your preferred message
}else{
    echo "<select>";
        while($row=$result->fetch_assoc()){
            echo "<option value=\"{$row['date']}\">{$row['date']}</option>";
        }
    echo "</select>";
}
*请注意,在双引号回显行中使用的任何双引号都必须用\转义/前缀


在PHP manual specs@下的评论中,有一些关于字符串连接、花括号和性能速度的讨论点。

根据您的编码风格偏好,您可以通过将回音字符串用双引号括起来来避免使用连接。这将允许您直接在字符串中放置变量。性能优势非常微小,但您可能会发现阅读和调试工作更容易。我发现,如果只是为了回显变量而有一堆串联,那么很容易有一个额外的或缺少的单引号,并忽略它——因此通常尝试避免它,除非编写内联条件语句或函数

您也不需要声明新变量来存储$date=$row['date'];,像这样回显数组元素是完全有效的:$row['date']

在回音数组元素周围使用花括号。记事本++或任何您正在编码的东西应该或者可能会很好地为脚本着色,以帮助您识别字符串中的变量

我会将您的mysql_uu函数更新为mysqli,并按以下方式编写代码:

if(!$db=new mysqli("localhost","root","","employees")){
    echo "Connection Error: ",$db->connect_error;  // do not echo when live
}elseif(!$result=$db->query("SELECT DISTINCT LEFT(from_date,4) AS date FROM salaries")){
    echo "Query Syntax Error: ",$db->error;  // do not echo when live
}elseif(!$result->num_rows){
    echo "Query Logic Error: No dates found in salaries table";  // write your preferred message
}else{
    echo "<select>";
        while($row=$result->fetch_assoc()){
            echo "<option value=\"{$row['date']}\">{$row['date']}</option>";
        }
    echo "</select>";
}
*请注意,在双引号回显行中使用的任何双引号都必须用\转义/前缀


在PHP手册specs@下的评论中,有一些关于字符串连接、花括号和性能速度的讨论点。

FYI。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个最适合您。您不知道哪里出了问题,因为您没有检查代码中的错误。永远不要假设代码总是能够完美地工作。用于从数据库获取详细的错误消息。仅供参考。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个最适合您。您不知道哪里出了问题,因为您没有检查代码中的错误。永远不要假设代码总是能够完美地工作。用于从数据库获取详细的错误消息。