Actualizar puntos de usuario específico en base de datos

  • Autor Autor ZaySoft
  • Fecha de inicio Fecha de inicio
ZaySoft

ZaySoft

Gamma
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Hola a todos los foreros, antes de nada quiero decir que soy programador pero en aplicaciones windows y no tengo conocimientos en php, por lo tanto agradeceria a los que me puedan ayudar con este codigo.. que estoy seguro no tiene ninguna complicación para los que conozcan este lenguaje.

PHP:
mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '123456789'");

Utilizo esta función para sumar +1 al valor del usuario "123456789", y lo realiza sin ningún problema, el problema viene cuando quiero sumar 1 a otro usuario, es decir.. necesitaria que el valor 123456789 fuese una variable para poder llamarla y que sume a ese usuario.

He intentando varios metodo pero o daba error o se creaba un campo vacio, supongo que deberia ser algo asi..


PHP:
mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = $usuario");
 
gracias wsoulrc, no me da ningun error pero hace justo lo contrario suma 1 a todos excepto al que le digo. Algo debo de estar haciendo mal..

Tengo 1 tabla con:

- DNI
- NOMBRE
- APELLIDOS
- PUNTOS

y después en el código php tengo esto.


PHP:
<?php
	include('conexion.php');

	if($error==0){
  
 //ok mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '123456789'");
 $resultado =mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '{$usuario}'");

		if ($resultado==1){ 
			echo 'Se ha guardado correctamente';
		}else{
			echo mysql_error();
		}
 
		mysql_close($conexion);
	}
?>


Alguna sugerencia?
 
$usuario es el valor que tiene que recibir, por ejemplo el 1234567

Ahora al poner el die ($usuario) me sale el siguiente error:
syntax error, unexpected T_VARIABLE in /home/web/tmp/web/123/insert.php on line 7

la linea 7 es

PHP:
 $resultado =mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '{$usuario}'");
 
No me aparece nada, ni el mensaje de "Se ha guardado correctamente"
 
Puff.. entonces ya se cual es el problema.. y es que como aun no tenia creado el formulario en html pues lo he puesto de esta manera..

servidor.com/insert.php?usuario=000 y veo que no es el metodo.. probare como tiene que ser con un formulario y espero que sea ese el error. Gracias por todo wsoulrc.
 
Mediante el formulario sigue sin sumar. y cuando he puesto $_GET['usuario'] me da el siguiente error.

PHP:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
 
cierra comillas bien en el mysql_query ¬¬

PHP:
$resultado =mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = $_GET['usuario']");

no veo el problema :S ya te dije que no sabia de php..
 
Sin error, sin contenido por parte de usuario ya que no aparece nada,le paso el valor por el formulario pero sigue sin sumar.


Mi paciencia comienza a desesperarse.... asi que imagino que la tuya tambien
 
Hola compañeros,

Siento si me meto aquí donde no me llaman pero viendo el código expuesto por [MENTION=26631]xXxzDnxXx[/MENTION], creo que hay que resaltar una parte de dicho código. Veamos.

PHP:
<?php
    include('conexion.php');

    if($error==0){
  
 //ok mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '123456789'");
 $resultado =mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '{$usuario}'");

        if ($resultado==1){ 
            echo 'Se ha guardado correctamente';
        }else{
            echo mysql_error();
        }
 
        mysql_close($conexion);
    }
?>

La variable $resultado es una variable que contiene una consulta a la base de datos, eso es correcto pero a la hora de verificar si la consulta se ha realizado con éxito cometes un error. En el if() la variable $resultado solo arrojará valores TRUE o FALSE así que no se de donde sacas eso de if($resultado==1).

En todo caso podríamos realizar ese if() de esta manera:
PHP:
<?php if($resultado){ //Si $resultado es true
o
PHP:
<?php if(!$resultado){ //Si $resultado es false
o
PHP:
<?php if($resultado == TRUE){ //Si $resultado es true
o
PHP:
<?php if($resultado == FALSE){ //Si $resultado es false
.

Espero haberme explicado.

Un saludo,
Ángel.
 
Hola compañeros,

Siento si me meto aquí donde no me llaman pero viendo el código expuesto por [MENTION=26631]xXxzDnxXx[/MENTION], creo que hay que resaltar una parte de dicho código. Veamos.

PHP:
<?php
    include('conexion.php');

    if($error==0){
  
 //ok mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '123456789'");
 $resultado =mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '{$usuario}'");

        if ($resultado==1){ 
            echo 'Se ha guardado correctamente';
        }else{
            echo mysql_error();
        }
 
        mysql_close($conexion);
    }
?>

La variable $resultado es una variable que contiene una consulta a la base de datos, eso es correcto pero a la hora de verificar si la consulta se ha realizado con éxito cometes un error. En el if() la variable $resultado solo arrojará valores TRUE o FALSE así que no se de donde sacas eso de if($resultado==1).

En todo caso podríamos realizar ese if() de esta manera:
PHP:
<?php if($resultado){ //Si $resultado es true
o
PHP:
<?php if(!$resultado){ //Si $resultado es false
o
PHP:
<?php if($resultado == TRUE){ //Si $resultado es true
o
PHP:
<?php if($resultado == FALSE){ //Si $resultado es false
.

Espero haberme explicado.

Un saludo,
Ángel.


Gracias AngelSamuel, te has explicado perfectamente incluso lo he entendido para no tener idea de php, crees que el problema de no sumar el valor que le pasamos viene de $resultado?, como ya has podido leer si el usuario 123456789 lo pongo dentro del php va bien.

No suma
PHP:
$resultado =mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '{$usuario}'");

Suma 1 al usuario "123456789"
PHP:
$resultado =mysql_query("UPDATE usuarios SET puntos=puntos+1 WHERE dni = '123456789'");
 
Hola,

Claro, en este ejemplo el uso del 1 y del 0 sería lo evidente. Estás preguntando si 1 es igual a 1; en el caso que sea 1, será true pero si $var no es igual a 1, devuelve false.

En el caso de nuestro compañero está comparando true con 1 o false con 1.

Un saludo,
Ángel.

[MENTION=24169]AngelSamuel[/MENTION],

1= true
0= false

funcionaría correctamente si haces esto

PHP:
$var = 1;
	if($var==1) { echo "SI"; } else { echo "NO"; }

yo ya no se que decirle, yo veo bien el código, seguramente el error este en otro sitio
 
Atrás
Arriba