Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta de Suma y Resta

Estas en el tema de Consulta de Suma y Resta en el foro de Mysql en Foros del Web. Holas a todos Queria hacerles una consultita, tengo un formulario en PHP y que cuando se envia, necesito que se actualice ya sea SUMA o ...
  #1 (permalink)  
Antiguo 12/07/2008, 14:40
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Pregunta Consulta de Suma y Resta

Holas a todos

Queria hacerles una consultita, tengo un formulario en PHP y que cuando se envia, necesito que se actualice ya sea SUMA o RESTA solo 1 campo de mi tabla en la BD.

Son noticias segun el usuario, entonces, al crear la noticia, queria saber la consulta para que se sume 1 al campo 'Envios' de ESE usuario.

ESpero me puedan ayudar.

Saludos
__________________
CabaSoft Networks
  #2 (permalink)  
Antiguo 12/07/2008, 22:22
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Respuesta: Consulta de Suma y Resta

Muy sencillo, pon la consulta SQL para ver cuales son los campos que necesitas sumar, o dentro de la sentencia SQL, coloca los valores a sumar para que se almacenen en el campo correspondiente.

OJO, al decir que coloques el código SQL, por favor NO pongas código de programación o variables que utilizas en tu código. Utiliza SQL puro.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 12/07/2008, 22:57
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Respuesta: Consulta de Suma y Resta

Holas

Mil gracias por responderme

Sinceramente, se casi NADA de SQL, la verdad vergonzoso.. pero estoy aprendiendo de un manual q vi por la red.

Código PHP:
"UPDATE registro SET resp=resp+1 where username='$loginUsername'" 
Registro es mi tabla de Usuarios en la BD
Resp es el campo que contiene la cantidad de mensajes del usuario
Username el campo de usuario claro

Espero que haya sido eso.. la verdad estoy medio perdido, pero contento que me respondan.

Saludos y Gracias
__________________
CabaSoft Networks
  #4 (permalink)  
Antiguo 13/07/2008, 00:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta de Suma y Resta

Para sumar es como dices, pero yo sólo te pongo SQL, sin las variable PHP y sin las comillas para recoger la consulta de actualización, es decir SQL puro y no embebido en PHP. Imagina que quieres actualizar tus propios datos.

UPDATE registro SET resp=resp+1 WHERE username = 'nicolyto77'

Para restar dentro de ese mismo campo

UPDATE registro SET resp=resp-1 WHERE username = 'nicolyto77'

Naturalmente, en PHP,donde aparece nicolyot77 tendrás que poner la variable que recoge los valores.
  #5 (permalink)  
Antiguo 13/07/2008, 00:29
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Respuesta: Consulta de Suma y Resta

Holas jurena

Muchisimas gracias!

Entonces, por lo que veo, si no me realiza la suma, es porque el problema es que estoy pasando mal la variable... ya que envia el Formulario pero al revisar los mensajes de cada uno, siempre estan en 0 pero el Formulario se envio, ya que la noticia si figura

Gracias y Saludos
__________________
CabaSoft Networks
  #6 (permalink)  
Antiguo 13/07/2008, 00:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta de Suma y Resta

Probablemente sea así, pero para comprobarlo en MySQL debes hacer la prueba en consola sin usar variables sino datos brutos, como te he puesto, o hacerla en el SQL de algún programa como PHPMyAdmin. Si funciona, tendrás que ver dónde esta el problema en tu programa, y para resolverlo deberás pedir ayuda en el foro PHP.
Comprueba lo que te digo sumando 1 en el campo resp del registro de un usuario, y si lo suma, ya sabes que tienes que buscar ayuda en el foro PHP.
  #7 (permalink)  
Antiguo 14/07/2008, 11:26
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
De acuerdo Respuesta: Consulta de Suma y Resta

Holas jurena!

Mil Gracias!!! No puedo creerlo, pero funciona de 10!!!

Ahora queria hacerte/les otra pregunta;

* Quiero hacer una Encuesta o Votacion de mis Noticias, entonces, dije que haciendo estas consultas podria serme efectivo.
De que manera me recomiendan que haga? O me darian una pista para comenzar, aunke sea la parte logica, luego el codigo me mato para hacerlo yo.

Mil gracias nuevamente!
__________________
CabaSoft Networks
  #8 (permalink)  
Antiguo 14/07/2008, 11:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta de Suma y Resta

Tienes, creo, dos opciones en lo que se refiere a la base de datos (en la variedad está el gusto). Si tú puntúas una noticia, puedes hacerlo de dos maneras:
creas una tabla con los campos idtablavotacion noticia votos
Cada vez que alguien vota, guardas un voto sumado si la noticia ya ha sido votada alguna vez. Esto lo usa mucha gente, pero te obliga a programar e insertar la suma de 1 si ya ha sido votada la noticia, o insertar un nuevo registro con el id de la noticia y 1. Luego podrás hacer otras cosas, pero al sumar los votos no puedes analizar los votos por procedencia, etc.
Otra opción es cargar cada vez que se vota en una tabla con el idvotacion, idnoticia, procedencia
Luego con funciones de agrupación, count, sum, avg, etc. sacas todo lo que quieras. Quizás supone una carga mayor en cuanto a volumen de datos, pero si no manejas muchos datos eso no supone tampoco un problema. A mí me gusta más, pero esto es sólo una opinión. Si haces eso, ya no tendrás que usar el SET votos = votos + 1.
  #9 (permalink)  
Antiguo 14/07/2008, 13:03
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Respuesta: Consulta de Suma y Resta

Hola jurena

Gracias nuevamente, ahora te queria hacer una consulta, que creo que estaria mal, pero no esta de mas que la veas si puede ser asi.

No pongo codigo, solo quiero ver si iria bien asi:

Tengo mis noticias cada una con su ID, Titulo, Puntuacion, Cantidad_Puntuacion

Entonces, creo unos 5 botones de opcion cada uno con su puntaje, por ejemplo el 1ro vale 1, el 2do vale 2, y asi.

Que segun la ID de la noticia, y segun el campo de opcion tildado al enviar el formulario haga el SET puntuacion=puntuacion+1 o algo asi... y que el campo Cantidad_Puntuacion siempre sume de a 1.

Al final, poner un Promedio que sea igual a la suma de los campos dividido Cantidad_Puntuacion?

Pero me cuesta saber que debo hacer con la puntuacion? Si debo sumarles a todos +1 o al campo de opcion que tenga 5 le debo poner puntuacion=puntuacion+5?

Espero resolver estas dudas... Gracias nuevamente

Saludos
__________________
CabaSoft Networks
  #10 (permalink)  
Antiguo 14/07/2008, 13:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta de Suma y Resta

A mí no me gusta eso. Yo preferiría
tabla noticias
idnoticia (PK) noticia

tabla puntuaciones
idpuntuacion (PK) refidnoticia (FK) fecha puntuacion


En cada puntuación asignas a puntuacion los puntos según el botón pulsado. Luego sacarás las sumas por noticia así (te lo pongo sin hacer el inner join entre tablas). Quiero saber la suma de votos de la noticia 5.
SELECT refidnoticia, sum(puntuacion) from puntuaciones where refidnoticia = 5 group by refidnoticia

Te permite muchas posibilidades (por fechas, media de votos por votación, etc.), pero tú eres quien decides.

Última edición por jurena; 15/07/2008 a las 07:31
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 21:59.