我有一个表tracker_item,看起来像这样
tracker_item
id heading trackerid
1 name 1
2 location 1
3 age 1
4 candidate 2
5 area 2
我希望使用跟踪标题下的参数根据trackerid创建不同的数据库表。 例如,根据上表tracker_item我希望创建2个表
table1
id name location age
table 2
id candidate area
我尝试的代码是
$sql="SELECT * FROM `tracker_item` where trackerid='".$trackerid."' ";
$result = mysqli_query($con, $sql);
if(mysqli_num_rows($result)>0)
{
while($row = mysqli_fetch_assoc($result))
{
echo $sql1 = "CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
".
$row['heading']
." VARCHAR(30) NOT NULL,
resume VARCHAR(50)
)";
}
if (mysqli_query($con, $sql1))
{
echo "Table created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
}
我得到的$ sql1的输出是
CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, resume VARCHAR(50) )
CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, location VARCHAR(30) NOT NULL, resume VARCHAR(50) )
CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, age VARCHAR(30) NOT NULL, resume VARCHAR(50) )
而不是多个表我想得到$ sql1的o / p看起来如下所示,以便可以在数据库中创建表
CREATE TABLE item ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, location VARCHAR(30) NOT NULL, age VARCHAR(50) )
任何人都可以告诉我们该怎么做
答案 0 :(得分:2)
您只需要修改while循环并在循环之前执行CREATE
。您只希望循环通过连接添加列:
if(mysqli_num_rows($result)>0)
{
$sql1 = "CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, ";
while($row = mysqli_fetch_assoc($result))
{
$sql1 .= $row['heading']." VARCHAR(30) NOT NULL, ";
}
$sql1 .= "resume VARCHAR(50)) ";
if (mysqli_query($con, $sql1))
{
echo "Table created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}
}
以这种方式连接整个查询,然后执行查询。
输出:
CREATE TABLE item (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL, location VARCHAR(30) NOT NULL, age VARCHAR(30) NOT NULL, candidate VARCHAR(30) NOT NULL, area VARCHAR(30) NOT NULL, resume VARCHAR(50))
我讨厌当人们说“我不是那么远......”或“这个网站不会公开......”或 “这只适用于学校,所以安全无关紧要......”。如果教师和教授从第一天开始就不谈安全问题,他们就错了。挑战他们。他们正在教授草率和危险的编码实践,学生们必须在以后忘记这些实践。当人们说,“我稍后会添加安全性......”或“安全性现在不重要......”或“我也讨厌它忽略安全风险......“。如果你第一次没有时间做正确的事,你什么时候才能找到时间来添加它?