Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
}>
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 !
Pelo o que eu entendi, acho que isso resolveria (não é baseado em sua função):
- Contar número de registros através daquela cidade;
- Verificar a quantidade;
- Se for menor que **1**, insere aquele nome no banco;
$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 ... /
}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 ObrigadoChegou 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
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 !
é isso que voce precisa ou entendi mal ?
flws