styr Posted September 26, 2013 at 06:49 PM Report #526156 Posted September 26, 2013 at 06:49 PM (edited) boa noite, Estou a tentar desenvolver um codigo simples de inserir varios nomes numa tabela, e até aqui tudo bem. O que se passa é que quero que quando estiver a inserir seja verificado se aquele nome ja existe, e caso exista acrescente 1, 2, etc a frente do mesmo nome de forma a nao haver dois nomes iguais. o actual codigo está assim: for ($i=0; $i<sizeof($array); $i++) { if ($array[$i]) { mysql_query(" INSERT INTO guest(nomeconv) VALUES( '".$array[$i]."', )"); } } Exemplo: quero inserir o nome: Joao. Caso exista quero que o novo campo seja "Joao 1", ou "Joao 2" caso o anterior tambem já exista. Qual a melhor soluçao ? Edited September 26, 2013 at 08:31 PM by brunoais geshi
Devexz Posted September 26, 2013 at 08:38 PM Report #526187 Posted September 26, 2013 at 08:38 PM (edited) podes primeiro fazer um update, algo do género UPDATE tblnomes SET total=total+1 WHERE nome = 'Joao' Depois verificas de houve alterações na base de dados: if(mysql_affected_rows() == 0) { // fazer insert } http://php.net/manual/pt_BR/function.mysql-affected-rows.php Edited September 26, 2013 at 08:39 PM by Devexz Contador de calorias: caloriaspordia.com
Mário Rui Melo Posted September 27, 2013 at 04:04 PM Report #526344 Posted September 27, 2013 at 04:04 PM Eu faria algo deste género. Antes de inserir, verificava quantos registos iguais existiam: $result = mysql_query("SELECT count(nomeconv) as total FROM guest where nomeconv='".$array[$i]."'") or die(mysql_error()); e, ao inserir, faria qq coisa assim: $total= ..... mysql_query("INSERT INTO guest(nomeconv) VALUES( concat('".$array[$i]."', ". ($total + 1)." ))")
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now