Jump to content

Update a duplicar


xploit
 Share

Recommended Posts

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).

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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  😉

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.