很抱歉,如果有人问过这个问题并回答过这个问题,但我已经看过了,但在任何地方都看不到它。是的,我是个菜鸟。
我有一个数据库,里面有 3 张 table :面粉、填料和其他。
我想做的是有一个下拉列表。因此,如果用户从下拉框中选择面粉,它将显示面粉表。如果用户选择填充符,则显示填充符表。
希望这是清楚的。我希望你能帮忙。提前致谢。
<Form id="form1" name="form1" method="get" >
Supplies of
<select name=filler action="flour.php">
<option value="1" selected>flour</option>
<option value="2">filler</option>
<option value="3">others</option>
</select>
<input type="submit" value="Submit" />
</form>
<?php
header("Content-Type: text/html; charset=windows-1251");
@mysql_connect('localhost','root','');
@mysql_select_db('krendel');
@mysql_query('SET NAMES cp1251');
$res = mysql_query("SELECT * FROM `flour` ") or die(mysql_error());
$res2 = mysql_query("SELECT * FROM `filler` ") or die(mysql_error());
$res3 = mysql_query("SELECT * FROM `addit` ") or die(mysql_error());
最佳答案
将操作添加到表单,而不是选择元素。所以你会有
<form method="get" action="flour.php">
和
在您的表单处理脚本(flour.php)中,您可以这样做:
switch($_GET['filler'])
{
case '1':
$table = 'flour';
break;
case '2':
$table = 'filler';
break;
case '3':
default:
$table = 'addit';
}
$res = mysql_query("SELECT * FROM {$table}");
如果所有表都具有相同的结构,请考虑合并这些表,并添加一个类型列(为简单起见,varchar 包含面粉、填料或添加物)。 然后您可以像这样编写查询(仍然使用 $table 变量名称来处理上面的代码。
$res = mysql_query("SELECT * FROM table WHERE type='{$table}'");
现在使用 mysql_query 并将变量连接到 SQL 中并不是一个好习惯 - 了解更多信息后,请查看 PDO 和参数化查询。
一些快速而肮脏的显示代码:
<?php
$results = array();
while($row = mysql_fetch_array($res, MYSQL_ASSOC)) { ?>
$results[] = $row;
}
?>
<table>
<?php foreach($results as $result) { ?>
<td><?php echo $result['column_name'] ?></td>
<?php } ?>
</table>
这应该可以帮助您入门 - 正如我上面所说,它既快速又肮脏。当您获得更多知识时,您将能够对此进行改进(例如,正确地将 HTML 与 PHP 分开 - 阅读 MVC 以及其他模式确实值得)。 只是不要在生产系统上使用此代码!
希望这有帮助。
关于PHP。根据下拉框中选择的选项显示 SQL 表的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305184/