xploit Posted May 18, 2009 at 03:26 AM Report #264985 Posted May 18, 2009 at 03:26 AM Boas pessoal, estou com um problema ao fazer este query em php: $ID="teste"; $host='localhost'; $user='isad'; $pass='as'; $db='administracao'; mysql_connect ($host,$user,$pass); mysql_select_db($db); $save=mysql_query("UPDATE revendedores SET ass=ass+1 WHERE id='".$ID."' "); if($save==1){echo "sucesso!";} Agora porque raio ele soma 2 valores na tablea, em vez de somar apenas 1 valor a mais como está no query? Na tabela o ass está configurado como BigInt(20).
subkiller Posted May 18, 2009 at 08:36 AM Report #264997 Posted May 18, 2009 at 08:36 AM boas nao tenho a certeza mas acho que isso nao é correcto... tenta fazer: $ass++; $save=mysql_query("UPDATE revendedores SET ass = $ass WHERE id='".$ID."' ");
xploit Posted May 18, 2009 at 02:04 PM Author Report #265062 Posted May 18, 2009 at 02:04 PM é correcto é tenho a certeza absoluta, o que não é correcto é ele adicionar o que está na tabela mais 2, em vez de fazer a soma de apenas mais 1 ao que está na tabela... isso é que nao percebo : \
mohican Posted May 18, 2009 at 03:40 PM Report #265079 Posted May 18, 2009 at 03:40 PM também acho a sugestão do subkiller mais correcto... já testas-te?
xploit Posted May 18, 2009 at 03:50 PM Author Report #265084 Posted May 18, 2009 at 03:50 PM não é o mais correcto para o efeito desejado, mas já testei e é exactamente a mesma coisa faco um SELECT do revendedor tiro o dado "ASS" e faco o Update com esse dado +1, e acontece exactamente o mesmo..
softklin Posted May 18, 2009 at 06:14 PM Report #265132 Posted May 18, 2009 at 06:14 PM Tens esse campo ass com auto_increment, valor default, ou algo do género? Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.
xploit Posted May 18, 2009 at 07:03 PM Author Report #265148 Posted May 18, 2009 at 07:03 PM tem o valor default defined para 0. mas já o pus sem valor default, ja o pus NULL e já pus em vez de big Int pus em varchar.. e mesmo assim nada.. continua a fazer a soma de 2 em vez de fazer só de um... o código não está dentro de um while nem nada nao percebo..
mohican Posted May 18, 2009 at 07:30 PM Report #265160 Posted May 18, 2009 at 07:30 PM tenta fazer essa query no mysql, sem ser através do php.. e vê se funca, se não funcar é pq a query ta mal
_JR_ Posted May 19, 2009 at 07:45 AM Report #265272 Posted May 19, 2009 at 07:45 AM Não me parece que esteja alguma coisa errada aí. Verifica se o código não "corre" duas vezes...
cyclop Posted May 19, 2009 at 08:19 AM Report #265281 Posted May 19, 2009 at 08:19 AM goto:_JR_ "Quando eu for grande quero ser como o Celso"
xploit Posted May 19, 2009 at 01:53 PM Author Report #265358 Posted May 19, 2009 at 01:53 PM Executei este código no phpmyadmin e funciona normalmente, se executar no PHP faz a soma de +2 em vez de +1.. ja experimentei no meu server local e remoto é a mesma coisa.. ?
xploit Posted May 19, 2009 at 02:00 PM Author Report #265362 Posted May 19, 2009 at 02:00 PM o código está certinho, não há nada de errado é o que vos mostrei, penso nao ter erros, nao está dentro de nenhum while ou foreach, é exactamente esse código num ficheiro teste.php, abro a página, ele faz o update, so que soma +2.. será um bug no mysql? lol
subkiller Posted May 19, 2009 at 02:26 PM Report #265371 Posted May 19, 2009 at 02:26 PM tu dizes para ele fazer o update onde o id for igual a teste... sera que o erro pode estar ai?
cyclop Posted May 19, 2009 at 02:54 PM Report #265388 Posted May 19, 2009 at 02:54 PM fazes o update... e como vês que adicionou mais 2? posso te garantir que o php nao adiciona mais 2 "Quando eu for grande quero ser como o Celso"
cyclop Posted May 19, 2009 at 02:56 PM Report #265389 Posted May 19, 2009 at 02:56 PM Executei este código no phpmyadmin e funciona normalmente, se executar no PHP faz a soma de +2 em vez de +1.. ja experimentei no meu server local e remoto é a mesma coisa.. ? Btw... como o próprio nome indica PHPmyadmin é feito em PHP, alguma coisa estas a fazer mal 😉 "Quando eu for grande quero ser como o Celso"
xploit Posted May 19, 2009 at 03:52 PM Author Report #265405 Posted May 19, 2009 at 03:52 PM Amigos eu agradeço as vossas ajudas mas vamos la perceber uma coisa... CODIGO SQL: -- phpMyAdmin SQL Dump -- version 3.1.3 -- http://www.phpmyadmin.net -- -- Máquina: localhost -- Data de Criação: 19-Mai-2009 às 16:50 -- Versão do servidor: 5.1.32 -- versão do PHP: 5.2.9-1 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de Dados: `administracao` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `revendedores` -- CREATE TABLE IF NOT EXISTS `revendedores` ( `id` longtext NOT NULL, `dados_pessoais` longtext NOT NULL, `username` longtext NOT NULL, `password` longtext NOT NULL, `saldo_vendas` bigint(100) NOT NULL DEFAULT '0', `saldo_referidos` bigint(100) NOT NULL DEFAULT '0', `referido` text, `innosite` bigint(20) NOT NULL, `innocard` bigint(100) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Extraindo dados da tabela `revendedores` -- CODIGO PHP: $ID="teste"; $host='localhost'; $user='isad'; $pass='as'; $db='administracao'; mysql_connect ($host,$user,$pass); mysql_select_db($db); $save=mysql_query("UPDATE revendedores SET innosite=innosite+1 WHERE id='".$ID."' "); if($save==1){echo "sucesso!";} É exactamente assim que tenho os códigos e a estrutura da tabela REVENDEDORES.. Executo o código php e dá me uma entrada de +2 em vez de +1.. não está dentro de while nem de foreach é exactamente isto que está ai não há erros de código não a nada.. pelo menos que eu saiba.. basta verem o que ta escrito ai e verem se existe algum erro penso que não.. Mas tudo indica que está tudo bem .. apenas se eu executar o query no PHPMYADMIN/ (Executa comando(s) SQL) e escrever exactamente isto: UPDATE revendedores SET innosite=innosite+1 WHERE id='teste' Funciona na perfeição... se executar no PHP adiciona +2 valores em vez de adicionar +1 como faz directamente no mysql...
estrucida Posted May 19, 2009 at 04:42 PM Report #265423 Posted May 19, 2009 at 04:42 PM Executei este código no phpmyadmin e funciona normalmente, se executar no PHP faz a soma de +2 em vez de +1.. ja experimentei no meu server local e remoto é a mesma coisa.. ? estás a usar firefox? Há duas coisas infinitas: o Universo e a estupidez humana... embora não haja certezas quanto ao primeiro.
softklin Posted May 19, 2009 at 05:41 PM Report #265440 Posted May 19, 2009 at 05:41 PM Sem ofensa, mas é um problema muito curioso mesmo. A instrução SQL é válida e dá diferentes resultados... Estás a fazer include desse ficheiro? ou de outro qualquer nesse contexto? Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.
cyclop Posted May 19, 2009 at 06:52 PM Report #265452 Posted May 19, 2009 at 06:52 PM Como chamas o Código PHP? "Quando eu for grande quero ser como o Celso"
xploit Posted May 19, 2009 at 07:16 PM Author Report #265461 Posted May 19, 2009 at 07:16 PM O "código php" tem o nome de teste.php, e estou a usar o firefox.. executo o teste.php, e faço uma visualização no phpMyadmin, e vejo lá 2 valores adicionados em vez da soma real, que é +1, depois faco a query directamente no phpMyadmin no painel SQL para executar as querys, executo vou verificar novamente e vejo que so adicionou o correcto, que é +1.. O ficheiro teste.php não tem includes classes funcoes nada é exactamente como está ai como voçês veem.. é estranho realmente mas é real, adiciona sempre +2 em vez de +1.... Há coisas inexplicaveis 😉
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