Jump to content
Webster Moitinho

Executando duas consultas

Recommended Posts

Estou tentando fazer o controle de acesso do meu site. Para tanto criei duas tabelas:

Stat (Armazena cada sessao dos usuários
Estrutura da tabela `stat`

CREATE TABLE `stat` (
  `id_stat` int(11) NOT NULL,
  `navegador` varchar(85) NOT NULL,
  `usuario` int(11) NOT NULL,
  `cep` varchar(7) NOT NULL,
  `ip_visitante` varchar(15) NOT NULL,
  `sessao` varchar(72) NOT NULL,
  `pais` varchar(30) NOT NULL,
  `estado` varchar(30) NOT NULL,
  `cidade` varchar(50) NOT NULL,
  `latitude` decimal(11,5) NOT NULL,
  `longitude` decimal(11,5) NOT NULL,
  `ip_meuservidor` varchar(72) NOT NULL,
  `hora_req` time NOT NULL,
  `origem` varchar(175) NOT NULL,
  `idioma` varchar(50) NOT NULL,
  `SERVER_ADMIN` varchar(90) NOT NULL,
  `servidor` varchar(90) NOT NULL,
  `visitada` longtext CHARACTER SET utf8 NOT NULL,
  `registro` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- Indexes for table `stat`

ALTER TABLE `stat`
  ADD PRIMARY KEY (`id_stat`);


-- AUTO_INCREMENT for table `stat`

ALTER TABLE `stat`
  MODIFY `id_stat` int(11) NOT NULL AUTO_INCREMENT;

sub_stat (Para armazenar as páginas visitadas e as interações com o cliente:

CREATE TABLE `sub_stat` (
  `id_substat` int(11) NOT NULL,
  `sessao` varchar(72) NOT NULL,
  `hora_req` time NOT NULL,
  `origem` varchar(85) NOT NULL,
  `visitada` varchar(85) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Indexes for table `sub_stat`

ALTER TABLE `sub_stat`
  ADD PRIMARY KEY (`id_substat`);

-- AUTO_INCREMENT for table `sub_stat`

ALTER TABLE `sub_stat`
  MODIFY `id_substat` int(11) NOT NULL AUTO_INCREMENT;

O desejado portanto, seria que quando o usuário entrasse na página, o script localizasse a sessão do usuário, buscaria a sessão na tabela stat, caso não existisse, iria inserir o registro tanto na tabela stat, quanto na tabela sub_stat. Se existisse a sessão na tabela stat, então somente haveria inserção dos registros na tabela sub_stat. Eu não estou conseguindo executar a segunda consulta, que vai popular a tabela sub_stat.

 

Meu código está assim:

 



		$sql = "SELECT sessao FROM stat
		WHERE sessao = '$sessao'";
		
		$prepara 		= $PDO->prepare( $sql );
		$prepara->execute();	
		$login_check   	= $prepara->rowCount();

		if($login_check < 1){



		$sql = "INSERT INTO `stat` 
		(`id_stat`, 
		`navegador`, 
		`usuario`, 
		`cep`, 
		`ip_visitante`, 
		`sessao`, 
		`pais`, 
		`estado`, 
		`cidade`, 
		`latitude`, 
		`longitude`, 
		`ip_meuservidor`, 
		`hora_req`, 
		`origem`, 
		`idioma`, 
		`servidor`, 
		`visitada`, 
		`registro`) 
		VALUES 
		(NULL, 
		'$navegador', 
		'$usuario', 
		'$cep', 
		'$meuip', 
		'$sessao', 
		'$pais', 
		'$estado', 
		'$cidade', 
		'$lat', 
		'$long', 
		'$ip', 
		'$hora_req', 
		'$origem', 
		'$idioma', 
		'$servidor', 
		'$visitada', 
		'$registro')";
	$compile	= $PDO->prepare($sql);
	$vai	= $compile->execute();

		

		$sql2 = "INSERT INTO `sub_stat` 
		(`id_substat`, 
		`sessao`, 
		`hora_req`, 
		`origem`, 
		`visitada`) 
		VALUES 
		(NULL, 
		'$sessao', 
		'$hora_req', 
		'$origem', 
		'$visitada'"; 
	$compile2	= $PDO->prepare($sql2);
	$vai	= $compile2->execute();

	} else {
	
	
		$sql = "INSERT INTO `sub_stat` 
		(`id_substat`, 
		`sessao`, 
		`hora_req`, 
		`origem`, 
		`visitada`) 
		VALUES 
		(NULL, 
		'$sessao', 
		'$hora_req', 
		'$origem', 
		'$visitada'"; 
	$compile	= $PDO->prepare($sql);
	$vai	= $compile->execute();

}

 

Share this post


Link to post
Share on other sites

Reparei que falta o fechamento de alguns
VALUES, porém, independente do mesmo,
tente usar o seguinte código:

 

CÓDIGO

<?php

$sql = "SELECT sessao FROM stat WHERE sessao = '$sessao'";
		
$prepara = $PDO->prepare ( $sql );
$prepara->execute ();	
$login_check = $prepara->rowCount ();

if ( $login_check < 1 ){
	$sql = "INSERT INTO `stat` (
	`id_stat`, 
	`navegador`, 
	`usuario`, 
	`cep`, 
	`ip_visitante`, 
	`sessao`, 
	`pais`, 
	`estado`, 
	`cidade`, 
	`latitude`, 
	`longitude`, 
	`ip_meuservidor`, 
	`hora_req`, 
	`origem`, 
	`idioma`, 
	`servidor`, 
	`visitada`, 
	`registro`
	)
	VALUES
	(
		NULL, 
		'$navegador', 
		'$usuario', 
		'$cep', 
		'$meuip', 
		'$sessao', 
		'$pais', 
		'$estado', 
		'$cidade', 
		'$lat', 
		'$long', 
		'$ip', 
		'$hora_req', 
		'$origem', 
		'$idioma', 
		'$servidor', 
		'$visitada', 
		'$registro'
	);
	INSERT INTO `sub_stat` 
	(
	`id_substat`, 
	`sessao`, 
	`hora_req`, 
	`origem`, 
	`visitada`
	)
	VALUES
	(
		NULL, 
		'$sessao', 
		'$hora_req', 
		'$origem', 
		'$visitada'
	)";

	$compile = $PDO->prepare ( $sql );
	$vai = $compile->execute ();
} else {
	$sql = "INSERT INTO `sub_stat` 
	(
	`id_substat`, 
	`sessao`, 
	`hora_req`, 
	`origem`, 
	`visitada`
	) 
	VALUES 
	(
		NULL, 
		'$sessao', 
		'$hora_req', 
		'$origem', 
		'$visitada'
	)";

	$compile	= $PDO->prepare ( $sql );
	$vai	= $compile->execute ();
}

 

Share this post


Link to post
Share on other sites
5 minutos atrás, Webster Moitinho disse:

Obrigado Shadow DLL... Eu não notei que faltava fechar o parêntesis. Valeu!!!

 

Disponível ;)

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 helkton
      galera minha duvida é a seguinte....
      faço a seguinte busca e monto um pdf pra um certificado, e neste certificado preciso coletar todas as materias referente ao curso do mesmo
      $sqlConteudoCurso = "SELECT * FROM conteudo_curso where idCursoConteudo = '$idCurso' order by idConteudo ASC; $conectaConteudoCurso = $conecta->query($sqlConteudoCurso); //conteudoCurso $pdf->SetFont('Arial', '', 11); // Tipo de fonte e tamanhos $pdf->SetTextColor(10,15,35); $pdf->SetXY(10,75); //Parte chata onde tem que ficar ajustando a posição X e Y while($resultConteudoCurso = $conectaConteudoCurso->fetch_object()){ $conteudoCurso = $resultConteudoCurso->nomeConteudo; $pdf->MultiCell(75, 5, $conteudoCurso,'0', 'L', 0);// Tamanho width e height e posição } ok esta é a consulta que realizo no banco de dados ele me retorna a materia referente ao curso certinho, digamos que o curso tenha umas 20 matérias, ele vai imprimir certinho conforme as configurações de espaçamentos...
      AGORA O B.O é seguinte quando o curso acontece de ter tipo umas umas 40 MATÉRIAS ele acaba gerando outra página de pdf
      o que eu queria era que não gerasse outra pagina e sim partisse para o lado direito, pois é um certificado
      TIPO ASSIM....
      MATERIA 1 DO CURSO 1 MATERIA 11 DO CURSO 1 MATERIA 2 DO CURSO 1 MATERIA 12 DO CURSO 1 MATERIA 3 DO CURSO 1 MATERIA 13 DO CURSO 1 MATERIA 4 DO CURSO 1 MATERIA 14 DO CURSO 1 MATERIA 5 DO CURSO 1 MATERIA 15 DO CURSO 1 MATERIA 6 DO CURSO 1 MATERIA 16 DO CURSO 1 MATERIA 7 DO CURSO 1 MATERIA 17 DO CURSO 1 MATERIA 8 DO CURSO 1 MATERIA 18 DO CURSO 1 MATERIA 9 DO CURSO 1 MATERIA 19 DO CURSO 1 MATERIA 10 DO CURSO 1 MATERIA 20 DO CURSO 1  
    • By Rebeca Julia Bronzatti
      Como salvar um formulário que possui duas tabelas, tenho uma tabela imóvel e outra arquivoimagem, gostaria de saber como salvar as duas, vi algumas coisas como dar um insert de cada vez no entanto eu não consigo recuperar a imagem, ele nem entra no if pra salvar a imagem. Se alguém puder me ajudar agradeço e muito to batendo a cabeça faz um tempo e não consigo resolver o bo.
       
      <?php include 'Conexao.php'; $nome = $_POST['nome']; $idade = $_POST['idade']; $sexo = $_POST['sexo']; $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : ""; $sql = "INSERT INTO usuario(nome, idade, sexo) VALUES ('$nome', '$idade', '$sexo')"; $resultado = mysqli_query($cnn, $sql); if(!$sql){ echo 'não salvou'; }else{ echo 'salvou'; } if (isset($_FILES['arquivo'])) { $nome = $arquivo['name']; $tiposPermitidos = ['jpg', 'jpeg', 'png']; $quantArquivos = count($_FILES['arquivo']['name']); $contador = 0; while ($contador < $quantArquivos) { $extensao = pathinfo($_FILES['arquivo']['name'][$contador], PATHINFO_EXTENSION); $temporario = $_FILES['arquivo']['tmp_name'][$contador]; if (in_array($extensao, $tiposPermitidos)) { $tamanho = $arquivo ['size']; $novo_nome = uniqid().".$extensao" ; $diretorio = "upload/"; if(move_uploaded_file($temporario, $diretorio . $novo_nome)){ echo "Upload feito com sucesso $novo_nome<br>"; $sql_code = "INSERT INTO arquivoimagem (arquivo, data) VALUE ('$novo_nome', NOW())"; header("Location: MostraImagem.php"); if (mysqli_query($cnn, $sql_code)) { $msg = "Arquivo enviado com sucesso!"; } else { $msg = "Falha ao enviar arquivo"; } } } else { print "Tipo de arquivo não permitido"; } $contador++; } }
          
       
    • By Michael Cats
      Boa tarde,
       
      Preciso fazer um verificação, no ad criamos um grupo e somente esse grupo pode ter acesso ao conteudo.
      tenho um tela de login e depois preciso da verificação desse usuario no grupo do ad.
       
      Alguem pode me ajudar desde ja agradeço...
      Qualquer ajuda e bem vinda...
    • By violin101
      Caros amigos, saudações...
       
      Desculpa em recorrer aos amigos, com minha dúvida um pouco ingênua, se postei minha dúvida na opção errada, peço desculpas.
       
      Tenho 3(três) INPUT's que são:
      -----: quantidade
      -----: valor unitário
      -----: valor total
       
      Como faço para enquanto o INPUT do campo VALOR TOTAL for igual a 0,00 ---> o botão de GRAVAR fica desabilitado ?
       
      Tem como capturar através do JAVASCRIPT ?
       
      Grato,
       
      Cesar
       
    • By EvertonFD
      Bom dia preciso de uma ajuda tenho que fazer parecer um btn em php quando o id da url for=3
      esse é o codigo mas o btn aparece mas não encaminha o link se alguem puder me ajudar agradeço
      <?php 
       $result_colaborador = " SELECT * FROM sts_colaborador  WHERE categoria_id=$id";
              $resultado_colaborador = mysqli_query( $conn, $result_colaborador );
              $row_colaborador = mysqli_fetch_assoc( $resultado_colaborador ); 
          $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
          $link= '';        
      if ($id == 3){
          echo "<a href='colaborador?id=<?php echo $row_colaborador ['id']; ?>class='btn btn-info'>teste</a>";
      }
      ?>
       
×

Important Information

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