Ir para conteúdo

Arquivado

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

Matheus Lucca Carmo

[Resolvido] Verificação e inserção do dado

Recommended Posts

Olá pessoal .

 

Gostaria ajuda para criar uma função que verifica se um determinado dado existe no BD , se ele existir , o formulário é enviado normalmente , se não existir , o formulário é enviado e o dado é inserido no banco de dados . A ideia é que as pessoas vão inserindo os dados para que depois as outras pessoas possam aproveita-los . Exemplo : Eu entro no site e insiro uma cidade que não existe , ae quando outra pessoa da mesma cidade for se cadastra ela vai digitando e ai ja aparece no campo e a pessoa seleciona .

 

Fiz essa função para verificar os dados

 

function VerificarInstituicao($instituicao) {

 

$ArrayRegistro["table"] = "instituicao";

$ArrayRegistro["fields"] = "int_id" ;

$ArrayRegistro["where"] = "int_nome" ;

$r = $this->crud->read($ArrayRegistro) ;

 

return $r;

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o voce tenha que fazer um SELECT antes para verificar se o registro existe, tipo:

 

SELECT * FROM instituicao WHERE nome = $NOME_QUE_VEM_DO_FORM

 

Se o SELECT retornar alguma coisa é por que o nome da instituição já existe, ai voce não faz nada no BD.

 

é isso que voce precisa ou entendi mal ?

 

 

 

 

 

 

 

flws

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o voce tenha que fazer um SELECT antes para verificar se o registro existe, tipo:

 

SELECT * FROM instituicao WHERE nome = $NOME_QUE_VEM_DO_FORM

 

Se o SELECT retornar alguma coisa é por que o nome da instituição já existe, ai voce não faz nada no BD.

 

é isso que voce precisa ou entendi mal ?

 

 

 

 

 

 

 

flws

sim , isto mesmo , se já existir , apenas pega o campo do dado. Porém , se não existir , precisa ser inserido no banco o que foi digitado entendeu ?

 

Muito Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo o que eu entendi, acho que isso resolveria (não é baseado em sua função):

  1. Contar número de registros através daquela cidade;
  2. Verificar a quantidade;
  3. Se for menor que 1, insere aquele nome no banco;
  4. Se não, faz o script que você quiser.

$sql = mysql_query("SELECT COUNT(*) AS verificacao FROM tabela WHERE cidade = '$cidade'") or die (mysql_error());
$conta = mysql_result($sql, 0, "verificacao");

if($conta == 0){
/* Se não achar nada, insere no banco */
$sql = mysql_query("INSERT INTO tabela (cidade) VALUES ($cidade)") or die (mysql_error());
}else{
/* Se achar um registro ... */
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até ai tudo bem ! Porém , eu preciso passar o dado para a chave estrangeira da tabela , que é um id .. Dae eu tenho que pegar o nome , inserir na tabela e completar o campo com o id .. entende ? E esse é o graaande problema

 

Poderia ser desta maneira ?

 

function VerificarInstituicao($instituicao) {
    $sql = mysql_query("SELECT COUNT(*) AS verificacao FROM instituicao WHERE instituicao = '$instituicao'") or die (mysql_error());
    $conta = mysql_result($sql, 0, "verificacao");

    if($conta == 0){
    /* Se não achar nada, insere no banco */
    $sql = mysql_query("INSERT INTO instituicao VALUES ($instituicao)") or die (mysql_error());
    $sql = mysql_query("SELECT int_id FROM instituicao") ;
    $sql = mysql_query("INSERT INTO participantes (int_id) VALUES ($sql)") ;

 

Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Chegou perto, ficaria algo desse tipo

 


function VerificarInstituicao($instituicao) {
    $sql = mysql_query("SELECT COUNT(*) AS verificacao FROM instituicao WHERE instituicao = '$instituicao'") or die (mysql_error());
    $conta = mysql_result($sql, 0, "verificacao");

    if($conta == 0){
	/* Se não achar nada, insere no banco */
	$insere_ins = mysql_query("INSERT INTO instituicao VALUES ($instituicao)") or die (mysql_error());
	$id_ins = mysql_insert_id(); //aqui vai retornar o ID do ultimo insert feito no banco, que foi o comando acima
	$insere_par = mysql_query("INSERT INTO participantes (int_id) VALUES ($id_ins)") ;
}
}

 

ve se é isso ai.

 

 

 

 

 

 

 

flws

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por enquanto o código deu certo ! Agora está dando um problema com o banco de dados , assim que eu resolver já posto aqui !

 

Obrigado por terem me ajudado !

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.