Php 将表列表显示为下拉框

Php 将表列表显示为下拉框,php,Php,我试图编写一个下拉框,显示数据库中的所有表名,但我似乎不明白为什么它不起作用。我得到了屏幕上的下拉框,但它似乎是空的,我的提交按钮也没有出现 我只是看不出哪里出了问题,以下是我所有的相关代码: index.php include_once 'db.php'; <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> <select name="Tables" id="ddTab

我试图编写一个下拉框,显示数据库中的所有表名,但我似乎不明白为什么它不起作用。我得到了屏幕上的下拉框,但它似乎是空的,我的提交按钮也没有出现

我只是看不出哪里出了问题,以下是我所有的相关代码:

index.php

include_once 'db.php';
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        <select name="Tables" id="ddTables">
            <?php
                $tableResults = getTableList();
                if($tableResults)
                {
                    if($tableResults->rowCount() > 0)
                    {
                        $tables = $tableResults->fetchAll(PDO::FETCH_NUM);
                        foreach($tables as $table)
                        {
                            $name = $table[0];
                            echo '<option value="'.$name.'">'.$name.'</option>';
                        }
                    }
                }
                else
                {
                    echo '<option value="0">No Data</option>';
                }
            ?>
        </select>
        <input type="submit" id="tableSubmit" value="Submit"/>
    </form>

任何帮助都将不胜感激

修复了我的错误,我的db.php文件中似乎在localhost之后有一个端口号。它应该是“localhost”而不是“localhost:8888”


由于端口号的原因,出现了3个小时的问题。哦,希望这对其他人有帮助

修复了我的错误,我的db.php文件中似乎在localhost之后有一个端口号。它应该是“localhost”而不是“localhost:8888”


由于端口号的原因,出现了3个小时的问题。哦,希望这对其他人有帮助

一个$tables的var_转储怎么样?另外,尝试将else块向上移动一级,以便在查询成功但返回0行时触发。@aviemet似乎没有执行任何操作,var_dump没有返回任何内容,my else代码也没有返回任何内容。我试着在代码周围放一些回音,看看会发生什么,但由于某种原因,我的代码中似乎什么也没有发生。我不知道这是否有帮助。你展示了源代码吗?输出可能不会显示在HTML中,因为它位于select标记内。@LorenzMeyer-附加了答案,似乎我在思考这个问题,无论如何,谢谢!一个$tables的var_转储怎么样?另外,尝试将else块向上移动一级,以便在查询成功但返回0行时触发。@aviemet似乎没有执行任何操作,var_dump没有返回任何内容,my else代码也没有返回任何内容。我试着在代码周围放一些回音,看看会发生什么,但由于某种原因,我的代码中似乎什么也没有发生。我不知道这是否有帮助。你展示了源代码吗?输出可能不会显示在HTML中,因为它位于select标记内。@LorenzMeyer-附加了答案,似乎我在思考这个问题,无论如何,谢谢!
//main database connection varaibles
$DCONFIG_server = "localhost:8888";
$DCONFIG_DBUser = "root";
$DCONFIG_DBPass = "password";
$DCONFIG_DBName = "ISAD235";

try
{
    $conn = new PDO("mysql:host=$DCONFIG_server;dbname=$DCONFIG_DBName",
            $DCONFIG_DBUser, $DCONFIG_DBPass);
}
catch (PDOException $ex)
{
    echo $ex->getMessage();
}

return $conn;

function getConnection()
{
    //main database connection varaibles
    $DCONFIG_server = "localhost:8888";
    $DCONFIG_DBUser = "root";
    $DCONFIG_DBPass = "password";
    $DCONFIG_DBName = "ISAD235";

    try
    {
        $conn = new PDO("mysql:host=$DCONFIG_server;dbname=$DCONFIG_DBName",
                $DCONFIG_DBUser, $DCONFIG_DBPass);
    }
    catch (PDOException $ex)
    {
        echo $ex->getMessage();
    }

    return $conn;
}

function runSQL($sql)
{
    $mysqlConnection = getConnection();
    $ResultSet = $mysqlConnection->query($sql);

    return $ResultSet;
}

function getTableList()
{
    $sql = "SHOW TABLES";
    $ResultSet = runSQL($sql);

    if(!$ResultSet)
    {
        echo "Table list not found";
    }

    return $ResultSet;
}