Member 14197794 Ответов: 1

Как я могу вставить данные в таблицу, созданную в режиме реального времени


Эй, у меня есть сомнения по поводу вставки, я создал способ построения динамических таблиц, но если таблица создается в реальном времени, я не могу вставлять строки без перехода к источнику и использования "Insert into 'real_time_table'".
Существует ли какой-либо способ вставки данных без указания таблицы и имен полей, куда их вставлять? (потому что это таблица реального времени).

Что я уже пробовал:

Код для создания таблицы реального времени (рабочая):

<html><head><title>Inserir novas tabelas dinamicamente</title></head>
<body>
<html>
<head>
<style>

</style>
</head>
<body>

<ul>
  <li><a href="welcome.php">Home</a></li>
  <li><a href="">Info</a></li>
  <li><a href="">Info</a></li>
  <li><a href="welcome.php">Voltar</a></li>

</ul>
</body>
</html>
<br>
<br>
<?php	
$self = $_SERVER['PHP_SELF'];
$fields = null;
$db = null;

if(isset($_POST['field_submit'])) {
  $fields = $_POST['fields'];
}
else if(isset($_POST['db_submit'])) {
  $db =     $_POST['db'];
  $name =   $_POST['name'];
  $table =  $_POST['table'];
  $type =   $_POST['type'];
  $size =   $_POST['size'];
}

if( !$fields and !$db )
{
  $form ="<form action=\"$self\" method=\"post\">";
  $form.="Quantos fields deseja na sua nova tabela?<br>";
  $form.="<input type=\"text\" name=\"fields\" size=\"5\">";
  $form.="<input type=\"submit\" name=\"field_submit\" value=\"Submeter\">";
  echo($form);
}
else if( !$db )
{ 
  $form ="<form action=\"$self\" method=\"post\">";
  $form.="Escreve a Base de dados onde deseja criar:     <input type=\"text\" name=\"db\"><br>";
  $form.="Nome tbl:  <input type=\"text\" name=\"table\" size=\"\"><br> ";
  for ($i = 0 ; $i <$fields; $i++) 
  {
	  
    $form.="<br>Nome de Coluna:<input type=\"text\" name=\"name[$i]\" size=\"50\"><br>";
    $form.="<br>Tipo de dados: <select name=\"type[$i]\">";
    $form.="<option value=\"char\">Letras</option>";	
    $form.="<option value=\"varchar\">Letras e simbolos</option>";
    $form.="<option value=\"int\">Numero sem Virgula</option>";
    $form.="<option value=\"float\">Numeros com casa decimais</option>";
    $form.="</select> ";
    $form.="Size:<input type=\"text\" name=\"size[$i]\" size=\"5\"><br>";
  }
  $form.=" <br><input type=\"submit\" name=\"db_submit\" value=\"Submit\"></form>";
  echo($form);
}
else
{
  $conn = mysqli_connect("127.0.0.1", "root", "", "")
	or die("Could not connect.");

  $rs = mysqli_select_db($conn, $db)
	or die("Could not select database.");
	
  $num_columns = count($name);

  $sql = "create table $table (";
  for ($i = 0; $i < $num_columns; $i++) 
  {
    $sql .= "$name[$i] $type[$i]";
    if(($type[$i] =="char") or ($type[$i] =="varchar"))
    {
      if($size[$i] !="" ){ $sql.= "($size[$i])"; }
    }
    if(($i+1) != $num_columns){ $sql.=","; }
  }
  $sql .= ")";

 

  $result = mysqli_query($conn, $sql)
	or die("Could not execute SQL query");

  if ($result) {     
	echo("RESULT: table \"$table\" has been created");
  }
}
?>
<?php
// Inicia a sessao
session_start();
 
//vê se o user está on senão redireciona para a página de login
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
}
?>
</body></html>

1 Ответов

Рейтинг:
6

RickZeeland

Должна быть возможность запрашивать информацию о таблицах следующим образом:

select table_schema, table_name from information_schema.tables;
Также видеть: https://www.quora.com/How-can-I-see-the-tables-in-MySQL-database[^]