Jump to content
inhokinformatica

Executar arquivo sql no php

Recommended Posts

Bom dia.

 

Atualmente estou com dificuldades para executar um arquivo com instruções SQL diretamente no php. Tenho um planilha VBA que exporta as intruções e salva em um arquivo "xxxx.sql". São várias linhas, um exemplo a baixo.

INSERT INTO `fl_mes_05`(`id`, `matricula`, `dia`, `entrada_normal`, `saida_lanche`, `entrada_lanche`, `saida_normal`) VALUES ('1','913154','01/05/2019','00:00','00:00','00:00','00:00');
INSERT INTO `fl_mes_05`(`id`, `matricula`, `dia`, `entrada_normal`, `saida_lanche`, `entrada_lanche`, `saida_normal`) VALUES ('2','913154','02/05/2019','06:56','00:00','00:00','13:14');
INSERT INTO `fl_mes_05`(`id`, `matricula`, `dia`, `entrada_normal`, `saida_lanche`, `entrada_lanche`, `saida_normal`) VALUES ('3','913154','03/05/2019','07:12','11:15','11:35','13:11');

Bem...

 

Fiz o sistema para upload de arquivo

 

formulario.php

<form action="atualizar_frequencia.php" method="post" enctype="multipart/form-data">
					<input type="file" name="arquivo" />
					<input type="submit" value="Enviar"/>
				</form>

upload_sql.php

<?php 
error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);

session_start(); // inicia sessão
include "../db.php"; // conecta no banco de dados **** PDO

$file = $_FILES["arquivo"]; // Arquivo recebido

$dir = "_frequencias/"; // Pasta para upload

// Movendo o arquivo da pasta temporaria para pasta de destino 
if (move_uploaded_file($file["tmp_name"], "$dir/".$file["name"])) { 
    echo "Upload Completo!<br>"; 
} 
else { 
    echo "Erro. Upload não realizado.";
  	exit;
}  

// Abre o Arquvio no Modo r (para leitura)
$arquivo = fopen ($dir."/".$file["name"], 'r');
	
// Lê o conteúdo do arquivo 
while(!feof($arquivo))
{
//Mostra uma linha do arquivo
$linha = trim(fgets($arquivo, 1024));

if($linha!=NULL){

				echo $linha.'<br />';

}}
echo "<br><br>".$dir.$file["name"]."<br><br>"; //mostras as linhas do arquivo sql

$sql = file_get_contents($dir.$file["name"]);
$qr = $PDO->exec($sql);

if($qr){
	echo "Sucesso! Dados salvos no BD";
  exit;
}else{
	echo "ERRO...";
  exit;
}
// Fecha arquivo aberto
fclose($arquivo);

?>

Até aí, tudo funcionou, consigo fazer o upload e ler o arquivo normalmente. Recentemente, consegui executar esse SQL no php para salvar os dados no banco mysql.

 

O que preciso agora é atualizar os dados no banco de dados. O sistema apresenta erro ao enviar o arquivo novamente

 

Share this post


Link to post
Share on other sites

Poderia fornecer mais informações?
 

Você diz que precisa atualizar os dados, mas você está fazendo upload de um arquivo com UPDATES ou INSERTS como esse que mostrou?


Se você estiver fazendo upload de arquivos somente com INSERTS para atualizar, vai dar erro por conta da coluna ID que provavelmente é primarykey e não pode repetir.


Se o arquivo for de UPDATES ou a coluna ID não for uma primarykey ou unique, informe qual erro que esta te retornando.

Share this post


Link to post
Share on other sites

Muito obrigado!

 

Já consegui resolver aqui. Precisei dormir para achar a solução kkkk

 

Vou deixar o código aqui. Vai que alguém precise usar algum dia.

 

formulario.php

