Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adson aquino

[Resolvido] Vários Insets

Recommended Posts

Estou com um problema neste código...

 


<?php
	
ini_set('display_errors','1');
ini_set('display_startup_errors','1');
error_reporting (E_ALL);

$host  ="localhost";

$senha ="senha";

$user  ="user";

$bd    ="db";

mysql_connect("$host","$user","$senha");

mysql_select_db("$bd");
	
	$data_atual = date('Y-m-d');
	$falta = 'Falta';
	
	$query = mysql_query("select e.empfullname from employees e left join info i on i.fullname = e.empfullname and i.data = '$data_atual' where data is null;");
	
	while($dados = mysql_fetch_array($query)):	
	$query2 = "insert into info (fullname, inout, data) values ('".$dados['empfullname']."', '".$falta."', '".$data_atual."')";
	endwhile;
?>

 

Ele está dando o select beleza mais o insert não está dando, tb não aparece nenhuma mensagem de erro mesmo eu colocando error_reporting (E_ALL); lá no topo, alguém poderia mim ajudar? valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é pq você nao esta executando o sql de insert apenas atribuindo ele para uma variavel...

 

 

     
        while($dados = mysql_fetch_array($query)):      
        $query2 = mysql_query("insert into info (fullname, inout, data) values ('".$dados['empfullname']."', '".$falta."', '".$data_atual."')");

Compartilhar este post


Link para o post
Compartilhar em outros sites

é pq você nao esta executando o sql de insert apenas atribuindo ele para uma variavel...

 

 

     
        while($dados = mysql_fetch_array($query)):      
        $query2 = mysql_query("insert into info (fullname, inout, data) values ('".$dados['empfullname']."', '".$falta."', '".$data_atual."')");

 

 

Mesmo colocando para executar não inseiru.

 


mysql_query("INSERT INTO info(fullname,data,inout) VALUES (".$dados['empfullname'].",'".$data_atual."','".$falta."');");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está com dois problemas:

1 - error_reporting (E_ALL) não está funcionando;

2 - Não consegue inserir no banco.

 

Tenho uma sugestão para a opção 2.

 

Fui simular aqui e precisei colocar date_default_timezone_set() para configurar o timezone padrão;

date_default_timezone_set('America/Sao_Paulo');

Tenta aí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está com dois problemas:

1 - error_reporting (E_ALL) não está funcionando;

2 - Não consegue inserir no banco.

 

Tenho uma sugestão para a opção 2.

 

Fui simular aqui e precisei colocar date_default_timezone_set() para configurar o timezone padrão;

date_default_timezone_set('America/Sao_Paulo');

Tenta aí...

 

 

O problema do insert está relacionado ao select, percebi aqui que o select não está mostrando os dados das duas tabelas que estou pedindo, só mostra de uma que é essa employees, o que pode ser Willian?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, tenho um código que ele verifica se o usuário tem registro na tabela na data atual se não tiver ele joga um certo, mais o problema é o seguinte no lugar de jogar um registro ele joga 10.000, o que pode ser? veja o código.

 

 


<?php

$host  ="localhost";

$senha ="senha";

$user  ="user";

$bd    ="db";

mysql_connect("$host","$user","$senha");

mysql_select_db("$bd");

	$data_atual = date('Y-m-d');
	
	$query = mysql_query("select e.empfullname,i.data,i.inout from employees e left join info i on i.fullname = e.empfullname and date(i.data)='$data_atual' where data is null;");
	
	
	$falta = 'Falta';

	while($dados = mysql_fetch_array($query)):
	
	//$sql = mysql_query("insert into info (fullname, inout, data) values ('".$dados['empfullname']."', '".$falta."', '".$data_atual."');");
	$sql = mysql_query("insert into info(fullname) select e.empfullname from employees e left join info i on i.fullname = e.empfullname and data='$data_atual'");
	endwhile;
?>


Compartilhar este post


Link para o post
Compartilhar em outros sites

Adson,

 

Eu uni o seu tópico por se tratar exatamente do mesmo código,

Evite abrir mais de uma thread sobre o mesmo assunto.

 

mais o problema é o seguinte no lugar de jogar um registro ele joga 10.000, o que pode ser?

$query = mysql_query("select e.empfullname,i.data,i.inout from employees e left join info i on i.fullname = e.empfullname and date(i.data)='$data_atual' where data is null;");
 while($dados = mysql_fetch_array($query)):
 $sql = mysql_query("insert into info(fullname) select e.empfullname from employees e left join info i on i.fullname = e.empfullname and data='$data_atual'");
 endwhile;

Veja só, você está fazendo um select ai para cada linha desse select você está fazendo um insert.

Você precisa tirar esse insert de dentro desse while, ai vai haver apenas um insert.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo João Batista agora deu certo, agora mim tira só mais uma dúvida, ele ta jogando só o nome do usuário no insert, como faço para jogar valores já defnidos junto com ele, tipo quero jogar mais dois campos, data_atual e inout='Falta' onde posso colocar isso, valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo quero jogar mais dois campos, data_atual e inout='Falta' onde posso colocar isso, valeu.

 

Certo, veja só:

 

$sql = mysql_query("insert into info(fullname,data_atual,inout) select e.empfullname,now(),'Falta' from employees e left join info i on i.fullname = e.empfullname and data='$data_atual'");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei do jeito que você postou mais não deu certo, ele não da o insert e tb não mostra erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$sql = mysql_query("insert into info(fullname,data_atual,inout) select e.empfullname,now(),'Falta' from employees e left join info i on i.fullname = e.empfullname and data='$data_atual'");

if ( !$sql ) printf( 'Erro[ %d ] na consulta: %s' , mysql_errno() , mysql_error() );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo agora João Batista, valeu pela força mano, olha como ficou e qual era o problema.

 


$sql = mysql_query("insert into info(fullname,`inout`,data) select e.empfullname,'Falta','$data_atual' from employees e left join info i on i.fullname = e.empfullname and data='$data_atual' where data is null;");

Coluquei Aspas em `inout` aí deu certo.

 

Valeu obg.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.