Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数据库中创建可用表的下拉列表_Php_Mysql_Pdo - Fatal编程技术网

Php 在数据库中创建可用表的下拉列表

Php 在数据库中创建可用表的下拉列表,php,mysql,pdo,Php,Mysql,Pdo,这段代码使用连接到数据库,然后创建下面的下拉列表 include "config.php"; // Database connection using PDO //$sql="SELECT name,id FROM student"; $sql="SELECT name,id FROM student order by name"; /* You can add order by clause to the sql statement if the names are to be di

这段代码使用连接到数据库,然后创建下面的下拉列表

include "config.php"; // Database connection using PDO

//$sql="SELECT name,id FROM student"; 

$sql="SELECT name,id FROM student order by name"; 

/* You can add order by clause to the sql statement if the names are to be displayed in alphabetical order */

echo "<select name=student value=''>Student Name</option>"; // list box select command

foreach ($dbo->query($sql) as $row){//Array or records stored in $row

echo "<option value=$row[id]>$row[name]</option>"; 

/* Option values are added by looping through the array */ 

}

 echo "</select>";// Closing of list box
这是创建的下拉代码,您可以运行它来查看它的运行情况

列表框在这里 学名 约翰迪奥 最大破产 阿诺德 克里斯之星 约翰·迈克 亚历克斯·约翰 我的约翰·罗布 阿斯鲁伊德 Tes Qry 大约翰 罗纳德 雷基 Kty 大的 泰德街 金米 图们 霍尼 微小的 杰克 巴比约翰 雷吉德 希律王 整理一下 吉夫拖 克里亚 大鼻子 Rojj基地 苔丝演奏 红色 嫁给托伊 宾诺特 肯恩·雷恩 获得脚趾 横行
我测试了这个,它使用我的服务器工作。表_schema='yourDBname'是关键,因为否则您可以得到几十个随机表

select table_name from information_schema.tables where table_schema='yourDBname'

您应该能够用这个替换查询,并执行相同的下拉操作。出于安全原因,您确定要让人们知道您的表的名称吗?

我测试了这个,它使用我的服务器工作。表_schema='yourDBname'是关键,因为否则您可以得到几十个随机表

select table_name from information_schema.tables where table_schema='yourDBname'

您应该能够用这个替换查询,并执行相同的下拉操作。出于安全原因,确实想让人们知道表的名称吗?

您可以使用建议的“显示表”或“从”从特定架构中获取表名,并且可以使用任一方法按部分表名进行筛选

$stmt = $dbo->query("SHOW TABLES FROM your_schema LIKE 'Tab%'");

这两个选项中的任何一个都会给出相同的结果

$stmt将是PDOStatement对象。您可以使用它的方法将表名作为值的单个值获取。这样,如果您决定使用该查询,SHOW TABLES生成的奇数列名就不会产生问题

echo '<select name="tables">';
while ($table_name = $stmt->fetchColumn()) {
    echo "<option value=\"$table_name\">$table_name</option>";
}
echo '</select>';

您可以使用建议的ShowTables(显示表)或选择from(从)从特定模式中获取表名,并且可以使用任一方法按部分表名进行筛选

$stmt = $dbo->query("SHOW TABLES FROM your_schema LIKE 'Tab%'");

这两个选项中的任何一个都会给出相同的结果

$stmt将是PDOStatement对象。您可以使用它的方法将表名作为值的单个值获取。这样,如果您决定使用该查询,SHOW TABLES生成的奇数列名就不会产生问题

echo '<select name="tables">';
while ($table_name = $stmt->fetchColumn()) {
    echo "<option value=\"$table_name\">$table_name</option>";
}
echo '</select>';

你试过使用“show tables”吗?@KIKO软件我试过show tables,但我的prolem在php代码中,用于提取我想要的内容并将其放入html代码中。我应该在qestion中指定它。它的工作原理与您的代码完全相同。您将只获得表名。在foreach循环中,可以使用var_dump$row;,而不是下拉,以查看查询的结果是什么。这样你就可以找到行中的内容。你试过使用“show tables”吗?@KIKO软件我试过show tables,但我的prolem在php代码中,用于提取我想要的内容并将其放入html代码中。我应该在qestion中指定它。它的工作原理与您的代码完全相同。您将只获得表名。在foreach循环中,可以使用var_dump$row;,而不是下拉,以查看查询的结果是什么。这样你就可以知道那排是什么了。