Ir para conteúdo

POWERED BY:

Arquivado

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

Patrick xD

com query

Recommended Posts

eu montei esta query pra inserir um valor mais uma em um campo, mais eu preciso que ela insira em mais de um campo intede?

ai vai a query:

$sql = "INSERT INTO tabela(campo) SELECT campo+1 FROM tabela ORDER BY campo DESC LIMIT 1";

eu ja tenti assim:

 

$sql = "INSERT INTO tabela(campo,campo2) SELECT campo+1 FROM tabela ORDER BY campo DESC LIMIT 1,'valordocampo2'";

 

sem sucesso.

assim:

 

$sql = "INSERT INTO tabela SET campo= SELECT campo+1 FROM tabela ORDER BY campo DESC LIMIT 1, campo2='valordocampo2' ";

 

tem como alguem me ajudar?

 

 

pra escolhercer o que eu quero fazer é o seguinte.

eu quero addicionar um valor em um campo, apartir de um valor ja existente no banco de dados. :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE `teste` (

`id` int(11) NOT NULL auto_increment,

`cadastros` int(11) NOT NULL,

`campo2` varchar(200) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

 

 

a tabela.

 

e assim, eu queria copiar o id pra cadastros pra ficar o id anterior mais 1 saco?

 

e no campo 2 eu quero colocar qualquer informação saco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = "INSERT INTO tabela(campo,campo2) SELECT campo+1 FROM tabela ORDER BY campo DESC LIMIT 1,'valordocampo2'";

Claro que não funcionou, você tem que indicar os dois valores no SELECT, não inventar uma sintaxe! :(

 

Só ler a documentação...

http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eclesiastes, acho que a duvida do nosso amigo é tipo:

 

id: 1
nome: fulano de tal
id: 2
nome fulando de tal
acho que ele quer fazer tipo:

pegar o id anterior, que no caso é: 2 e incrementar 1:

 

2+1 = 3

para o proximo registro ficar.

id: 3
nome: fulano de tal
esta tarefa ja é estabelecido com o funçao AUTO_INCREMENT.

até ai tudo bem...

 

E agora é que vem o erro...

 

Patrick xD, voce usou duas intruções em uma mesma linha de cogido.. tipo:

INSERT e SELECT

voce ai quis inserir e selecionar ao mesmo tempo, e isto em uma mesma linha no mysql é impossivel...

a questao é: PRIMEIRO EU INSIRO E DEPOIS SELECIONO TIPO:

 

PHP
// variavel INSERIR

1 $sql = "INSERT INTO tabela(campo,campo2) VALUES($variavel1, $variavel2)";

 

// variavel SELECIONAR

2 $sql_select = "SELECT * FROM tabela ORDER BY campo DESC LIMIT 1";

e pronto....

na linha 1 temos uma inserção no banco de dados....

e na linha 2 selecionamos os dados da tabela... com o limite de 1 registo de baixo pra cima....

 

respodi a sua pergunta?

abraços!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E agora é que vem o erro...

 

Patrick xD, voce usou duas intruções em uma mesma linha de cogido.. tipo:

INSERT e SELECT

voce ai quis inserir e selecionar ao mesmo tempo, e isto em uma mesma linha no mysql é impossivel...

Não é impossível... http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

jeito de fazer eu sei que tem, eu ja li o manual.

 

mais a ideia é fazer tudo na mesma query. ><

 

porque a parada que eu quero é maior do que dois campos. ._.'

 

enfim, se poderem me ajudar fico grato. :]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi a dificuldade enfim, inserir dois valores pela sintaxe INSERT ... SELECT ?

 

INSERT INTO tabela (campo, campo2) SELECT valor, valor2 FROM outra_tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

o senhor não senti a dificuldade.

espera ai que eu te falo,

um valor vem da query e o outro vem do formulario. :}

 

logo não éos dois valores do formulario, logo não tem como eu selecionar eles. :]

 

logo a sua query não serve. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que, se fizer tudo separado consegue o que quer.

 

$var_form = $_POST['variavel'];
$var_sql = "SELECT * FROM tabela ORDER BY campo DESC LIMIT 1";
$sql = "INSERT INTO tabela(campo,campo2) VALUES($var_sql, $var_form)";

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

o senhor não senti a dificuldade.

espera ai que eu te falo,

um valor vem da query e o outro vem do formulario. :}

 

logo não éos dois valores do formulario, logo não tem como eu selecionar eles. :]

 

logo a sua query não serve. ;)

Não foi "senti", mas sim "entendi". O que muda bastante...

 

E como o amigo disse acima, apenas com uma correção:

 

INSERT INTO tabela VALUES ((select .... limit 1), $var);

A subquery tem que retornar 1 registro e deve estar entre parênteses.

 

 

 

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