Foros del Web » Programando para Internet » PHP »

Error codigo, sumar, restar campos numericos

Estas en el tema de Error codigo, sumar, restar campos numericos en el foro de PHP en Foros del Web. Hola, he estado leyendo un poco, para poder hacer un codigo, el cual se conecte a una bd, una vez dentro sume 1 a un ...
  #1 (permalink)  
Antiguo 03/01/2004, 19:35
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Error codigo, sumar, restar campos numericos

Hola, he estado leyendo un poco, para poder hacer un codigo, el cual se conecte a una bd, una vez dentro sume 1 a un campo y reste 1 a otro campo, he conseguido esto:

Código PHP:
<?
include("config.php"); 
$sql mysql_query("select nivel_acceso,general from usuarios where id='lasesion'");
$datos mysql_fetch_array($sql);
$query mysql_query("update from usuarios set nivel_acceso='$datos[nivel_acceso]+1'");
$sql mysql_query("select nivel_acceso,general from usuarios where id='lasesion''");
while(
$datos[general]-) {
mysql_query("update from usuarios set general='$datos[general]-1'");
} else {
echo 
" se acabo";
}
?>
El campo solo quiero que toque la fila perteneciente al usuario que este dentro de la session.

El codigo tiene algunos errores y no se si ire bien encaminado.

un saludo
  #2 (permalink)  
Antiguo 03/01/2004, 20:47
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
En realidad, leyendo el código no termino de entender qué es lo que quieres hacer.

Por ejemplo, ese while que tienes o no se ejecuta, o se ejecuta infinitamente porque la condición nunca cambia.

Otra cosa... no sé si los arrays se interpretan bien cuando los pones dentro deuna cadena... lo mejor es utilizar la concatenación con el operador punto (.)

Las sentencias INSERT o UPDATE, no necesitas guardarlas en variables.

Para descubrir errores más fácilmente, te recomiendo almacenar la cadena sql en una variable y luego pasar esa variable como parámetro del mysql_query()... así:
Código PHP:
$sentencia="update from usuarios set nivel_acceso='".$datos[nivel_acceso]+1."'";
mysql_query($sentencia); 
Si explicas un poco mejor qué es lo que uqieres hacer (no está demás un ejemplito), mejor...

Saludos
  #3 (permalink)  
Antiguo 04/01/2004, 06:53
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
Pues dentro de una tabla tengo varios campos, pero en este script solo van a participar dos de ellos, nivel_acceso y general.

nivel_acceso: tiene por defecto el valor 2. Y
General: tiene por decto el valor 0

Lo que me gustaria hacer es, al ejecutar un php, nivel_acceso disminulla 1, quedando asi: nivel_acceso-1. Y que general aumente 1, quedando asi: general+1

Si por defecto, nivel_usuario tiene 0 y general 2. Al ejecuar el php esos dos campos quedarian asi: nivel_usuario tendria 1 y general tendria 1. Si volvemos a ejecutar el php, nivel de usuarios tendria 2 y general tendria 0.

Una vez general fuera igual a 0, mostaria con echo un mensaje "se cabaron los creditos"

A todo esto tengo un problema, que estos campos no solo tiene una fila, si no que tiene muchisimas filas pertenecientes a muchos usuarios, estos usuarios tienen un id, id igual a un numero, el script funciana por sessiones, pues solo me gustaria que cambiase a nivel_usuario y general pertenecientes a esa session.
Eso es lo que intentaba con el script.

A ver si me podeis ayudar, un saludo.
  #4 (permalink)  
Antiguo 05/01/2004, 05:18
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
¿alguna idea?

  #5 (permalink)  
Antiguo 05/01/2004, 14:44
 
Fecha de Ingreso: febrero-2003
Mensajes: 753
Antigüedad: 14 años, 10 meses
Puntos: 2
ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:22.