gsilva23 0 Posted April 16, 2019 Report Share Posted April 16, 2019 Ora bons dias, recentemente pedi ajuda ao meu prof de programação, onde nós em conjunto (mais ele do que eu) desenvolvemos uma query para inserção de dados de maneira em que o user escolha em que tabela inserir. Código(só o php) : <?php $self = $_SERVER['PHP_SELF']; $host_name = "127.0.0.1"; $database = "visteon"; // Change your database name $username = "root"; // Your database user id $password = ""; // Your password $Tabela =""; //////// Do not Edit below ///////// try { $dbo = new PDO('mysql:host='.$host_name.';dbname='.$database, $username, $password); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } // Selecicionar Tabela if(!isset($_POST['submeterTabela']) && !isset($_POST['submeterDados'])) { $form ="<form action=\"$self\" method=\"post\">"; $result = $dbo->query("SHOW TABLES"); $form.= "<select name='Tabela' class='select_box'>"; while ($row = $result->fetch(PDO::FETCH_NUM)) { $form.= "<option value='$row[0]'>$row[0]</option>"; } $form.= "</select>"; $form.="<br><input type=\"submit\" name=\"submeterTabela\" value=\"Submeter\"class='button'>"; echo($form); } // Preencher dados if(isset($_POST['submeterTabela']) && !isset($_POST['submeterDados'])) { $Tabela=$_POST['Tabela']; $form ="<form action=\"$self\" method=\"post\">"; $form.="<input type=\"hidden\" name=\"Tabela\"class='tabela1'value=\"$Tabela\"> <br>"; $form.="Introduz Dados<br>"; $sql ="SHOW columns from ".$Tabela; $result = $dbo->query($sql); while ($row = $result->fetch(PDO::FETCH_NUM)) { $sql1="select Campo from descritivoscampos where Tabela='".$Tabela."' and Campo='".$row[0]."';"; $Resultado = $dbo->query($sql1); $linha = $Resultado->fetch(PDO::FETCH_NUM); $form .= "$linha[0]"; $form.="<input type=\"text\" name=\"$row[0]\" size=\"5\"><br>"; } $form.=" <br><input type=\"submit\" name=\"submeterDados\"class='botao'value=\"Submeter\">"; echo($form); } if(isset($_POST['submeterDados'])) { $Tabela=$_POST['Tabela']; $sql ="SHOW columns from ".$Tabela; $result = $dbo->query($sql); $sql1 = "insert into $Tabela("; $aux=0; while ($row = $result->fetch(PDO::FETCH_NUM)) { if ($aux!=0) $sql1 .=", "; if ($row[0]!='id') { $sql1 .="$row[0]"; $aux=1; } } $sql1 .=") values ("; $result = $dbo->query($sql); $aux=0; while ($row = $result->fetch(PDO::FETCH_NUM)) { if ($aux!=0) $sql1 .= ", "; if ($row[0]!='id') { $aa=$_POST[$row[0]]; $sql1 .="'$aa'"; //$sql1 .="$row[0]"; $aux=1; } } $sql1 .=");"; $conn = mysqli_connect($host_name, $username, $password, $database) or die("Could not connect."); $result = mysqli_query($conn, $sql1) or die("Could not execute SQL query"); if ($result) { echo("Informação introduzida com Sucesso!!"); } } ?> Este programa vai buscar os fieldnames(para identificar a text box de inserção) a uma tabela auxiliar, pois também crio tabelas dinâmicamente. No fim da elaboração do mesmo, eu perguntei lhe se deste codigo eu conseguiria fazer o delete e o "read" ao qual ele me respondeu positivamente, passado uma semana ainda n consegui adapatar isto para as outras duas funções... Alguem pode me dar umas luzes?? Aguardo respostas, Gonçalo Silva Link to post Share on other sites
M6 149 Posted April 18, 2019 Report Share Posted April 18, 2019 Basta adaptares o comando de insert para o comando de delete e select tendo em conta a sintaxe de cada um. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
gsilva23 0 Posted April 22, 2019 Author Report Share Posted April 22, 2019 Em 18/04/2019 às 12:28, M6 disse: Basta adaptares o comando de insert para o comando de delete e select tendo em conta a sintaxe de cada um. if(isset($_POST['VerDados'])) { $Tabela=$_POST['Tabela']; $sql ="SHOW columns from ".$Tabela; $result = $dbo->query($sql); $sql1 = "DELETE FROM'".$Tabela."' WHERE id = $Id LIMIT 1"; SQL_Exec ($dbo, $sql1); } ?> Já tentei fazer assim, e não me aparece nada no compilador. Link to post Share on other sites
M6 149 Posted April 22, 2019 Report Share Posted April 22, 2019 O comando SQL que tens não faz nada para o teu comando delete. Se estás a usar a coluna Id não faz sentido obteres todas as colunas de uma tabela para, na verdade, nem sequer usares esse resultado. O teu comando tem o "LIMIT 1" a mais (devias ver o que os comandos fazem antes de os usares), fora isso o comando funciona perfeitamente, desde que o $id corresponda a uma linha na tabela onde estás a tentar eliminar registos. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now