Ir para conteúdo

POWERED BY:

Arquivado

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

Ecos

[Resolvido] Inserindo 3 registros de uma vez

Recommended Posts

Estou fazendo um simples insert, mas ele está inserindo 3 vezes no banco... já verifiquei o código várias vezes, mas não achei nada que colaborasse para isso.

Primeiro vou falar a sequência das páginas.

Eu tenho uma página... onde eu escolho o mês. Daí embaixo da ComboBox eu carrego uma página requisitada por AJAX em uma div, que carrega um calendário do mês escolhidos, com os dias. (Tipo uma agenda).

 

Daí eu clico no botão adicionar no meio do quadrado para eu adicionar uma tarefa para o dia. Quando abre o formulário no FancyBox e coloco o que eu quero e clico em Salvar, insere, porém, 3 vezes. Já dei um echo na variável e traz uma só vez a query.

 

Código abaixo que contém a query de inserção:

<?php

session_start();
include '../conexao.php';

$dia = $_POST['dia'];
$mes = $_POST['meses'];
$ano = $_POST['ano'];
$descricao = utf8_encode($_POST['descricao']);
$user = $_SESSION['idsrlub_usuarios'];

$sql = "select * from srlub_calendario where dia = $dia and mes = $mes and ano = $ano";
$exe = mysql_query($sql);
$row = mysql_num_rows($exe);

if($row == 3)
{
	echo utf8_encode("Você já possui três tarefas para este dia! Seu limite se esgotou!");
}
else
{
               ################################ Aqui féra ###########################################
	echo $sql = "insert into srlub_calendario (dia, mes, ano, descricao, idsrlub_usuarios)
			values($dia, $mes, $ano, '$descricao', $user)";
	$exe = mysql_query($sql);

	echo "Tarefa inserida com sucesso!";
	die();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ecos o erro pode estar na chamada desta pagina.

Com o código postado realmente não há nada de errado.

 

Poste pra gente a pagina que chama o php que executa a query.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php header("Content-Type:text/html; charset=iso-8859-1", true); ?>
<?php include '../conexao.php'; ?>
<?php include 'funcoes.php'; ?>

<?php
$mes = $_GET['mes'];
$user = $_SESSION['idsrlub_usuarios'];
if($mes == 1 || $mes == 3 || $mes == 5 || $mes == 7 || $mes == 8 || $mes == 10 || $mes == 12)
	$dias = 31;
elseif($mes == 2)
	$dias = 28;
else
	$dias = 30;

if($mes == 1){ $nome = "Janeiro"; $zero = 0; }
if($mes == 2){ $nome = "Fevereiro"; $zero = 0; }
if($mes == 3){ $nome = "Março"; $zero = 0; }
if($mes == 4){ $nome = "Abril"; $zero = 0; }
if($mes == 5){ $nome = "Maio"; $zero = 0; }
if($mes == 6){ $nome = "Junho"; $zero = 0; }
if($mes == 7){ $nome = "Julho"; $zero = 0; }
if($mes == 8){ $nome = "Agosto"; $zero = 0; }
if($mes == 9){ $nome = "Setembro"; $zero = 0; }
if($mes == 10){ $nome = "Outubro"; $zero = ''; }
if($mes == 11){ $nome = "Novembro"; $zero = ''; }
if($mes == 12){ $nome = "Dezembro"; $zero = ''; }

echo "   <span class='header2'>$nome</span><br/>";

echo "<table border='0' cellspacing='2' cellpadding='2' align='center' width='100%' class='margem_e_fonte'><tr>";

$ano = date("Y");	

# Monta semanas
echo "<tr>";
for($x=1;$x<8;$x++)
{
	$sem = diasemana("$ano-$zero$mes-$zero$x");
	echo "<td style='width:50px;color:navy;font-size:10px;font-family:verdana;text-align:center;'>
			$sem
		  </td>";
}
echo "</tr>";

$sql = "select * from srlub_calendario where idsrlub = $user";
$exe = mysql_query($sql);

# Monta Dias
$col = 0;
for($cont = 1; $cont < $dias + 1; $cont++)
{
	if($col == 7)
	{
		echo "</tr><tr>";
		$col = 0;
	}

	echo "<td valign='top' style='height:100px;border:1px solid #E7E7E7' id='$cont' onmouseout=\"mudaCor(this.id,'off')\" onmouseover=\"mudaCor(this.id,'on');\">
			<span style='text-align:left;font-size:10; color:#C7C7C7'> $cont </span>
			<br/>
                               ################ Aqui eu chamo a funcao Jquery #######
			<a title='Adicionar' href='#calendar' class='chamar'>
				<img src='images/mais.png' border='0' align='center' style='margin-top:25%;margin-left:42%;'/>
			</a>
		  </td>";
	$col++;
}
?>

 

jquery

	<script type='text/javascript'>
	jQuery(document).click(function() {
		$(".chamar").fancybox({
			'scrolling'		: 'no',
			'titleShow'		: false,
			'onClosed'		: function() {
				$("#error").hide();
			}
		});

		$("#calendar").bind("submit", function() {
			if ($("#descricao").val().length < 1 || $("#dia").val().length < 1) {
				$("#error").show();
				$.fancybox.resize();
				return false;
			}

			$.fancybox.showActivity();

			$.ajax({
				type		: "POST",
				cache	: false,
				url		: "salvar_calendario.php",
				data		: $(this).serializeArray(),
				success: function(data) {
					$.fancybox(data);
				}
			});

			return false;
		});
	});
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou tirar o script que chama a função jQuery de dentro do for

e executar pra ver se continua inserindo 3x?

 

Sei que precisa do for pra gerar os links mas faça este teste apenas

para verificar se ele para de inserir 3x caso ainda não tenha testado

desta forma.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então... mas não posso pq preciso daquele laço... mas se fosse isso era pra inserir 30 vezes ou 31 né.

 

Fiz o teste, mesmo assim inseriu 3 vezes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, PHP e MySQL não é porque pelo código postado não há loop no arquivo que salva os dados.

E não fez a mínima diferença você tirar a chamada de jQuery do loop.

 

Então eu acredito que seu problema esteja realmente no jQuery.

Só que eu não sou perito em jQuery para lhe ajudar neste caso.

 

Vou mover o tópico para a sessão apropriada.

Talvez o pessoal possa lhe dar uma força nesta questão por la.

 

Abraços.

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.