首页 > 解决方案 > 如何使用下拉列表选择数据库上的表?

问题描述

假设我的数据库中有两个表(table1 和 table2,它们都具有相同的结构。

  Column   |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description
-----------+---------+-----------+----------+---------+----------+--------------+-------------
 name      | text    |           |          |         | extended |              |
 days_week | text    |           |          |         | extended |              |
 datetime  | tsrange |           |          |         | extended |              |
 room      | text    |           |          |         | extended |              |
 semester  |text     |           |          |         |extended. |              |

Indexes:
“table1_name_days_week_datetime_excel” EXCLUDE USING gist (name with=, days_week with=, date time with &&)
"table1_room_days_week_datetime_excel” EXCLUDE USING gist (room with=, days_week with=, datetime with &&)

我的目标是在我将在下拉列表中删除的表中插入数据。

示例如果我在下拉列表中选择 1° 学期,所有数据都将添加到表 1 中。

如果我在下拉列表中选择 2° 学期,所有数据都将添加到表 2 中。

这是我到目前为止所拥有的

<form name="testform" method='POST' action="add.php">
<label>Semester</label>
<select type="text" name=semester>
<option value=1ºsemester>1º semester</option>
<option value=2ºsemester>2º semester</option>
</select>
<input type=submit value=Registrar>
</form>

<?php

$semester=$_POST['semester'];

$con = @pg_connect ("port=5432 host=localhost dbname=postgres user=postgres password=a");

if($con == NULL) {
echo "Cannot Connect to database.";
exit (0);
}

$sql = "insert into ? (name, days_week, datetime, room, semester) values ('$name', '$days_week', '$datetime', '$room', '$semester');";
$res = @pg_query ($con, $sql);
if ($res == NULL){
echo "Error";

exit (0);
} 
?>

提前感谢您的帮助

标签: phppostgresql

解决方案


只需在执行查询之前添加一个检查。

$semester=$_POST['semester'];
if($semester == '1ºsemester'){
  $table = "table_1";
}else{
  $table = "table_2";
}

$q = "insert into $table ........";
//Rest of your code 

推荐阅读