<table border="1" width="30%" height="Auto" align="left">
		<form action="atualizar_frequencia.php" method="post" enctype="multipart/form-data">
		<tr>
			<td colspan="2" align="center">Selecione o Mês para atualização</td>
		</tr>
  
		<tr>
			<td align="center" bgcolor="#000000" width="20%"></td>
			<td align="center" bgcolor="#4682B4" width="80%">
					<select name="mes_escolhido">
						<option value="fl_mes_01">Janeiro 2019</option>
						<option value="fl_mes_02">Fevereiro 2019</option>
						<option value="fl_mes_03">Março 2019</option>
						<option value="fl_mes_04">Abril 2019</option>
						<option value="fl_mes_05">Maio 2019</option>
						<option value="fl_mes_06">Junho 2019</option>
						<option value="fl_mes_07">Julho 2019</option>
						<option value="fl_mes_08">Agosto 2019</option>
						<option value="fl_mes_09">Setembro 2019</option>
						<option value="fl_mes_10">Outubro 2019</option>
						<option value="fl_mes_11">Novembro 2019</option>
						<option value="fl_mes_12">Dezembro 2019</option>
					</select>
			</td>
		</tr>
			<tr>
			<td align="center" bgcolor="#000000" width="20%">Selecione o Arquivo</td>
			<td>
				
					<input type="file" name="arquivo" />
					<input type="submit" value="Enviar"/>
				
			</td>
		</tr>
		</form>
          </table> 

atualizar_frequencia.php

<?php 
//error_reporting (E_ALL & ~ E_NOTICE & ~ E_DEPRECATED);

session_start(); // inicia sessão
include "../db.php"; // conecta no banco de dados **** PDO

$file = $_FILES["arquivo"]; // Arquivo recebido
$mes  = $_POST["mes_escolhido"]; // Mês escolhido
$dir = "_frequencias/"; // Pasta para upload

echo "----- RESUMO -----<br>";
echo "Arquivo: ".$file["name"]."<br>";
echo "Mês Selecionado: ".$mes."<br>";
echo "Pasta: ".$dir."<br><br>";

// Movendo o arquivo da pasta temporaria para pasta de destino 
if (move_uploaded_file($file["tmp_name"], "$dir/".$file["name"])) { 
    echo "1º Etapa: Ok - Upload Completo!<br>"; 
} 
else { 
    echo "1º Etapa: NOK - Upload não realizado."; 
	exit;
}  

// Abre o Arquvio no Modo r (para leitura)
$arquivo = fopen ($dir."/".$file["name"], 'r');
	
// Lê o conteúdo do arquivo 

$i = 1;

while(!feof($arquivo))
{
	$i++;
//Mostra uma linha do arquivo
$linha = trim(fgets($arquivo, 1024));

if($linha!=NULL){
	
	if($i<="10")
	{
		//echo $i." - ".substr($linha, 13 , 9)."<br />";
		$mes_arquivo_sql = substr($linha, 13 , 9);
	}

}}
echo "Mês do Arquivo ".$mes_arquivo_sql."<br>";
echo "Arquivo Recebido: ".$dir.$file["name"]."<br>";

if($mes!=$mes_arquivo_sql){
	echo "<br><br><font color='red'><b>O arquivo enviado não corresponde ao mês selecionado</b> Verifique e tente novamente!</font><br><br>";
	echo "<a href='calculos_atrasos.php'>[VOLTAR]</a>";
	exit;
}else{
	echo "<font color='green'><b>Arquivo correspondente</b></font><br>";
}

//Apaga tabela para receber dados novos
$deleterecords = "TRUNCATE TABLE ".$mes;
$deletar = $PDO->exec($deleterecords);

//escreve na tabela
$sql = file_get_contents($dir.$file["name"]);
$qr = $PDO->exec($sql);


	if($qr){
			echo "2º Etapa: Ok - Salvo no Banco de Dados!!! <br><a href='calculos_atrasos.php'>[VOLTAR]</a>";
	}else{
			echo "2º Etapa: NOK - Erro ao salvar no Banco de Dados...";
	}
// Fecha arquivo aberto
fclose($arquivo);

?>

 

