Jump to content
JoaoVM

[Resolvido] Verifica se já existe

Recommended Posts

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>";}
}

Share this post


Link to post
Share on other 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>";

		}

Edited by JoaoVM

Share this post


Link to post
Share on other 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]

Edited by HappyHippyHippo

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

Share this post


Link to post
Share on other 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 ;)

Edited by JoaoVM

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.