选择所有表名并放在html下拉列表中

时间:2014-02-27 18:11:56

标签: php html sql

<!DOCTYPE html>
<html>
<body>

<div>
    <Select type="text"  style="width:220px; height: 30px;">
       <?php
       $con = new mysqli('sample', 'sample', 'sample', 'intelecrm_02_24_14_copy');

            if($con->connect_errno) {
                // error reporting here
            }
               $db = mysql_select_db('intelecrm_02_24_14_copy');
               $sql = "SHOW TABLES";
               $result = mysql_query($sql);
               while($r = mysql_fetch_assoc($result)) 
                {
                   $tables = $r['intelecrm_02_24_14_copy'];
                   echo '<option>'.$tables.'</option>';
                 }

       ?>
    </select>
</div>
<div>
    <button style="height: 21px; width: 100px;margin-top: 4px;"> Some button</button>
</div>

</body>
</html>

这是我的代码.....我不知道这个问题出了什么问题。我想要的是从我的数据库中选择我命名为Juice的所有表名,并将其放在html下拉列表中(这是选择),但我不知道为什么它不起作用。

我现在更新了我的问题....这是我的最新代码,没有任何反应。下拉列表仍然是空的

4 个答案:

答案 0 :(得分:3)

你的帖子有一些问题。

  1. 你正在使用被解压缩的mysql驱动程序,而是使用mysqli。
  2. 您正在回复<option>之前的<select>列表。
  3. 您正在向查询添加函数的返回。
  4. 以下示例将起作用。

    <?php
    $con = new mysqli('host', 'username', 'password', 'database');
    
    if($con->connect_errno) {
        // error reporting here
    }
    
    $result = $con->query("SHOW TABLES");
    
    if($result->num_rows > 0) {
        echo '<select>';
        while($row = $result->fetch_array(MYSQLI_NUM)) {
            echo '<option>' . $row[0] . '</option>';
        }
        echo '</select>';
    }
    

    在这个例子中,我使用的是mysqli扩展,它不仅比标准的mysql扩展要好得多,而且现在也没有被弃用。我添加了一些错误检查,因为检查这些事情总是很重要。

    理论上,上述应该完全符合您的需要。如果您有任何问题,请告诉我。

答案 1 :(得分:0)

假设您的PHP有效,您希望将回显代码移动到html SELECT元素中。

    <Select type="text"  style="width:220px; height: 30px;">
<?php
   $db = mysql_select_db('Juice');
   $sql = "SHOW TABLES from $db";
   $result = mysql_query($sql);
   while($r = mysql_fetch_assoc($result)) 
    {
       $tables = $r['Juice'];
       echo '<option>'.$tables.'</option>';
     }
     ?>

    </select>

答案 2 :(得分:0)

首先,您要在HTML上方打印标签。尝试在select标签内移动PHP代码。接下来,您在查询中使用句柄$db。也许以下工作(假设您使用mysql_connect在某处连接到您的数据库)。我还怀疑字段名称是否实际为Juice(在$tables语句中);我填写了贝琳达的建议:

<!DOCTYPE html>
<html>
<body>

<div>
    <Select type="text"  style="width:220px; height: 30px;">
       <?php
       $db = 'Juice';
       $sql = "SHOW TABLES from $db";
       $result = mysql_query($sql);
       while($r = mysql_fetch_assoc($result)) 
       {
          $tables = $r['Tables_in_Juice'];
          echo '<option>'.$tables.'</option>';
       }
       ?>
    </select>
</div>
<div>
    <button style="height: 21px; width: 100px;margin-top: 4px;"> Filter Database</button>
</div>

</body>
</html>

答案 3 :(得分:-1)

来自$ db的show tables或show tables的字段名称是

Tables_in_$db

尝试$r['Tables_in_Juice']