Resolvido!

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pellegrini3834
      Ola a todos amigos programadores estou com um probleminha ao iniciar uma sessão usando o twig, eu quero apresentar os usuários logados no sistema e caso eu movimente a pagina ele faça a verificação de sessão, mas fique bem claro que eu quero usar o Twig. Como Faço Isso? Podem me ajudar?
       
      <?php class loginControle { private $ObjLogin; function __construct() { $this->ObjLogin = new Usuario(); } public function index() { $loader = new Twig\Loader\FilesystemLoader('app/visao/login'); $twig = new Twig\Environment($loader); $template = $twig->load('login_usuario.php'); $template->display(); session_start(); $this->ObjLogin->setUsuario($_POST["txtusuario"]); $this->ObjLogin->setSenha($_POST["txtsenha"]); $loader = new Twig\Loader\FilesystemLoader('app/visao/usuario'); $twig = new Twig\Environment($loader); $template = $twig->load('cadastrar_usuario.php'); if (isset($_POST["btnLogar"])) { if ($this->ObjLogin->logarAdmin()) { $dados = array( 'perfil' => 'Administrador', 'nome' => 'Master', 'usuario' => $this->ObjLogin->getUsuario(), 'senha' => $this->ObjLogin->getSenha() ); $_SESSION['perfil'] = $perfil; $_SESSION['nome'] = $nome; $_SESSION['usuario'] = $usuario; $_SESSION['senha'] = $senha; echo $template->render($dados); } $pegar = $this->ObjLogin->logarUsuario(); foreach ($pegar as $value) { switch ($value["perfil"]) { case "socio": $_SESSION['perfil'] = $value['perfil']; $_SESSION['nome'] = $value['nome']; $_SESSION['usuario'] = $value['usuario']; $_SESSION['senha'] = $value['senha']; header("location:http://localhost/Estoque_12_10_2019/?url=menu&metodo=ctlMenuSocio"); break; case "gerente": $_SESSION['perfil'] = $value['perfil']; $_SESSION['nome'] = $value['nome']; $_SESSION['usuario'] = $value['usuario']; $_SESSION['senha'] = $value['senha']; header("location:http://localhost/Estoque_12_10_2019/?url=menu&metodo=ctlMenuGerente"); break; case "funcionario": $_SESSION['perfil'] = $value['perfil']; $_SESSION['nome'] = $value['nome']; $_SESSION['usuario'] = $value['usuario']; $_SESSION['senha'] = $value['senha']; header("location:http://localhost/Estoque_12_10_2019/?url=menu&metodo=ctlMenuFuncionario"); break; } } } } public function ctlSessaoRestrita() { session_start(); if (isset($_SESSION['usuario']) && (isset($_SESSION['senha']))) { echo "Bem Vindo (a) " . $_SESSION['perfil'] . "(a)" . " - " . $_SESSION['nome']; } else { session_unset(); session_destroy(); header("location:http://localhost/Estoque_12_10_2019/?url=login"); } } public function ctlDestroiSessaoManual() { if (isset($_POST["btnSair"])) { session_start(); session_destroy(); header("location:http://localhost/Estoque_12_10_2019/?url=login"); } } public function ctlDestroiSessaoAutomatico() { session_start(); session_unset(); session_destroy(); header("location:http://localhost/Estoque_12_10_2019/?url=login"); } } cadastrar_usuario.php <h1>SEJA BEM VINDO {{perfil}} - {{nome}} </h1> // AQUI FICA A INFORMAÇÃO DO USUÁRIO LOGADO NO SISTEMA. <div class="cadastro"> <h1 class="bg-success titulo">&nbsp;CADASTRO DE USUÁRIOS:</h1><br> <form class="letras" method="post" action="http://localhost/Estoque_15_10_2019/?url=usuario&metodo=ctlCadastrarUsuario"> <div class="form-row"> <div class="form-group col-md-4"> <label for="nome">NOME:</label> <input type="text" name="txtnome" id="nome" onkeyup="maiuscula('nome')" placeholder="NOME" class="form-control" autofocus required> </div> <div class="form-group col-md-4"> <label for="email">EMAIL:</label> <input type="email" name="txtemail" placeholder="EMAIL" class="form-control" required> </div> <div class="form-group col-md-4"> <label for="perfil">PERFIL:</label> <select required name="cbperfil" class="form-control input-group-addon"> <option value="socio">Socio:</option> <option value="gerente">Gerente:</option> <option value="funcionario">Funcionário:</option> </select> </div> </div> <div class="form-row"> <div class="form-group col-md-4"> <label for="usuario">USUÁRIO:</label> <input type="text" name="txtusuario" placeholder="USUÁRIO" class="form-control" required> </div> <div class="form-group col-md-4"> <label for="senha">SENHA:</label> <input type="password" name="txtsenha" placeholder="SENHA" class="form-control" required> </div> <div class="form-group col-md-4"> <label for="confirmasenha">CONFIRMA SENHA:</label> <input type="password" name="txtconfsenha" placeholder="CONFIRMA SENHA" class="form-control" required> </div> </div> <div class="form-row"> <button type="submit" name="btnCadastrar" class="btn btn-success">Cadastrar: &nbsp;&nbsp;<i class="fas fa-save"></i></button> </div><br> </form> </div>  
    • By rogerblower
      Pessoal estou usando PHPMailer para enviar email com dados do formulário e ao mesmo tempo gravar no mysql.
      O email esta sendo enviado mas não esta gravando no banco, não sei onde estou errando segue meu código.
       
      <?php include 'header.php'; ?> <div class="container"> <div class="row"> <div class="col-md-12"> <div class="row"> <?php date_default_timezone_set('Etc/UTC'); if(isset($_POST['btnsave'])) { $id_cliente = $_POST['id_cliente']; $produto = $_POST['produto']; $medida = $_POST['medida']; $msg = $_POST['msg']; $qtd = $_POST['qtd']; $aprovado = $_POST['aprovado']; $status = $_POST['status']; $data_orca = date('Y-m-d'); $imgFile = $_FILES['user_image']['name']; $tmp_dir = $_FILES['user_image']['tmp_name']; $imgSize = $_FILES['user_image']['size']; if(empty($imgFile)){ $errMSG = "Please Select Image File."; } else { $upload_dir = 'imagens/orcamento/'; // upload directory $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension // valid image extensions $valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions // rename uploading image $userpic = rand(1000,1000000).".".$imgExt; // allow valid image file formats if(in_array($imgExt, $valid_extensions)){ // Check file size '5MB' if($imgSize < 5000000) { move_uploaded_file($tmp_dir,$upload_dir.$userpic); } else{ $errMSG = "Desculpe seu arquivo é muito grande."; } } else{ $errMSG = "Desculpe, somente arquivos JPG, JPEG, PNG e GIF são aceitos."; } } require_once('includes/init.php'); if(!isset($errMSG)){ $addv=$pdo->prepare("INSERT INTO orcamento (id_cliente, produto, medida, qtd, msg, aprovado, status, data_orca, img) VALUE(?,?,?,?,?,?,?,?,?)"); $addv->bindValue("1",$id_cliente); $addv->bindValue("2",$produto); $addv->bindValue("3",$medida); $addv->bindValue("4",$qtd); $addv->bindValue("5",$msg); $addv->bindValue("6",$aprovado); $addv->bindValue("7",$status); $addv->bindValue("8",$data_orca); $addv->bindValue("9",$userpic); if($addv->execute()) { $successMSG = "Orçamento enviado com sucesso..."; } else { $errMSG = "Erro ao enviado Orçamento..."; } } $path_file = $upload_dir.$userpic; /////////////////////////////////////////////////////////////////////////////////////////////// require 'phpmailer/PHPMailerAutoload.php'; //Create a new PHPMailer instance $mail = new PHPMailer; //Tell PHPMailer to use SMTP $mail->isSMTP(); $mail->CharSet = 'UTF-8'; //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = "smtp.uhserver.com"; //Set the SMTP port number - likely to be 25, 465 or 587 $mail->Port = 587; //Whether to use SMTP authentication $mail->SMTPAuth = true; //Username to use for SMTP authentication $mail->Username = "contato@xxxxx.com.br"; //Password to use for SMTP authentication $mail->Password = "xxxxxx"; //Set who the message is to be sent from $mail->setFrom('contato@xxxxx.com.br', 'xxxxx'); //Set an alternative reply-to address $mail->addReplyTo('no-reply@xxxxx.com.br', 'xxxxx'); //Set who the message is to be sent to $mail->addAddress('contato@xxxxx.com.br', 'xxxxx'); //Mantenha-o simples - não use HTML $mail->isHTML(true); $id = $_SESSION['id_do_produto']; $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC"); $add_pro->execute(); while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){ extract($row); $assunto = ''.$row['nome_produto'].''; } //Set the subject line $mail->Subject = 'Solicitação de orcamento de: '.$assunto.''; $mail->Body = ' <html bgcolor="#E6E6E6"> <table able width="60%" align="center" style="background-color:#ffffff; border:1px solid #cccccc;"> <tr style="background-color:#ffffff; border: 1px solid #cccccc;"> <td><a href="http://xxxxx.com.br" target="_blank"><img src="http://xxxxx.com.br/imagens/logo.png" width="300" height="80" /></a></td> </tr> <tr> <td colspan="3"><hr / style="color:#cccccc;"></td> </tr> <tr style="background-color:#ffffff; border: 1px solid #cccccc;"> <td style="color:blue;"><strong> '.$assunto.'</strong></td> </tr> <tr> <td colspan="3"><hr / style="color:#cccccc;"></td> </tr> <tr> <td colspan="2">'.$msg.'</td> </tr> <tr> <td colspan="3"><hr / style="color:#cccccc;"></td> </tr> <tr> <td colspan="3" style="font-size:9px;">Roda pé do formulário</td> </tr> </table> </html> '; //$mail->AddAttachment($path_file); //Read an HTML message body from an external file, convert referenced images to embedded, //convert HTML into a basic plain-text alternative body //$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); //Replace the plain text body with one created manually //$mail->AltBody = 'This is a plain-text message body'; //Attach an image file //$mail->addAttachment('examples/images/phpmailer_mini.png'); //send the message, check for errors if (!$mail->send()) { //echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Mensagem Enviada!"; header('Location: index.php'); } } ?> <br/><br/> <table class="table table-bordered table-responsive"> <form method="post" enctype="multipart/form-data" class="form-horizontal"> <tr> <td><label class="control-label">Produto:</label></td> <?php $id = $_SESSION['id_do_produto']; $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC"); $add_pro->execute(); while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){ extract($row); echo'<td><input class="form-control" type="text" name="produto" value="'.$row['nome_produto'].'"/></td>'; } ?> </tr> <tr> <td><label class="control-label">Cliente:</label></td> <td><input class="form-control" type="text" name="" value="<?php echo $_SESSION['c_nome'] ?>"/> <input class="form-control" type="hidden" name="id_cliente" value="<?php echo $_SESSION['c_id'] ?>"/></td> </tr> <tr> <td><label class="control-label">Medida: <i style="font-size: 11px">Altura X Largura</i></label></td> <td><input class="form-control" type="text" name="medida" placeholder="0,00 x 0,00" /></td> </tr> <tr> <td><label class="control-label">Quantidde:</label></td> <td><input class="form-control" type="text" name="qtd" /></td> </tr> <tr> <td><label class="control-label">Mensagem.</label></td> <td><textarea class="form-control" type="text" name="msg" rows="3" placeholder="Mensagem"></textarea></td> </tr> <input class="form-control" type="hidden" name="aprovado" value="Não" /> <input class="form-control" type="hidden" name="status" value="Aberto" /> <tr> <td><label class="control-label">Envie seu Layout.</label></td> <td><input class="input-group" type="file" name="user_image" accept="image/*" /></td> </tr> <tr> <td colspan="2" style="text-align:center; padding: 30px;"><button type="submit" name="btnsave" class="btn btn-primary"> <span class="glyphicon glyphicon-save"></span> &nbsp; Enviar Orçamento &nbsp; </button> </td> </tr> </form> </table> </div><!-- /.row --> </div><!-- /.col-md-12 --> </div><!-- /.row --> </div><!-- /.container --> <?php include 'footer.php'; ?>  
    • By Hlameiras
      Olá!
       
      Estou tentando desenvolver um formulário dinâmico em PHP, em que o utilizador ao clicar num determinado botão possa acrescentar campos de INPUTs ou SELECTs no mesmo.
      Encontrei este exemplo que funciona mas tem limitações:
      https://www.formget.com/how-to-dynamically-add-form-fields-and-increment-name-attribute-of-the-field/
       
      O problema é que os campos adicionais são gerados pelo lado do cliente (Javascript) e não pelo lado do servidor, logo no caso de gerar SELECTS que vão buscar informação a uma Base de Dados, as opções de escolha não são apresentadas. Qual será a melhor solução para resolver este problema?
       
      Agradecido!
       
       
       
    • By Hállex da Silva Costa
      Alguém poderia me dizer qual a forma mais correta de se utilizar uma classe seguindo as regras e padrões da Orientação a Objeto. Digamos que eu tenha uma classe Abstrata que fará a conexão com o banco de dados, eu crio uma outra classe que herda dessa classe abstrata, o correto seria utilizar os atributos da classe usando Exemplo 1 ou Exemplo 2?
      OBS: se eu usar o Exemplo 1 (que utiliza o parent) ou Exemplo 2 (que utilza o $this) o resultado dos dois é o mesmo como no print abaixo mostra.
      P.S.: Estou pergutando para não acabar fazendo gambiarra.
       
      Codígo Exemplo 1:
      <?php require_once 'db.abstract_class.php'; final class DB extends AbstractDB { public function __construct(String $dbtype, String $host, Int $port, String $dbname, String $charset, String $user, String $pass){ return parent::__construct($dbtype, $host, $port, $dbname, $charset, $user, $pass); } final function Connect(){ $dbtype = parent::getDBType(); $host = parent::getHost(); $port = parent::getPort(); $dbname = parent::getDBName(); $charset = parent::getCharset(); $dbh = new PDO($dbtype . ":host={$host};port={$port}dbname={$dbname};charset{$charset}", parent::getUser(), parent::getPass()); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE); $dbh->setAttribute(PDO::ATTR_PERSISTENT, TRUE); parent::setConnection($dbh); return parent::getConnection(); } final function Disconnect(){} final function selectDB(){} final function insertDB(){} final function updateDB(){} final function deleteDB(){} } ?> Codígo Exemplo 2:
      <?php require_once 'db.abstract_class.php'; final class DB extends AbstractDB { public function __construct(String $dbtype, String $host, Int $port, String $dbname, String $charset, String $user, String $pass){ $this->setDBType($dbtype); $this->setHost($host); $this->setPort($port); $this->setDBName($dbname); $this->setCharset($charset); $this->setUser($user); $this->setPass($pass); } final function Connect(){ $dbtype = $this->getDBType(); $host = $this->getHost(); $port = $this->getPort(); $dbname = $this->getDBName(); $charset = $this->getCharset(); $dbh = new PDO($dbtype . ":host={$host};port={$port}dbname={$dbname};charset{$charset}", $this->getUser(), $this->getPass()); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE); $dbh->setAttribute(PDO::ATTR_PERSISTENT, TRUE); $this->setConnection($dbh); return $this->getConnection(); } final function Disconnect(){} final function selectDB(){} final function insertDB(){} final function updateDB(){} final function deleteDB(){} } ?> Resultado:

    • By smashplus
      Olá amigos, sendo breve, apenas gostaria de saber se alguem sabe por onde começo para fazer por exemplo o seguinte:
       
      Existe o usuário 1 e o usuário 2,  quando o usuário 1 insere uma linha no bd, ele manda uma mensagem para o usuário 2, avisando tipo, foi inserido uma linha no bd para o usuário, tipo aqueles popup sabe.
       
      Se alguem puder dar uma luz, tenho noções basicas de php e ajax...
       
      Agradeço se alguem puder dar a direção.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.