Jump to content
AnthonyKamers

Multiplicar valores de uma Array e inserir SQL com PHP

Recommended Posts

Preciso cadastrar múltiplas linhas no banco de dados e preciso q um dos campos some automaticamente. Tenho o quantidadePaletes[ ] e o valorPorPalete[ ].

no total[ ], preciso q multiplique o quantidadePaletes * valorPorPalete e grave no SQL.

<form method="post">
				<h3>Novo Relatorio</h3>
				<table id="tabla">
					<tr>
						<td><input required name="codigoRelatorio[]" placeholder="Codigo"/></td>
						
						<td><input required name="clientePrincipal[]" placeholder="Cliente da MSK"/></td>
						
						<td><input required name="clienteRelatorio[]" placeholder="Cliente"/></td>
						<td><input required name="nf[]" placeholder="Notas Fiscais"/></td>
						<td><input required name="quantidadePaletes[]" placeholder="Quantidade de Paletes"/></td>
						<td><input required name="valorPorPalete[]" placeholder="Valor Por Palete"/></td>
						<td><input required name="total[]" placeholder="Total"/></td>
						<td class="eliminar"><input type="button"   value="Menos -"/></td>
					</tr>
				</table>

				<div>
					<input type="submit" name="insertar" value="Inserir Dados"/>
					<button id="adicional" name="adicional" type="button"> Mais + </button>

				</div>
			</form>


	<?php

				//////////////////////// PRESSIONAR O BOTÃO //////////////////////////
				if(isset($_POST['insertar']))

				{


				$items1 = ($_POST['codigoRelatorio']);
				$items2 = ($_POST['clienteRelatorio']);
				$items3 = ($_POST['nf']);
				$items4 = ($_POST['quantidadePaletes']);
				$items5 = ($_POST['valorPorPalete']);
				$items6 = ($_POST['total']); 
				$items7 = ($_POST['clientePrincipal']);
				 
				///////////// SEPARAR VALORES DE ARRAYS, NESTE CASO SÃO 6 ARRAYS UM POR CADA INPUT (CODIGO, CLIENTE, NF, QUANTIDADE, PORPALETE, TOTAL)  ////////////////////)
				while(true) {

				    //// RECUPERAR VALORES E JUNTÁ-LOS ////////
				    $item1 = current($items1);
				    $item2 = current($items2);
				    $item3 = current($items3);
				    $item4 = current($items4);
					$item5 = current($items5);
					$item6 = current($items6);
					$item7 = current($items7);
				    
				    ////// CONCATENAR PARA RESPECTIVAS VARIÁVEIS ///////////////////
				    $codigo=(( $item1 !== false) ? $item1 : ",  ");
				    $cliente=(( $item2 !== false) ? $item2 : ",  ");
				    $nf=(( $item3 !== false) ? $item3 : ",  ");
				    $qntd=(( $item4 !== false) ? $item4 : ",  ");
					
					$porPalete=(( $item5 !== false) ? $item5 : ",  ");
					$total=(( $item6 !== false) ? $item6 : ",  ");
					$principal=(( $item7 !== false) ? $item7 : ",  ");

				    //// CONCATENAR VALORES PARA FUTURA INSERÇÃO ////////
				    $valores='('.$codigo.',"'.$cliente.'","'.$nf.'","'.$qntd.'","'.$porPalete.'","'.$total.'","'.$principal.'"),';

				    ////////  COMA É TERMINADO COM CADA LINHA, SUBTRAI COM FUNCÇÃO SUBSTR NA ÚLTIMA FILA /////////////////////
				    $valoresQ= substr($valores, 0, -1);
				    
				    ///////// QUERY DE INSERÇÃO ////////////////////////////
				    $sql = "INSERT INTO relatorio (codigoRelatorio, clienteRelatorio, nf, quantidadePaletes, valorPorPalete, total, clientePrincipal) 
					VALUES $valoresQ";
						
					
					
					
					
					$sqlRes=$connection->query($sql) or mysql_error();
					
					
					$idUltimo = mysqli_insert_id($connection);
				    
				    // Up! Next Value
				    $item1 = next( $items1 );
				    $item2 = next( $items2 );
				    $item3 = next( $items3 );
				    $item4 = next( $items4 );
					
					$item5 = next( $items5 );
					$item6 = next( $items6 );
					$item7 = next( $items7 );
				    
				    // Check terminator
				    if($item1 === false && $item2 === false && $item3 === false && $item4 === false && $item5 === false && $item6 === false && $item7 === false) break;
					
					
					
    
				}
					
					
					
					if($sql){
						echo "
			<script>window.open('verRelatorio.php?id=$idUltimo')</script>
			<meta http-equiv='refresh' content='0; url=relatorio.php' />
			<script type='text/javascript'>alert ('Dados foram Inseridos com Sucesso!!')</script>
		";
					} else {
						echo "
			<meta http-equiv='refresh' content='0; url=relatorio.php' />
			<script type='text/javascript'>alert ('Dados não foram Inseridos com Sucesso!!')</script>
		";
					}
					
				}

			?>

No momento, estou tendo que digitar o total manualmente, porém preciso que isso seja pego automaticamente

Share this post


Link to post
Share on other sites

Pow recentemente fiz um negocio/exemplo desses pra o pessoal de JS.

