Ir para conteúdo

POWERED BY:

Arquivado

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

fmda

Sistema Positivo e Negativo

Recommended Posts

Olá,

 

eu ja vi em alguns sites que tem 2 botoes 1 positivo outro negativo, quando clica adiciona mais 1 na soma la do DB, alguem tem algo parecido pra eu da uma olhada e criar algo pra mim ? procurando na sessao de laboratorio n vi nd parecido, e como meu nivel de php é iniciantes sera complicado sem ter apoio

 

quero algo simples, so a parte que quando clica add no banco mais 1, o resto eu dou um jeito

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, faz um SELECT dos dados e salva em uma varivel

ex:

 

$slct = mysql_query("SELECT campo FROM tabela WHERE id = '$id'");

$dados = mysql_fetch_array($slct);

 

$pontos = $dados['pontos'];

depois da um update adicionando um

 

$pontos ++;

 

$updt = mysql_querry("UPDATE tabela SET pontos = '$pontos'")

 

acho que isso resolve..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas tipo minha maior duvida ta sendo, é como fazer ele da este update quando ele clicar num texto por exemplo (desculpe, meu nivel é basico)

 

tipo, teria la no texto:

 

(clique aqui)

 

ae ele daria o update no banco +1, tem como quebrar meu galho e me mostrar como que ficaria o resto eu faço, ja que é baseado no mesmo estilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, o que você deve pensar é que ao clicar a página não pode recarregar, pois recarregar por apenas um voto é ruim.

Logo lhe recomendo a usar AJAX, da uma "googlada" de como funciona.

 

Ou seja, ao clicar no +1 você carregaria uma outra página sem que o cliente pudesse ver acrescentando assim o voto. (O mesmo para -1 )

 

Mas como você está começando, tente sem usar AJAX, depois vá dando uma melhorada.

 

outra questão seria:

Você tem noção de lógica de programação? (Se não, é melhor começar com ela e não com uma linguagem)

Caso tenha lógica, de uma estudada sobre AJAX e também na própria documentação do PHP, tente fazendo exemplos mais básicos, depois vá para sisteminhas de login, e vá dificultando aos poucos, depois você passa a fazer um sistema desses sem problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa Ajax pra mim sera dificil, em php tenho noção pois consigo editar algumas coisas, porem tenho que conhecer o codigo, mas sobre o carregar a pagina até que nao teria problema, n tem problema da um refresh na pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se não tem problema com refresh, fica extremamente simples.

 

Você teria uma página com dois links +1 e -1 cada um iria dar um UPDATE no banco, porém um iria somar e outro subtrair...

Cada link iria redirecionar para uma página que executaria a SQL e depois iria voltar.

 

Mas como eu disse, você tem que estudar lógica de programação, senão fica muito difícil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é a logica intendi, cada vez que clicar da update no banco, problema q n manho de php, teria algum exemplo pra eu ver, onde clica em um link e add?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica de programação em si, não é apenas entender este programa, me refiro a toda a lógica, binários, estruturas if/else if/else, coisas do tipo.

mas de uma googlada, provavelmente tem tutoriais ensinando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<a href="banco.php?do=add" title="adicionar">+1</a><br />
<a href="banco.php?do=del" title="remover">-1</a>

 

banco.php

// COMECE A EDITAR AQUI
$host = '';    //host mysql
$usr = '';     //usuário com permissões suficientes
$pwd = '';     //senha do usuário
$db = '';      //banco a ser utilizado
$tbl = '';     //tabela que será atualizada
$field = '';   //campo a ser atualizado
$where = '';   //cláusula de identificação ex.:'WHERE `id`=1'
// PARE DE EDITAR AQUI

if(!isset($_GET['do'])) die('Nenhuma ação a ser executada');
$conn = mysql_connect($host,$usr,$pwd) or die(mysql_error());
$db = mysql_select_db($db,$conn) or die(mysql_error());
$do = ($_GET['do'] == 'add')? '+': '-';
$query = sprintf('UPDATE `%s` SET `%s` = `%s` `%s` 1 %s',$tbl,$field,$field,$do,$where);
$sql = mysql_query($query,$db) or die(mysql_error());
if(is_resource($sql)) echo "Sucesso.";

Compartilhar este post


Link para o post
Compartilhar em outros sites

só esta dando "Nenhuma ação a ser executada", to fazendo algo errado

 

banco.php

<?php
// COMECE A EDITAR AQUI
$host = 'xxxxx';    //host mysql
$usr = 'xxxxx';     //usuário com permissões suficientes
$pwd = 'xxxxx';     //senha do usuário
$db = 'xxxxx';      //banco a ser utilizado
$tbl = 'pontos';     //tabela que será atualizada
$field = 'ptz';   //campo a ser atualizado
$where = '1';   //cláusula de identificação ex.:'WHERE `id`=1'
// PARE DE EDITAR AQUI

if(!isset($_GET['do'])) die('Nenhuma ação a ser executada');
$conn = mysql_connect($host,$usr,$pwd) or die(mysql_error());
$db = mysql_select_db($db,$conn) or die(mysql_error());
$do = ($_GET['do'] == 'add')? '+': '-';
$query = sprintf('UPDATE `%s` SET `%s` = `%s` `%s` 1 %s',$tbl,$field,$field,$do,$where);
$sql = mysql_query($query,$db) or die(mysql_error());
if(is_resource($sql)) echo "Sucesso.";
?>

teste.php|

<?php
require_once "banco.php";
?>

<a href="banco.php?do=add" title="adicionar">+1</a><br />
<a href="banco.php?do=del" title="remover">-1</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo clicando nos links?

 

a variável $where deve conter uma instrução SQL válida, não apenas o valor 1

 

$where = 'WHERE `id`=1';

Compartilhar este post


Link para o post
Compartilhar em outros sites

não há necessidade de chamar o banco.php, por isso está dando erro

 

é tinha razao nao chamei ele funcionou, porem qunado clica nos links da o erro

 

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/site/public_html/banco.php on line 17

 

17: $sql = mysql_query($query,$db) or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque

if(!isset($_GET['do']))

por

if(empty($_GET['do']))

 

E WHERE 1 é uma instrução válida...

 

Você pode fazer WHERE 1 AND nome = 'a' que funciona normalmente, porém é um tanto quanto inútil...

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.