Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS

Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

29-07-2013 17:24

Olá, tudo bem?
Será que existe uma forma de adicionar dado ao dado existente na tabela sem sobrepor?
TABLE:
id_c----------cods----------bkpcods----------users
1-------------15-------------15-----------------brendo
2-------------15-------------15-----------------brendo
3-------------22-------------22-----------------brendo
4-------------22-------------22-----------------brendo
5-------------05-------------05-----------------mario
6-------------10-------------10-----------------mario

UPDATE:
$result = mysql_query("UPDATE comments SET cods='A$cods' WHERE users ='{$users}'");
RESULTADO (obtido):
id_c----------cods----------bkpcods----------users
1-------------A15-----------15-----------------brendo
2-------------A15-----------15-----------------brendo
3-------------A15-----------22-----------------brendo
4-------------A15-----------22-----------------brendo
5-------------05-------------05-----------------mario
6-------------10-------------10-----------------mario

RESULTADO (que eu preciso):
id_c----------cods----------bkpcods----------users
1-------------A15-----------15-----------------brendo
2-------------A15-----------15-----------------brendo
3-------------A22-----------22-----------------brendo
4-------------A22-----------22-----------------brendo
5-------------05-------------05-----------------mario
6-------------10-------------10-----------------mario

Depois eu queria retornar assim:

$result = mysql_query("UPDATE comments SET cods='$bkpcods' WHERE bkpcods ='{$bkpcods}'");
RESULTADO (obtido):
id_c----------cods----------bkpcods----------users
1-------------15-------------15-----------------brendo
2-------------15-------------15-----------------brendo
3-------------15-------------22-----------------brendo
4-------------15-------------22-----------------brendo
5-------------05-------------05-----------------mario
6-------------10-------------10-----------------mario

RESULTADO (que eu preciso):
id_c----------cods----------bkpcods----------users
1-------------15-------------15-----------------brendo
2-------------15-------------15-----------------brendo
3-------------22-------------22-----------------brendo
4-------------22-------------22-----------------brendo
5-------------05-------------05-----------------mario
6-------------10-------------10-----------------mario

Tem como fazer?
Agradeço!

MOVIDO PARA PHP
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

29-07-2013 17:30

Você está fazendo o UPDATE dentro do while? Ou seja, você faz uma consulta, depois joga o update dentro, atualizando baseado no cods e users atual.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

29-07-2013 18:09

Sim.

$usuario = $_GET["usuario"];          $sql = "SELECT * FROM comments WHERE users = '{$usuario}'";     $sql = mysql_query($sql) or die(mysql_error());     while($row = mysql_fetch_array($sql)){     $users = $row['users'];     $cods = $row['cods'];     $bkpcods = $row['bkpcods'];     } 

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

29-07-2013 18:32

A lógica está correta

UPDATE comments SET cods='A$cods' WHERE users ='{$users}' 

$cods e $users vem da linha atual, um diferente do outro.

Não entendi porque repete o $cods.

Dá um echo nesse $cods dentro do while, e confere se ele se repete em cada linha. Pode estar vindo de fora da consulta.

echo "UPDATE comments SET cods='A$cods' WHERE users ='{$users}'<br />";

0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

29-07-2013 20:53


echo "UPDATE comments SET cods='A$cods' WHERE users ='{$users}'<br />";

UPDATE comments SET cods='A15' WHERE users ='brendo'

OBS.: O cods 15 aparece para qq usuário... Com qq usuário que eu executo o script o nome do users é diferente, mas o cods é sempre A15
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

29-07-2013 21:15

Não há no código, antes da consulta esse $cods definido?

Se possível posta o sql da consulta para eu testar aqui.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 02:10

Eu me enganei o que aparece é o primeiro cods... e como eu fiz alguns teste sempre para o cods 15, é por isso que fica aparecendo o 15...
Os outros testes que eu fiz constatei que aparece o primeiro cods de cada user...
Exemplo: Se o primeiro cods do user joao é 31, fica tudo A31.

<?php session_start(); include "../config.php";     $usuario = $_GET["usuario"];          $sql = "SELECT * FROM comments WHERE users = '{$usuario}'";     $sql = mysql_query($sql) or die(mysql_error());     while($row = mysql_fetch_array($sql)){     $users = $row['users'];     $cods = $row['cods'];     $bkpcods = $row['bkpcods'];     }          //echo "UPDATE comments SET cods='A$cods' WHERE users ='{$users}'<br />";     //break;          $result = mysql_query("UPDATE comments SET cods='A$cods' WHERE users ='{$usuario}'");          if ( $result != 1 ) {     echo "<script language='javascript'>alert('Falha alterar cods!\\nTente novamente.');history.go(-1);</script>";     }     echo "<script language='javascript'>history.go(-1);</script>";     exit(); ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 09:24

O UPDATE deve estar dentro do while. Caso contrário, os valores da consulta serão perdidos.

