Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
boa tarde.. estou com duvida meu caso é o seguinte.. tenho uma tabela de cadastro_pessoas.. nesta tabela tenho o campo "situacao" onde armazena os dados vindos do form de cadastro_pessoas.php do radio_buton com valores 1 = sim e 2 = não .
tenho o form liberar.php que quero que faça a checagem deste campo na tabela se for 1 apareça a mensagem ACESSO LIBERADO.. e se for 2 ACESSO BLOQUEADO PELA EMPRESA. FAVOR LIGAR N. ..... ......
já tentei de tudo e não da certo..
segue form liberar.php
<? session_start();
if(!isset($_SESSION["usuarioNome"]) and !isset($_SESSION["usuarioNome"]))
{
header("Location:index.php");exit;
}else {
echo "Usuario: ". $_SESSION['usuarioNome'];
}
?>
<br> <a href="sair.php">Sair</a>
<HTML>
<HEAD>
<TITLE>LIBERACAO</TITLE>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
<style type="text/css">
.teste {
font-size: 9px;
}
</style>
</HEAD>
<BODY>
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<th scope="col"><ul class="nav nav-tabs">
<li role="presentation" class="active"><a href="index.php">INICIO</a></li>
<li role="presentation"><a href="cadastro_pessoas.php">CADASTRO DE PESSOAS</a></li>
<li role="presentation"><a href="entrada.php">LIBERAR ENTRADA</a></li>
<li role="presentation"><a href="saida.php">LIBERAR SAIDA</a></li>
<li role="presentation"><a href="listar.php">RELATORIO DE ENTRADA E SAIDA</a></li>
<li role="presentation"><a href="list_cadastros.php">RELATORIO DE CADASTROS</a></li>
</ul> </th>
</tr>
</table>
<p>
<?php
// variáveis para conexão em LOCALHOST
$conexao = mysqli_connect('mysql.hostinger.com.br', 'u8_polo', 'q12345u5', 'u5_polo');
if (mysqli_connect_errno()){
echo "falha ao conectar: ". mysqli_connect_error();
die();
}
?>
<?php
$tipo=$_POST['tipo'];
$situacao=$_POST['situacao'];
$nome=$_POST['nome'];
$identidade=$_POST['identidade'];
$placa=$_POST['placa'];
$veiculo=$_POST['veiculo'];
$cidade=$_POST['cidade'];
$uf=$_POST['uf'];
$empresa=$_POST['empresa'];
$sql = "INSERT INTO tb_entrada(tipo,situacao,nome,identidade,placa,veiculo,cidade,uf,empresa)VALUES ('{$tipo}', '{$situacao}','{$nome}', '{$identidade}','{$placa}', '{$veiculo}', '{$cidade}', '{$uf}', '{$empresa}')";
$resultado = mysqli_query($conexao, $sql);
if ($resultado['situacao'] == 1) {
echo "<h1><kbd><strong>ACESSO LIBERADO. SEJA BEM VINDO AO POLO TEXTIL DE INHUMAS.</h1></kbd></strong>";
}
else
echo "<h1>ERRO AO LIBERAR ACESSO....</h1>";
mysqli_close($conexao);
?>
</p>
</BODY>
</HTML>
obs.. a $session e para o usuario logado no sistema.. e não a pessoa que vai ser liberada..
quero que o form veja na tabela tb_cadastro se o usuario tal que vai ser liberado tem a opcao 1 ou 2 e retorna a mensagem e prossegue com o envio do form.fiz o que você postou ae.. mas agora todos que tento fazer a entrada aparece a mensagem..
erro ao liberar acesso....
Não foi possível cadastrar entrada
sera que tem algo a ver com o select ae. ?
//Query para buscar a situação
$sql_busca = "SELECT situacao FROM tb_entrada WHERE nome = '$nome'";
//Executandio a query de busca
$resultado_busca = mysqli_query($conexao, $sql_busca);
//Iniciando um loop para ver o resultado
while($row = mysqli_fetch_array($resultado_busca)){
//Se stiaucao for true
if ($row['situacao'] == 1) {a uma coisa ele tem que buscar a situacao da pessoa na tb_cadastro.. e so depois da consulta liberar a entrada e inserir os dados na tb_entrada. entendeu.
tenta ver se trocando comando:
>
Citar
mysqli_query($query);
por
>
Citar
$conecta->query($query)
Funciona.
Ah, pra fazer essa parte cadastrar depois, é só colocar o comando que executa a $sql_insert dentro da verificação.
Mais ou menos isso, se os campos do banco de dados estiverem corretos é pra funcionar, se não der, coloca:
error_reporting(E_ALL); no inicio da página e manda os erros aqui.
<?php
//Query da inserção
$sql_insert = "INSERT INTO tb_entrada(tipo,situacao,nome,identidade,placa,veiculo,cidade,uf,empresa)VALUES ('$tipo', '$situacao','$nome',
'$identidade','$placa', '$veiculo', '$cidade', '$uf', '$empresa')";
//Query para buscar a situação
$sql_busca = "SELECT situacao FROM tb_entrada WHERE nome = '$nome'";
//Executandio a query de busca
$resultado_busca = $conexao->query($sql_busca);
//Iniciando um loop para ver o resultado
while($row = mysqli_fetch_array($resultado_busca)){
//Se stiaucao for true
if ($row['situacao'] == 1) {
//executando a inserção
$resultado_insert = $conexao->query($sql_insert);
echo "<h1><kbd><strong>ACESSO LIBERADO. SEJA BEM VINDO AO POLO TEXTIL DE INHUMAS.</h1></kbd></strong>";
}
//Se não for true
else{
echo "<h1>ERRO AO LIBERAR ACESSO....</h1>";
}
//Caso não tenho sido inserido no banco
echo 'Não foi possível cadastrar entrada';
}
?>tipo ele da o erro que nao pode liberar e mesmo assim ta cadastrando no banco de dados.. e nao era pra fazer isso. acho q ele ta passando na frente o cadastro pra depois fazer a consulta ..
Tava fazendo isso mesmo, no que eu mandei por ultimo ele consulta antes de cadastrar
mas tipo.. ele tem que verificar se a pessoa ta liberado ou nao é na tb_cadastro .. pra depois cadastrar na tb_entrada.. o select ae ta buscando na tb_entrada eu mudei pra tb_cadastro e da erro.
$sql_busca = "SELECT situacao FROM tb_entrada WHERE nome = '$nome',";
mudei pra
$sql_busca = "SELECT situacao FROM tb_cadastro WHERE nome = '$nome',";Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/u844171755/public_html/polo/liberar.php on line 73
while($row = mysqli_fetch_array($resultado_busca));{
linha 73
>
14 minutos atrás, cleimarlemes disse:
$sql_busca = "SELECT situacao FROM tb_cadastro WHERE nome = '$nome',";
E essa virgula no final da query ? (tira ela).
>
5 minutos atrás, cleimarlemes disse:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/u844171755/public_html/polo/liberar.php on line 73
Esse erro significa que a consulta tem parâmetros errados, no caso, a vírgula provavelmente, ou se não for isso os nomes dos campos ou da tabela estão errados.
Veja os erros do error_reporting(E_ALL)e manda aqui. ~~~desculpa isso eu ja tinha escrito antes de você mandar
Se não houver erros nos nomes das tabelas (daria erro com SQL), ou no nomes dos campos (daria o mesmo erro) , não tem como estar dando erro
Também pode ser feito isso: Execute a query direto no banco pra ver se ela traz os dados e se não trouxer, quais vej aquais sãoos erros.
Pesquise por meio de descobrir erro no código, utilizar os comandos error_reporting(), var_dump, Debug Backtrace pode servir pra você achar onde está o erro de forma mais eficiente, as vezes colocar um trecho do código pra que encontrem o erro é a solução mais demorada.
MySQL retornou um conjunto vazio (ex. zero registros). ( Consulta levou 0.0001 segundos )
SELECT situacao
FROM tb_cadastro
WHERE nome = '$nome'
LIMIT 0 , 30
>
2 minutos atrás, cleimarlemes disse:
MySQL retornou um conjunto vazio (ex. zero registros). ( Consulta levou 0.0001 segundos )
SELECT situacao
FROM tb_cadastro
WHERE nome = '$nome'
LIMIT 0 , 30
Precisa ter um valor de parametro, qual é o $nome ?, senão vai retornar 0 mesmo.
Tamos chegando perto agr kk
o nome do cliente você fala ou do campo.. se for do campo é "nome" mesmo.. SE for o campo "situacao" tb antes de eu querer colocar isso pra dar uma melhorada no sistema tava tudo rodando perfeito kkk se quiser olhar.. www.webradiosaudades.esy.es/polo
login de teste: cleimar@hotmail.com senha.: 123 no caso é o menu de LIBERAR entrada .
É o nome do cliente que você quer buscar, a query precisa dessa sintaxe:
SELECT campo
FROM tabela
WHERE campo = 'valor'
LIMIT 0 , 30
//NO CASO
SELECT situacao
FROM tb_cadastro
WHERE nome = 'o nome do cliente que foi colocado no formulário'
LIMIT 0 , 30
O nome é o valor que você recebe com isso aqui:
>
Citar
$nome=$_POST['nome'];
Sacou ?SELECT situacao
FROM tb_cadastro
WHERE nome = 'WAGNER ANTONIO SANTOS'
se eu fizer isso no sql ele me retorna que o cliente tem a situacao "2" que e proibido entrar,, qndo entro com a identidade dele no sistema ele fala acesso proibido e tal e mesmo assim cadastra no banco de dados de entrada.. mas o select tem que estar com o nome dele se coloco so a variavel "nome" ele nao acha nada da erro. e cadastra ele no banco. kkkkkkkk to ficando doido ja.. e tipo nao sei nada de php to quebrando a cabeça..acho q consegui..
assim:
$sql_busca = "SELECT situacao FROM tb_cadastro WHERE nome = '$nome'";
agora falta arrumar pra ele nao estar cadastrando no banco de dados..
o codigo inteiro do form.. liberar.php
<? error_reporting(E_ALL); ?>
<? session_start();
if(!isset($_SESSION["usuarioNome"]) and !isset($_SESSION["usuarioNome"]))
{
header("Location:index.php");exit;
}else {
echo "Usuario: ". $_SESSION['usuarioNome'];
}
?>
<br> <a href="sair.php">Sair</a>
<HTML>
<HEAD>
<TITLE>LIBERACAO</TITLE>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
<style type="text/css">
.teste {
font-size: 9px;
}
</style>
</HEAD>
<BODY>
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<th scope="col"><ul class="nav nav-tabs">
<li role="presentation" class="active"><a href="index.php">INICIO</a></li>
<li role="presentation"><a href="cadastro_pessoas.php">CADASTRO DE PESSOAS</a></li>
<li role="presentation"><a href="entrada.php">LIBERAR ENTRADA</a></li>
<li role="presentation"><a href="saida.php">LIBERAR SAIDA</a></li>
<li role="presentation"><a href="listar.php">RELATORIO DE ENTRADA E SAIDA</a></li>
<li role="presentation"><a href="list_cadastros.php">RELATORIO DE CADASTROS</a></li>
</ul> </th>
</tr>
</table>
<p>
<?php
// variáveis para conexão em LOCALHOST
$conexao = mysqli_connect('mysql.hostinger.com.br', 'u8', 'q5', 'u_polo');
if (mysqli_connect_errno()){
echo "falha ao conectar: ". mysqli_connect_error();
die();
}
?>
<?php
$tipo=$_POST['tipo'];
$situacao=$_POST['situacao'];
$nome=$_POST['nome'];
$identidade=$_POST['identidade'];
$placa=$_POST['placa'];
$veiculo=$_POST['veiculo'];
$cidade=$_POST['cidade'];
$uf=$_POST['uf'];
$empresa=$_POST['empresa'];
//Query da inserção
$sql_insert = "INSERT INTO tb_entrada(tipo,situacao,nome,identidade,placa,veiculo,cidade,uf,empresa)VALUES ('$tipo', '$situacao', '$nome',
'$identidade', '$placa', '$veiculo', '$cidade', '$uf', '$empresa')";if($resultado_insert){
//Query para buscar a situação
$sql_busca = "SELECT situacao FROM tb_cadastro WHERE nome = '$nome'";
//Executandio a query de busca
$resultado_busca = mysqli_query($conexao, $sql_busca);
//Iniciando um loop para ver o resultado
while($row = mysqli_fetch_array($resultado_busca)){
//Se stiaucao for true
if ($row['situacao'] == 1) {
echo "<h1><kbd><strong>ACESSO LIBERADO. SEJA BEM VINDO AO POLO TEXTIL DE INHUMAS.</h1></kbd></strong>";
}
//Se não for true
else{
echo "<h1>ERRO AO LIBERAR ACESSO....</h1>";
}
}
//Caso não tenho sido inserido no banco
echo 'Não foi possível cadastrar entrada';
}
?>
</BODY>
</HTML>faça o teste ae.. com essa id.. 14548788787 situacao = 2
este 50830651187 situacao = 1
Só mudei duas linhas, tirei '
if($resultado_insert){
e coloquei o insert dentro da verificação com IF, testa agora pra ver se da boa
<? error_reporting(E_ALL); ?>
<? session_start();
if(!isset($_SESSION["usuarioNome"]) and !isset($_SESSION["usuarioNome"]))
{
header("Location:index.php");exit;
}else {
echo "Usuario: ". $_SESSION['usuarioNome'];
}
?>
<br> <a href="sair.php">Sair</a>
<HTML>
<HEAD>
<TITLE>LIBERACAO</TITLE>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
<style type="text/css">
.teste {
font-size: 9px;
}
</style>
</HEAD>
<BODY>
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<th scope="col"><ul class="nav nav-tabs">
<li role="presentation" class="active"><a href="index.php">INICIO</a></li>
<li role="presentation"><a href="cadastro_pessoas.php">CADASTRO DE PESSOAS</a></li>
<li role="presentation"><a href="entrada.php">LIBERAR ENTRADA</a></li>
<li role="presentation"><a href="saida.php">LIBERAR SAIDA</a></li>
<li role="presentation"><a href="listar.php">RELATORIO DE ENTRADA E SAIDA</a></li>
<li role="presentation"><a href="list_cadastros.php">RELATORIO DE CADASTROS</a></li>
</ul> </th>
</tr>
</table>
<p>
<?php
// variáveis para conexão em LOCALHOST
$conexao = mysqli_connect('mysql.hostinger.com.br', 'u8', 'q5', 'u_polo');
if (mysqli_connect_errno()){
echo "falha ao conectar: ". mysqli_connect_error();
die();
}
?>
<?php
$tipo=$_POST['tipo'];
$situacao=$_POST['situacao'];
$nome=$_POST['nome'];
$identidade=$_POST['identidade'];
$placa=$_POST['placa'];
$veiculo=$_POST['veiculo'];
$cidade=$_POST['cidade'];
$uf=$_POST['uf'];
$empresa=$_POST['empresa'];
//Query da inserção
$sql_insert = "INSERT INTO tb_entrada(tipo,situacao,nome,identidade,placa,veiculo,cidade,uf,empresa)VALUES ('$tipo', '$situacao', '$nome',
'$identidade', '$placa', '$veiculo', '$cidade', '$uf', '$empresa')";
//Query para buscar a situação
$sql_busca = "SELECT situacao FROM tb_cadastro WHERE nome = '$nome'";
//Executandio a query de busca
$resultado_busca = mysqli_query($conexao, $sql_busca);
//Iniciando um loop para ver o resultado
while($row = mysqli_fetch_array($resultado_busca)){
//Se stiaucao for true
if ($row['situacao'] == 1) {
//executando a inserção -> ONDE INSERE FIO MUDADA PRA CÁ, DENTRO D0 LOOP E DA VERIFICAÇAO SE A SITUAÇÃO É = 1
$resultado_insert = mysqli_query($conexao, $sql_insert);
echo "<h1><kbd><strong>ACESSO LIBERADO. SEJA BEM VINDO AO POLO TEXTIL DE INHUMAS.</h1></kbd></strong>";
}
//Se não for true
else{
echo "<h1>ERRO AO LIBERAR ACESSO....</h1>";
}
}
?>
</BODY>
</HTML>blz.. agora sim deu tudo certo.. quero liberar esse sistema depois pra galera se alguem quiser melhorar ele e tal.. agradeço sua ajuda.. se aparecer mais alguma duvida aki.. eu peço socorro pra você.. OBRIGADO!!!!
a mais uma duvida.. quero colocar este alerta dentro do echo.... mas da erro..
http://webradiosaudades.esy.es/polo/alerta.php
<div class="alert alert-danger fade in">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<strong>ACESSO PROIBIDO!</strong> Por favor retorne e entre em contato com a "DIRETORIA" ou "CENTRAL DE MONITORAMENTO". Obrigado!
</div>
esse e o codigo do alerta..ja deu certo.. tirei as aspas " e coloquei ' simples..
a gente vai aprendendo com os erro..
mais uma vez obrigado..
>
8 minutos atrás, cleimarlemes disse:
ja deu certo.. tirei as aspas " e coloquei ' simples..
a gente vai aprendendo com os erro..
mais uma vez obrigado..
Outra coisa que daria pra fazer também que ia solucionar é colocar uma barra invertida antes de cada aspa dupla.
tipo:
<?php
echo "OI <input type=\"text\"";boa noite vou te perturbar novamente..
minha TB_entrada tem um campo data e hora de entrada, como faço pra jogar a hora e a data automatico no bd.
sendo que ja fiz todos os testes e so cadastra assim :
to usando campo = varchar ja tentei datestime timestamp.. tudo joga hora errada.
DATA E HORA DE ENTRADA
2017-05-31 00:00:00.000000
DATA E HORA DE SAIDA
2017-06-01 00:43:03.787655
nos formularios nao tem os campos de data e hora somente no banco de dados.. que ta criando automatico qndo a pessoa entra e quando sai..
Tem uma função no Mysql
ON UPDATE CURRENT_TIMESTAMP
Configura o campo como datetime e o padrão de preenchimento com essa opção ativada.agora a hora que entro no formulario pra fazer a entrada o banco de dados ta cadastrando no campo horadeentrada 0000-00-00 00:00:00 assim.. é como eu direi.. terei que criar campos no formulario pra colocar a data e a hora manualmente ?
pois no relatorio que fiz a busca tive que fazer um join entre 2 tabelas a de entrada e a de saida, pra pegar os horarios que ele entrou e que saiu..
$result_cursos = "SELECT *,date_format(`horasaida`,'%d-%m-%y às %Hh%i') FROM tb_entrada INNER JOIN tb_saida ON tb_entrada.nome = tb_saida.nome";
ate ae ta certo ta trazendo os dados pra mim no form..
a questao e inserir os dados la na hora que libero a entrada e a saida..
mas o horario la do servidor ta 3 horas adiantada.. ja tentei fazer isso aki..
// DEFINE O FUSO HORARIO COMO O HORARIO DE BRASILIA
date_default_timezone_set('America/Sao_Paulo');
// CRIA UMA VARIAVEL E ARMAZENA A HORA ATUAL DO FUSO-HORÀRIO DEFINIDO (BRASÍLIA)
$dataLocal = date('d/m/Y H:i:s', time());
no começo das paginas dentro das tags. <? ?>
mudei o campo horaentrada pra agora retornou a data e hora do servidor 3 horas a mais..
horaentrada
datetime
Não
CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMPEle ta gravando errado porque ta te devolvendo a data no formato errado,
2017-06-01 00:43:03.787655
Olha esse monte de números onde ta o segundo, o formado H:i:s é pra trazer algo como '12:10:23', tira esse time() da função.
$dataLocal = date('d/m/Y H:i:s');
A respeito do fuso horário, você acesso ao panel do servidor certo ?
Joga a função [date_timezone_get](https://secure.php.net/manual/pt_BR/function.date-timezone-get.php) e veja qual fuso ta setado no server, e verifique se ele está recebendo a sua tentativa de mudar de fuso.
Mas pode ser também alguma configuração do panel do servidor.
<?php
//Query da inserção
//executando a inserção
$resultado_insert = mysqli_query($conexao, $sql_insert);
//verificando se a inserção fio feita com sucesso