Sera que te ajuda em algo?

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>

<table>
	<tbody id="body-table">
		<tr>
			<td>QTD</td>
			<td>VALOR UNITARIO</td>
			<td>SUB TOTAL</td>
		</tr>
		<tr>
			<td><input type="text" class="updateFields qtd" name="qtd[]"/></td>
			<td><input type="text" class="updateFields valorunitario" name="valorunitario[]" /></td>
			<td><input type="text" class="updateFields valorsubtotal" name="valorsubtotal[]" /></td>
		</tr>
		<tr>
			<td><input type="text" class="updateFields qtd" name="qtd[]"/></td>
			<td><input type="text" class="updateFields valorunitario" name="valorunitario[]" /></td>
			<td><input type="text" class="updateFields valorsubtotal" name="valorsubtotal[]" /></td>
		</tr>
	</tbody>
	<tfoot>
		<tr>
			<td colspan="2" style="text-align:center">Total:</td>
			<td><input type="text" id="total" name="total" /></td>
		</tr>
	</tfoot>
</table>
<br />
<br />
<br />
<button id="btn-addCell">Adicionar Cell</button>


<hr />
<br />
<button id="btn-acao">Atualizar</button>

<script type="text/javascript">
	document.getElementById("btn-addCell").addEventListener('click', function() {
        var inputQtd = document.createElement('input');
		inputQtd.setAttribute('type', 'text');
		inputQtd.className = 'updateFields qtd';		
		inputQtd.setAttribute('name', 'qtd[]');
		
		var tdQtd = document.createElement('td');
		tdQtd.appendChild(inputQtd);
		
		var inpuUnit = document.createElement('input');
		inpuUnit.setAttribute('type', 'text');
		inpuUnit.className = 'updateFields valorunitario';		
		inpuUnit.setAttribute('name', 'valorunitario[]');
		
		var tdUnit = document.createElement('td');
		tdUnit.appendChild(inpuUnit);
		
		var inpuSubTotal = document.createElement('input');
		inpuSubTotal.setAttribute('type', 'text');
		inpuSubTotal.className = 'updateFields valorsubtotal';		
		inpuSubTotal.setAttribute('name', 'valorsubtotal[]');
		
		var tdSubTotal = document.createElement('td');
		tdSubTotal.appendChild(inpuSubTotal);
		
		
		
		var tr = document.createElement('tr');
		tr.appendChild(tdQtd);
		tr.appendChild(tdUnit);
		tr.appendChild(tdSubTotal);
		
		document.getElementById("body-table").appendChild(tr);
		updateFields();
	});	
	
	
	function getFieldNameByClass(classes){
		classesArr = classes.split(" ");
		for(x in classesArr){
			if(classesArr[x] == 'qtd') return 'qtd';				
			if(classesArr[x] == 'valorunitario') return 'valorunitario';				
			if(classesArr[x] == 'valorsubtotal') return 'valorsubtotal';				
		}
	}	
	
	//Encapsulamos para poder chamar em outro contexto
	var updateFields = function(){
		var fields = document.getElementsByClassName("updateFields");
		for (var i = 0; i < fields.length; i++) {
			fields[i].addEventListener('keyup',  function() {
				var thisTr = this.parentElement.parentElement;
				var tdChilds = thisTr.childNodes;
				
				var subTotalLinha = {};
				for(var y = 0;y < tdChilds.length; y++){
					
					//Pega apenas os Node reais
					if(tdChilds[y].nodeType == tdChilds[y].ELEMENT_NODE){
						//Dentro do Node (td) navega até o input td->input
						var input = tdChilds[y].childNodes[0];
											
						var inputName = getFieldNameByClass(input.className);
						subTotalLinha[inputName] = input.value;
						//Deixa a referencia ao node, para atualizar após a conta
						if(inputName == 'valorsubtotal'){
							subTotalLinha['nodeRef'] = input;
						}
					}
				}
				
				//is Defined or null?
				if(subTotalLinha['qtd'] == null || subTotalLinha['qtd'] == '') return false;
				if(subTotalLinha['valorunitario'] == null || subTotalLinha['valorunitario'] == '') return false;
				
				var qtd = parseInt(subTotalLinha['qtd']);
				var valorunitario = parseInt(subTotalLinha['valorunitario']);			
				
				var subTotal = qtd * valorunitario;			
				subTotalLinha['nodeRef'].value = subTotal;		
				
				
				//Vamos somar todos os campos a classe valorsubtotal
				var subtotalFields = document.getElementsByClassName("valorsubtotal");
				var total = 0;
				for(var i = 0; i < subtotalFields.length; i++){
					if(subtotalFields[i].value != ''){
						total += parseInt(subtotalFields[i].value);
					}
				}
				//Agora atualiza o campo 'Total'
				document.getElementById("total").value = total;
			}, false);
		}
	}
	
	
	updateFields();
		
	
	
</script>
</body>
</html>

Live:

https://fiddle.jshell.net/73m7crLf/

Share this post


Link to post
Share on other sites

Só copiar e colar.
Vai funcionar normalmente
 

Em 20/04/2018 at 15:28, Gilberto Nogueira de Almeida disse:

sou novato em javascript

 

Recomendo fortemente:
https://github.com/gabrieldarezzo/helpjs-ravi#40---exercicios-em-javascript-js
 

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.