Ir para conteúdo

Arquivado

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

Décio Luiz Rocha

Inserindo Registros com Saltos e Pegar o Primeiro Registro vago

Recommended Posts

Olá à todos!!!
Estou com um probleminha em PHP+MYSQL para Joomla 2.5.

Preciso registrar em uma tabela e fiz uma função em que cria 3 registros, com saltos de 5 em 5, assim ficaria no campo: 1, 6, 11. Até ai tudo bem, mas, feito em PHP.

Montei a Função assim:

	//
	// Grava os Registros com Saltos definidos por "$salto_inscricao"
	//
	Function GravaRegs_Tempo( $Qt_Laco){
		$db = JFactory::getDbo(); 
		$user_record = new stdClass(); // Cria Objeto
		$salto_inscricao = 8;
		$conta = 1; 
		for ($i = 1; $i <= $Qt_Laco; $i++) {
			$fim = false;
			do {
				$db->setQuery('SELECT COUNT(*) AS quantidade FROM tt1_tempototal_tempo WHERE controle_inscricao = '.$conta.';');
				$resultado = $db->loadAssoc();
				// Se registro não existe (=0)
				if ($resultado['quantidade'] == 0) {
					if ($conta<> 0) {
						//$db->transactionStart();
						$query = $db->getQuery(true); 
						$user_record->numero_inscricao = $conta; // o Número da Laçada
						// Inserir o objeto na tabela de usuário. 
						$result = JFactory::getDbo()->insertObject('#__tempototal_tempo', $user_record); 
						$db->setQuery($result); 
						//$db->transactionCommit();
						$fim = true;
						$conta = $conta + $salto_inscricao;
					} else {
						$conta++;
					}					
				} else {
					// Senão, some um no contador
					$conta++;
					//mysql_free_result($result);
				}
			} while (! $fim );
			
		}

		return;
	}

O problema é que por algum motivo está repetindo os registros existentes no Banco, mesmo o código listando os registros.

 

Imaginando que o problema poderia ser o registro ainda estar no cache, tentei usar "db->transactionStart();" e "$db->transactionCommit();" pensando que isto poderia dar um "commit" a cada registro, mas, não deu certo.

 

Alguém sabe onde está o erro???

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.