Ir para o conteúdo
JoaoVM

[Resolvido] Verifica se já existe

Mensagens Recomendadas

JoaoVM

Bom dia, tenho um problema com um código para verificar se já existe na base de dados, o que quero é que se não existir que insira, se existir da a mensagem de erro e se não tiver todos os campos preenchidos também dá a mensagem de erro...mas não está a funcionar..tenho o seguinte código, alguém pode dar uma olhadela?

if(isset($_POST['producao'])) {
if( !(empty($_POST['turno']) ||
  empty($_POST['hora']) ||
  empty($_POST['producao']) ||
  empty($_POST['tempo']) )
   )
 {

$colab = mysql_query("select num_colab from utilizadores where username='$user'");
$num_col = mysql_fetch_array($colab);

$hora_actual = date("H:i:s");
$data_actual = date("Y-m-d");
$turno = $_POST['turno'];
$refid = $num_col['num_colab'];
$linha = 126;
$time = $hora_actual;
$data = $data_actual;
$hora = $_POST['hora'];
$producao = $_POST['producao'];
$tempo = $_POST['tempo'];
$n_pessoas = $tot_reg['TOTAL'];
$temp_m_obra = $tempo * $n_pessoas;
$pph = ($producao / $temp_m_obra)*60;

$query = mysql_query("SELECT * FROM producao WHERE turno='$turno' and data='$data' and hora='$hora';");
$rowsn = mysql_num_rows($query);
if($rowsn == 0) {

$sql1="insert into producao (num_colab, id_linha, turno, data, hora, hora_producao, producao, tempo, n_pessoas, temp_m_obra, pph ) values ('$refid','$linha','$turno','$data','$time','$hora','$producao','$tempo', '$n_pessoas', '$temp_m_obra','$pph')";
}  else {

  echo "<script>alert(\"Registo desta hora já existe!!!\");window.location.reload(true);</script>";
}

if(!mysql_query($sql1)) { die('Error: ' . mysql_error());}

echo "<script>alert(\"Adicionado com Sucesso!!\");</script>";}

else {

echo "<script>alert(\"Algo correu mal, Preencha Todos os Campos!!\");</script>";}
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoaoVM

acontece que me dá sempre que já existe.. entretanto reparei que se calhar não fazia muito sentido e a forma do código e coloquei da seguinte forma, mesmo assim diz-me sempre que já existe e não existe porque experimentei com valores diferentes:

$query = mysql_query("SELECT * FROM producao WHERE turno='$turno' and data='$data' and hora='$hora' and producao='$producao';");
$rowsn = mysql_num_rows($query);
if($rowsn == 0) {


echo "<script>alert(\"Registo desta hora já existe!!!\");window.location.reload(true);</script>";

}  elseif(mysql_query($sql1)){

  $sql1="insert into producao (num_colab, id_linha, turno, data, hora, hora_producao, producao, tempo, n_pessoas, temp_m_obra, pph ) values ('$refid','$linha','$turno','$data','$time','$hora','$producao','$tempo', '$n_pessoas', '$temp_m_obra','$pph')";
  echo "<script>alert(\"Registo Adicionado com Sucesso!!!\");</script>";

			}
	else {

echo "<script>alert(\"Preencha Todos os Campos!!!\");</script>";

		}

Editado por JoaoVM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

???


if($rowsn == 0) { // <------ nenhum registo e diz que já existe ?
echo "<script>alert(\"Registo desta hora já existe!!!\");window.location.reload(true);</script>";
[/Code]

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JoaoVM

eu vi esta solução na net e experimentei, como não estava a chegar a lado nenhum pedi ajuda, entretanto já corrigi, mas surgiu outro problema, quando insere o registo da a mensagem de registo inserido mas não insere, e quando não preencho os campos não diz nada..

$query = mysql_query("SELECT * FROM producao WHERE turno='$turno' and data='$data' and hora_producao='$hora';");
$rowsn = mysql_num_rows($query);
if($rowsn > 0) {

	echo "<script>alert(\"Registo desta hora já existe!!!\");window.location.reload(true);</script>";
}  elseif(!mysql_query($sql1)){


	$sql1="insert into producao (num_colab, id_linha, turno, data, hora, hora_producao, producao, tempo, n_pessoas, temp_m_obra, pph ) values ('$refid','$linha','$turno','$data','$time','$hora','$producao','$tempo', '$n_pessoas', '$temp_m_obra','$pph')";
  echo "<script>alert(\"Registo Adicionado com Sucesso!!!\");</script>";


							}
			else {


 echo "<script>alert(\"Preencha Todos os Campos!!!\");</script>";
}

enganei-me aqui numa coisa, meti a query de inserir dentro do if e fiz a condição do if com a query com ela lá dentro, obvio que não funcionava..agora só preencha todos os campos é que não está a dar.

$sql1="insert into producao (num_colab, id_linha, turno, data, hora, hora_producao, producao, tempo, n_pessoas, temp_m_obra, pph ) values ('$refid','$linha','$turno','$data','$time','$hora','$producao','$tempo', '$n_pessoas', '$temp_m_obra','$pph')";

$query = mysql_query("SELECT * FROM producao WHERE turno='$turno' and data='$data' and hora_producao='$hora';");
$rowsn = mysql_num_rows($query);
if($rowsn > 0) {

	echo "<script>alert(\"Registo desta hora já existe!!!\");</script>";
}  elseif(!mysql_query($sql1)){


  echo "<script>alert(\"Registo Adicionado com Sucesso!!!\");</script>";


							}
			else {


 echo "<script>alert(\"Preencha Todos os Campos!!!\");</script>";
}

já está, funciona tudo já ;)

fica a solução

if(isset($_POST['producao'])) {
if( !(empty($_POST['turno']) ||
  empty($_POST['hora']) ||
  empty($_POST['producao']) ||
  empty($_POST['tempo']) )
   )
 {


$colab = mysql_query("select num_colab from utilizadores where username='$user'");
$num_col = mysql_fetch_array($colab);


$hora_actual = date("H:i:s");
$data_actual = date("Y-m-d");

$turno = $_POST['turno'];
$refid = $num_col['num_colab'];
$linha = 126;
$time = $hora_actual;
$data = $data_actual;
$hora = $_POST['hora'];
$producao = $_POST['producao'];
$tempo = $_POST['tempo'];
$n_pessoas = $tot_reg['TOTAL'];
$temp_m_obra = $tempo * $n_pessoas;
$pph = ($producao / $temp_m_obra)*60;
$sql1="insert into producao (num_colab, id_linha, turno, data, hora, hora_producao, producao, tempo, n_pessoas, temp_m_obra, pph ) values ('$refid','$linha','$turno','$data','$time','$hora','$producao','$tempo', '$n_pessoas', '$temp_m_obra','$pph')";

$query = mysql_query("SELECT * FROM producao WHERE turno='$turno' and data='$data' and hora_producao='$hora';");
$rowsn = mysql_num_rows($query);
if($rowsn > 0) {

	echo "<script>alert(\"Registo desta hora já existe!!!\");</script>";
}  elseif(mysql_query($sql1)){


  echo "<script>alert(\"Registo Adicionado com Sucesso!!!\");</script>";


							}


			}			  else {


 echo "<script>alert(\"Preencha Todos os Campos!!!\");</script>";
			}
}

Obrigado HappyHippyHippo ;)

Editado por JoaoVM

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.