从PHP数据库中填充下拉框数据

3

这是我的代码

    <select>
        <?php
        $query = "SELECT * FROM 'sections'";
        $result = mysql_query($query);  
            while($row=mysql_fetch_array($result)){                                                 
            echo "<option value='".$row[id]."'>".$row[sectionName]."</option>";
            }
        ?>          
    </select>

什么都没有发生,我不知道为什么这个页面可能出了一些问题。

<?php
    ob_start();
    session_start();
    include('../includes/connect.php');
    include('../includes/phpCodes.php');        

?>

<!DOCTYPE html>
<html>
    <head>
        <title>لوحة التحكم</title>
        <meta charset="utf-8">

        <link rel="stylesheet" type="text/css" href="../css/mainstyle.css">
        <link rel="stylesheet" type="text/css" href="css/controlstyle.css">
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                $('#tabs div').hide();
                $('#tabs div:first').show();
                $('#tabs ul li:first').addClass('active');
                $('#tabs ul li a').click(function(){ 
                    $('#tabs ul li').removeClass('active');
                    $(this).parent().addClass('active'); 
                    var currentTab = $(this).attr('href'); 
                    $('#tabs div').hide();
                    $(currentTab).show();
                    return false;
                });
            });
        </script>
    </head>
    <body>
    <div class="wrapper">
        <?php headerCode(); ?>
        <div class="content">
              <div id="tabs">
                <ul>
                    <li><a href="#add">اضافة موضوع</a></li>
                    <li><a href="#remove">حذف موضوع</a></li>
                    <li><a href="#edit">تعديل موضوع</a></li>
                    <li><a href="#edit">التحكم بالاقسام</a></li>
                </ul>
                <div id="add">
                    <form method="POST" action="includes/add.php" dir="rtl" enctype="multipart/from-data">
                        <br>
                        حدد القسم :
                        <select>

                                    <?php
                                    $query = "SELECT * FROM 'sectionsd'";
                                    $result = mysql_query($query);
                                    while($row=mysql_fetch_array($result)){
                                        echo "<option value='".$row[id]."'>".$row[sectionName]."</option>";
                                    }?>         
                        </select><br>
                        عنوان الموضوع :<input type="text" name="title" class="mem-information"/><br>
                        الموضوع : <br /><textarea name="subject" rows="10" cols="50" class="mem-information" style="width: 500px"></textarea><br /><br>
                        الصورة :<input type="file" name="image"><br>
                        <input type="submit" value="إرسال" name="send" class="log" style="color: black">
                    </form>
                </div>
                <div id="remove">
                    <form method="POST" action="includes/remove.php" dir="rtl"><br>
                    حدد القسم :
                    <select name ="sectionsName">
                    <option value="">dd</option>
                    </select>

                        <input type="submit" value="حذف" name="send" class="log" style="color: black">
                    </form>
                </div>
                <div id="edit">

                </div>
                <div id="addDep">

                </div>
            </div>
        </div>
    </div>
    </body>
</html>

非常抱歉我的英语不好。 我的表格 在此输入图片描述


1
这里多出来的 'd' 是打错了吗?$query = "SELECT * FROM 'sectionsd'"; - adpalumbo
在你的代码中,SELECT * FROM 'sectionsd' 是正确的吗? - SoWhat
1
你应该打开 display_errors 并查看你得到了什么错误。 - putvande
3个回答

7

我看到的问题是你在查询语句中使用了单引号来表示表名,你应该使用反引号或者不使用任何符号来表示表名。请尝试以下代码:

<?php
    $query = "SELECT * FROM `sections`";
    $result = mysql_query($query);
    while($row=mysql_fetch_array($result, MYSQL_ASSOC)){                                                 
       echo "<option value='".$row['id']."'>".$row['sectionName']."</option>";
    }
?>

同时开始研究使用 mysqli (http://php.net/manual/zh/book.mysqli.php) 或者 PDO (http://php.net/manual/zh/book.pdo.php),因为 mysql 已经弃用。


@BassamBadr,请查看我的更新答案。尝试使用发布的代码,应该可以工作。 - vee
不应该出现问题,即使它已经被弃用了,它仍然应该能够工作。请添加 or die(mysql_error()),例如 $result = mysql_query($query) or die(mysql_error()) 并报告错误。 - vee

1
尝试这样做...我们都假设列的名称是带有“d”的“sectionsd”。
  <?php
  $query = "SELECT * FROM 'sectionsd'";
  $result = mysql_query($query);
  while($row=mysql_fetch_assoc($result)){
     echo "<option value='".$row["id"]."'>".$row["sectionName"]."</option>";
   }?>         
 </select>

如果不起作用,可能是由于以下原因之一:
1)您正在使用mysql_函数,并且未将参数$link发送到函数中。例如:mysql_query($query, $connectionlink);
2)表名错误
3)您有一个错误:使用mysql_query()或die(mysql_error());查看发生了什么
4)在查询中不要使用单引号'来围绕表名

0
echo '
      <option value='.$row["id"].'>'.$row["sectionName"].'</option>
    ';

1
你能否给你的答案添加一些解释? - slfan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接