我正在尝试使用用户表单输入的列创建一个表。 文本框创建数据库,另一个文本框创建表并使用javascript创建更多文本框,这将创建更多表。 现在我在“表格”文本框旁边有一个文本框,可以接受以下条目:“id item quote price” 例如,未知的输入总数可能是4到6,但我尝试根据这些值在表中创建列。 在数据库中只创建了一列,这是最后一个值,例如price,但我试图将所有值都放入正确的表中。
$getMessage = $_POST["dbMessages"];
$questions = $_POST["dbMessagesName"];
$answers = $_POST["dbMessages"];
$combined = array_combine($questions, $answers);
$dbConnectionT = mysqli_connect($host, $user, $password, $dbName);
// create loop to assign input boxes together
foreach($combined as $question => $answer)
{
$answerSplit = explode(" ", implode($getMessage));
foreach ($answerSplit as $split)
{
// create the tables and columns from the message text box
$sqlCreateTable = "CREATE TABLE " . $question . "(
" . $split . " VARCHAR(6)
)" ;
echo $split;
echo "</br>";
}
// if the connection and sql query is true echo for debugging
if ($dbConnectionT->query($sqlCreateTable) == TRUE) {
print "{$question} = {$answer} ";
//echo "made it here";
echo "</br>";
}
}
所以我试图使用explode拆分文本框并尝试使用相关的答案拆分更新问题表。 请注意,对于此示例,我理解我对数据库主键的违规,并且不担心数据库关键方面,对于此示例!!
提前致谢
答案 0 :(得分:0)
不是为每个拆分创建一个表(只会覆盖自己),而是应该将数据存储到JSON字符串中,并使用JSON中的数据创建一个表。
答案 1 :(得分:0)
工作解决方案
$getMessage = $_POST["dbMessages"];
$questions = $_POST["dbMessagesName"];
$answers = $_POST["dbMessages"];
$combined = array_combine($questions, $answers);
$dbConnectionT = mysqli_connect($host, $user, $password, $dbName);
// create loop to assign input boxes together
foreach($combined as $question => $answer)
{
$columns = "`".str_replace(" ", "` VARCHAR(60), `", $answer)."` VARCHAR(60)";
// create the tables and columns from the message text box
$sqlCreateTable = "CREATE TABLE " . $question . "(
" . $columns . "
)";
echo "</br>";
// if the connection and sql query is true echo for debugging
if ($dbConnectionT->query($sqlCreateTable) == TRUE) {
print "{$question} = {$answer} ";
echo "</br>";
echo "add messages ";
echo "</br>";
}
}