Gregorcs 1 Denunciar post Postado Abril 5, 2012 Galera, seguinte estou fazendo um cadastro de recursos de gravação, e nessa tabela de cadastro tenho vários itens como segue abaixo $data_inicial = $_POST['data_inicial']; $data_final = $_POST['data_final']; $hora_inicial = $_POST['hora_inicial']; $hora_final = $_POST['hora_final']; $diretor = $_POST['diretor']; $produtora = $_POST['produtora']; $camera = $_POST['camera']; $estudio = $_POST['estudio']; $cliente = $_POST['cliente']; $obs = $_POST['obs']; Porém não posso ter um cadastro duplicado da seguinte forma, eu cadastrar o mesmo recurso(estudio ou camera ou produtora ou diretor) no mesmo dia que já terá um selecionado. Já fiz código de cadastro duplicado antes, mas estou confuso em como fazer esse, não sei por onde começar, ou comparar. Por favor me ajudem!!!! Vlw abraços Compartilhar este post Link para o post Compartilhar em outros sites
Gregorcs 1 Denunciar post Postado Abril 5, 2012 na hora de cadastrar faça um select, se retornar mysql num rows > 0, você nao cadastra, mas se retornar 0 ae você cadastra, eh bem simples... na hora de cadastrar faça um select, se retornar mysql num rows > 0, você nao cadastra, mas se retornar 0 ae você cadastra, eh bem simples... Olá Igor, no caso de um item, seria simples, o que me confunde é que tenho que comparar as datas, em seguida preciso comparar os itens que mencionei PRODUTORA / CAMERA / ESTUDIO para ai sim poder liberar o cadastro caso esse item nao esteja sendo usado na mesma data e no mesmo horário Compartilhar este post Link para o post Compartilhar em outros sites
angelorubin 142 Denunciar post Postado Abril 5, 2012 Bom dia, Mas, qual a dificuldade em comparar mais de um campo no banco? Compartilhar este post Link para o post Compartilhar em outros sites
Gregorcs 1 Denunciar post Postado Abril 5, 2012 estou usando o seguinte código para armazenar a data [coode]$data = implode('-',array_reverse(explode('/',$_POST['data_inicial'])));[/code] e quando puxo ela do banco, uso o seguinte código: date_format(data_inicial, '%d/%m/%Y') AS data_inicial quando chamo para a listagem em uma tabela, ele roda legal, traz a data e mostra certinho, porém quando faço o select para a comparação não rola, segue o select $verifica = mysql_query("SELECT date_format(data_inicial, '%d/%m/%Y') AS data_inicial FROM tb_controle WHERE data_inicial = '$data_inicial' ") or die(mysql_error()); $contar = mysql_num_rows($verifica); if($contar > '0'){ echo '<script language="javascript">alert("Ops! Recurso já cadastrado!");</script>'; }else{ $cadastra = mysql_query("INSERT INTO tb_controle (data_inicial, data_final, hora_inicial, hora_final, diretor, produtora, camera, estudio, cliente ,obs, cadastrado_por ) values ('$data', '$data2', '$hora_inicial', '$hora_final', '$diretor', '$produtora', '$camera','$estudio', '$cliente' ,'$obs', '$nome') ") or die(mysql_error()); ok, como você esta armazenando as datas? varchar? se for use date e compara normal... Olá Angelo, é o seguinte, eu não sei a forma de escrever o código para pegar a data inicial e a data final, e verificar se nessa data estará disponível os itens que eu vou selecionar, como PRODUTORA ou CAMERA caso na data XX já tenha selecionado a CAMERA A eu nao poderei fazer o cadastro. Isso que eu não entendo, não sei se é fácil ou difícil mas nao entendo como escrever. Bom dia, Mas, qual a dificuldade em comparar mais de um campo no banco? Compartilhar este post Link para o post Compartilhar em outros sites
Gregorcs 1 Denunciar post Postado Abril 5, 2012 você nao respondeu minha pergunta...eh varchar o tipo de campo q você esta usando pra armazenar a data? você nao respondeu minha pergunta...eh varchar o tipo de campo q você esta usando pra armazenar a data?Verdade, estou usando o DATE, você acha melhor usar varchar?? nao, use date mesmo, e converta ele pro formato date do mysql e compara normal... Compartilhar este post Link para o post Compartilhar em outros sites
Gregorcs 1 Denunciar post Postado Abril 5, 2012 entendi...bom eu cheguei a um meio caminho, oo que acham?? o f*** é que além dele nao barrar o cadastro, ainda gera dois cadastros iguais, mas com ID diferente!!! if(isset($_POST['cadastrar_post']) && $_POST['cadastrar_post'] == 'cad' ){ $data_inicial = $_POST['data_inicial']; $data_final = $_POST['data_final']; $hora_inicial = $_POST['hora_inicial']; $hora_final = $_POST['hora_final']; $diretor = $_POST['diretor']; $produtora = $_POST['produtora']; $camera = $_POST['camera']; $estudio = $_POST['estudio']; $cliente = $_POST['cliente']; $obs = $_POST['obs']; $data = implode('-',array_reverse(explode('/',$_POST['data_inicial']))); $data2 = implode('-',array_reverse(explode('/',$_POST['data_final']))); $verifica = mysql_query("SELECT id, hora_inicial, hora_final, diretor, produtora, camera, estudio, cliente, cadastrado_por, obs, date_format(data_inicial, '%d/%m/%Y') AS data_inicial, date_format(data_final, '%d/%m/%Y') AS data_final FROM tb_controle") or die(mysql_error()); //$contar = mysql_fetch_array($verifica); while($contar = mysql_fetch_array($verifica)){ if (($contar['diretor'] == $diretor) && ($contar['produtora'] == $produtora)){ // Essa variavel $produtora_cadastrada['camera'] é uma array que vem do banco, ou seja, nela tem todos os registros da coluna 'camera' echo '<script language="javascript">alert("Ops! Recurso já cadastrado!");</script>'; } else { $cadastra = mysql_query("INSERT INTO tb_controle (data_inicial, data_final, hora_inicial, hora_final, diretor, produtora, camera, estudio, cliente ,obs, cadastrado_por ) values ('$data', '$data2', '$hora_inicial', '$hora_final', '$diretor', '$produtora', '$camera','$estudio', '$cliente' ,'$obs', '$nome') ") or die(mysql_error()); if($cadastra <= '0'){ header("Location:cadastro_controle.php"); }else{ header("Location:confirma_controle.php"); }; };}; }; nao, use date mesmo, e converta ele pro formato date do mysql e compara normal... Compartilhar este post Link para o post Compartilhar em outros sites
Gregorcs 1 Denunciar post Postado Abril 9, 2012 cara, você esta deixando a coisa mais enrolada q rolo de papel higienico tente algo como isto select * from tabela where diretor ='$_POST['direto']' and data = 'data' ... esse where add uma condicao, imagina você com 10.000, você vai dar um loop em 10.000 registros podendo encontrar um unico? estude a clausula where, e 'and' ou 'or' junto... Igor, dei uma fuçada e cheguei no seguinte resultado. $verifica = mysql_query("SELECT * FROM tb_controle WHERE camera = '$camera' AND estudio = '$estudio' AND diretor = '$diretor' AND produtora = '$produtora' AND data_inicial = '$data_inicial' AND data_final = '$data_final' ") or die(mysql_error()); while($contar = mysql_fetch_array($verifica)){ if($contar['data_inicial'] == $data_inicial){ echo '<script language="javascript">alert("Ops! Recurso não cadastrado!");</script>'; } else { $cadastra = mysql_query("INSERT INTO tb_controle (data_inicial, data_final, hora_inicial, hora_final, diretor, produtora, camera, estudio, cliente ,obs, cadastrado_por ) values ('$data', '$data2', '$hora_inicial', '$hora_final', '$diretor', '$produtora', '$camera','$estudio', '$cliente' ,'$obs', '$nome') ") or die(mysql_error()); if($cadastra <= '0'){ header("Location:cadastro_controle.php"); }else{ header("Location:planilha.php"); }; }; }; O problema é que ele ainda não cadastra!! desculpem pelas perguntas imbecis mas ainda sou novo em PHP... cara, você esta deixando a coisa mais enrolada q rolo de papel higienico tente algo como isto select * from tabela where diretor ='$_POST['direto']' and data = 'data' ... esse where add uma condicao, imagina você com 10.000, você vai dar um loop em 10.000 registros podendo encontrar um unico? estude a clausula where, e 'and' ou 'or' junto... Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Abril 9, 2012 nao precisa dar while, você vai gerar milhoes de registros repetidos continue com o select, abaixo faça if(mysql_num_rows($verifica)<=0)//ou seja e tiver 0 ou menos registros encontrados, ele da o insert... { // insert ... } PS so pq eh novato nao siginfica q nao deve ler o manual, pq eh novato sua maior obrigacao eh ler o manual, os mais experientes leem o manual e conhece mais coisas... PS2 existem paginas do manual em portugues, inclusive pra baixar... Compartilhar este post Link para o post Compartilhar em outros sites