Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/08/2012, 16:35
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Insertar array de datos en tabla

Cita:
Tengo una base de datos organizada de la siguiente manera:

ID - Nombre - Puntos
Eso no es una BBDD, es una tabla...
Cita:
Para hacer eso primero obtengo todos los registros y verfico cuantos puntos tiene cada ID, por lo que me queda una lista:
Si lo que necesitas es actualizar los puntos que figuran en la tabla para cada ID, entonces lo que corresponde hacer es un UPDATE y no un INSERT.
INSERT correspondería si usases una tabla relacionada con la de los usuarios o lo que sea que represente esa primera, donde guardes una entrada por cada conjunto d epuntos sumados en una sesión de lo que sea que se trate.
En realidad, si los puntos corresponden a partidos, exámenes o sesiones, lo correcto es que cada puntaje adicionado se administre en una tabla separada, la cual debe contener la fecha del partido, sesión o examen. De esa forma puedes determinar cuando y quien obtivo los puntos, en qué sesión y podría definirse también contra quienes fue la cosa.
En otras palabras, da la impresión de que el modelo de datos no está correctamente definido.

Finalmente:
- En el UPDATE se puede usar WHERE, en el INSERT no.
- El INSERT puede ser múltiple, es decir, hacer N inserts en una misma sentencia, en el UPDATE no (a menos que el mismo valor se aplique a todos los que cumplan con el WHERE).
- La construcción de un INSERT multiple se hace en la programación. Sólo te puedo decir que debe hacerse así:
Código MySQL:
Ver original
  1. INSERT INTO tabla VALUES (valores), (valores), (valores), ..., (valores);
donde "..." representa los N grupos que debes crear dinamicamente.
- Cada grupo entre paréntesis debe ser de la misma cantidad de campos y ser los mismos que tiene la tabla, o de lo contrario habrá que indicar cuáles se insertan.
- En el UPDATE sólo puedes hacerlo con un UPDATE por cada valor a actualizar, y tiene el formato:
Código MySQL:
Ver original
  1. UPDATE tabla SET campo = campo + valornuevo
  2. WHERE idtabla = idactualizar;

El cómo se construye esto en PHP es OFF TOPIC de este foro. Lo debes consultar con el Foro de PHP (http://www.forosdelweb.com/f18/)

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)