$sql = "SELECT * FROM comments WHERE users = '{$usuario}'"; $sql = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($sql)){ $users = $row['users']; $cods = $row['cods']; $bkpcods = $row['bkpcods']; mysql_query("UPDATE comments SET cods='A$cods' WHERE users ='{$usuario}'");       } 

0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 13:27

Eu tentei desse jeito, mas todos resultam em A15:
15 15 > A15 15
15 15 > A15 15
15 15 > A15 15
17 17 > A15 17
17 17 > A15 17
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 14:49

Então todos os cods aparentemente estão com 15. Observa que $usuario é a referência, ou seja, a consulta só vai retornar dados desse usuário.

Confere se realmente tem cods diferente para o usuário que está sendo passado para query.

Faz novamente um echo do UPDATE dentro do while para confirmar

echo "UPDATE comments SET cods='A$cods' WHERE users ='{$usuario}'<br />"; 

0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 15:33

Qualquer usuário pode ter o cods=15.
O cods é o id da materia... Caso o usuário comente a matéria 15, um cods é criado para ele com o número 15.
Se eu quiser "camuflar" todos os cods do usuário brendo, eu teria que inserir um caracter a mais, estou usando a letra "A"...
Só que o brendo tem cods 17... O script está pegando o cods menor de brendo (que é o 15) e insere A15 para o cods 17, 22, 23, 32, 50 também...
Em vez de ficar A17, A22, A23, A32 e A50, está tudo assim: A15, A15, A15, A15, A15
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 16:22

Acho que você usou uma lógica meio complicada.

Acho que a tabela de comentários deveria ter:

id - auto increment
id_usuario
id_noticia
views
votacao "+1 ou -1"

Cada comentário para matéria, adicionaria uma nova linha, baseada no id_noticia.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 17:44

"comments" (cods) é a ligação para a tabela "materias" (id)
"comments" (users) é a ligação para a tabela "usuarios" (usuario)
"comments" (bkpcods) = eu to guardando o cods para caso eu não consiga resolver está "pitimba" rsrs
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 18:48

Realmente não entendi porque não está atualizando. Se quiser, faz um sql de INSERT e com alguns dados, para eu inserir no meu bd.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

30-07-2013 23:19

A tabela tá um pouco cheia, mas é pq eu fazendo muitos testes nela e alterando para outra coisa... rsrs
http://infosoftbh.ueuo.com/teste/comments_teste.zip

Obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

31-07-2013 08:42

Eu acho que achei o problema. Como você define que a alteração é para o usuario, acaba mantendo o cods fixo para todos.

O correto é:

mysql_query("UPDATE comments SET cods='A$cods' WHERE cods ='{$cods}'"); 

Dessa forma, altera o cods referente ao próprio $cods que está sendo listado.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

31-07-2013 15:32

É isso web... vc é genial, mas eu tive que colocar AND users = $usuario, senão mudaria de todos:

$usuario = $_GET["usuario"];      $sql = "SELECT * FROM comments WHERE users = '{$usuario}'"; $sql = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($sql)){ $users = $row['users']; $cods = $row['cods']; $bkpcods = $row['bkpcods']; $result = mysql_query("UPDATE comments SET cods='A$cods' WHERE cods ='{$cods}' AND users ='{$usuario}'"); } 

Agora para retornar está dando erro:

$result = mysql_query("UPDATE comments SET cods='$bkpcods' WHERE cods ='{$cods}' AND users ='{$usuario}'"); 

Só está retornando o primeiro cods do usuário:
A17 - 17 ----retorna---- 17 - 17
A15 - 15 ----permanece-- A15 - 15
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

31-07-2013 15:39

Qual erro?

Na verdade a consulta já vem baseada no usuário, ali na query você está definindo. Então a consulta só vai mudar do usuário da query.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 120
Sexo: Masculino

Adicionar dado ao dado existente na tabela sem sobrepor

31-07-2013 16:27

Erro é modo de falar...
OK.. entendi!
Agora está retornando tudo ok:

$usuario = $_GET["usuario"];      $sql = "SELECT * FROM comments WHERE users = '{$usuario}'"; $sql = mysql_query($sql) or die(mysql_error()); while($row = mysql_fetch_array($sql)){ $users = $row['users']; $cods = $row['cods']; $bkpcods = $row['bkpcods']; $result = mysql_query("UPDATE comments SET cods='$bkpcods' WHERE cods ='{$cods}' AND users ='{$usuario}'"); } 

Obrigado pela força cara, vc é 11!
Deus te ilumine!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17236
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Adicionar dado ao dado existente na tabela sem sobrepor

31-07-2013 17:16

Boa.
0
Criar site grátis Wix
Hospedagem de sites Hostgator
Tem um script legal em HTML, CSS, PHP, HTML, JavaScript, jQuery? Poste e compartilhe com os usuários do fórum
:rock:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado