Foros del Web » Programando para Internet » PHP »

insertar multiples registros

Estas en el tema de insertar multiples registros en el foro de PHP en Foros del Web. hola: alguine me podria decir por que este codigo no me actualiza, solo me manda el mensaje de que ha fallado la conexion por favor ...
  #1 (permalink)  
Antiguo 21/04/2009, 12:06
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
insertar multiples registros

hola:
alguine me podria decir por que este codigo no me actualiza, solo me manda el mensaje de que ha fallado la conexion

por favor estoy desesperada

<?php
$array_debi= $_POST['debilidad'];
foreach ($array_debi as $campo) {
//echo $campo;
}

$array_fue= $_POST['fuerza'];
foreach ($array_fue as $campo1) {
//echo $campo1;
}

if (!empty($_POST["into"]))
{
$query = "UPDATE dia SET fuerzas= '$campo1' WHERE anio='$anio_consulta' ";
//$resultado= mysql_query($query) or die(mysql_error());
$tabla1= mysql_query($query) or die(mysql_error());
echo $tabla1;

}else{
echo "fallo al modificar";
}
?>
  #2 (permalink)  
Antiguo 21/04/2009, 12:14
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: insertar multiples registros

pues checa tu conexion a la bd, donde la incluyes?
  #3 (permalink)  
Antiguo 21/04/2009, 12:16
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

pues mi conexion esta bien es por eso que no se done esta el error de por que no me actualiza... por favor Ayuda!!!!!!!!!!!!!!!!!!!!!!!!!
  #4 (permalink)  
Antiguo 21/04/2009, 12:24
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: insertar multiples registros

que error es el que te marca?? ese es todo el codigo???
  #5 (permalink)  
Antiguo 21/04/2009, 12:26
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

si ese es todo el codigo, y pues no me marca ningun error uncamente me dice "fallo al modificar", es decir el else, de mi ciclo if
  #6 (permalink)  
Antiguo 21/04/2009, 12:32
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: insertar multiples registros

mmm PS nadamas quiere decir que el $_POST['into'] llega vacio jeje si te imprime fallo a modificar checa porque llega vacio o pon el codigo de donde envias la informacion de into
  #7 (permalink)  
Antiguo 21/04/2009, 12:40
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

gracias.. ya me guarda la informacion pero, ahora me actuliza el ultimo registro introducido y me cambia todos los demas por el valor del ultimo por que esta haciendo esto.

Tengo un arreglo y quiero que me lo actulice pero por que me cambia los valores por el ultimo registro introducido??
  #8 (permalink)  
Antiguo 21/04/2009, 12:41
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: insertar multiples registros

asi si no t da ningun fallo es por que no esta mal, si te manda el else es por que no cumple con lo del if es solo eso, checa tu variable si llega con algo imprimelo antes del if y si no llega checa desde donde la mandas
  #9 (permalink)  
Antiguo 21/04/2009, 12:46
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

alguna idea de por que me actuliza el ultimo registro y cambia todos los demas por el valor que tiene ese ultimo registro que si actualiza, por favor...
  #10 (permalink)  
Antiguo 21/04/2009, 12:50
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: insertar multiples registros

de donde sacas la variable $anio_consulta que es la que esta en el WHERE por que es por eso que t cambia todos por que no respeta el where
  #11 (permalink)  
Antiguo 21/04/2009, 12:55
 
Fecha de Ingreso: enero-2008
Mensajes: 163
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: insertar multiples registros

Pues lo que pasa es lo siguiente:
cuando le das el foreach va recorriendo el array hasta llegar el ultimo y como estas diciendo que campo1 es = al array pero campo1 es una variabel normal no es un array entonces se queda registrado el ultimo valor, tendrias que meter el if dentro del foreach, ahora al momento de actulizar para que no se te actulizen todos tienes que ser especifica respecto al where no se si tienen algun id ya que aunque metas el if dentro del foreach se te quedaria el ultimo detodas maneras, como te digo tienes que poner algun id o algo para que los actulices espeficamente a cada uno de ellos ya que estas diciendo que te actulice las fuerzas donde sea el anio_consulta que me imagino que deben de ser varios suponiendo que son 4
el foreach empesaria y diria actulisar fuerzas donde sea el año x y como son 4 los que tienen ese año cada ves que de un ciclo el for los actulizaria a todos entonces pues como dije antes el resultado final seria que te quedaran actulizados con el ultimo valor del campo1 o del arreglo como lo quieras ver
  #12 (permalink)  
Antiguo 21/04/2009, 13:05
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

Pues mira soy novata en todo esto y pues entendi mas o menos lo que me quieres ecir pero me podrias dar un ejemplo de como solucionarlos por favor, el id que manejo es autoicrmente y por eso utilizo el anio para hacer solo esa referencia..
  #13 (permalink)  
Antiguo 21/04/2009, 13:46
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 15 años
Puntos: 2
Respuesta: insertar multiples registros

Mira, es muy simple

cuando recorres el arreglo del que supuestamente asignas todos los valores a $campo1, en realidad estás asignandole un valor cada vez, por lo tanto al final $campo1 sale con el ultimo valor del arreglo y cuando modificas el valor en la tabla solo te afecta con el ultimo valor de $campo1.
Además que la forma en la que quieres imprimir la tabla no creo que sea la correcta.

Aquí te envío un código que está listo para pegar y sustituir ese que pusiste.
pruébalo y dime que tal.


Código PHP:
<?php
$array_debi
$_POST['debilidad'];
foreach (
$array_debi as $campo) {
//echo $campo;
}

if (!empty(
$_POST["into"]))
{

$array_fue$_POST['fuerza'];
//Con el foreach recorres todo el arreglo y asignas el valor a $campo1.
foreach ($array_fue as $campo1) {

//inserto el valor actual de $campo1 en la tabla.
$query "UPDATE dia SET fuerzas = '$campo1' WHERE anio='$anio_consulta' ";

$tabla1 mysql_query($query) or die(mysql_error());
}
//Ya terminaste de insertar todos los valores en la base de datos.
//Ahora tienes que hacer una nueva consulta e imprimir todos los valores de la tabla.  
// Es incorrecto hacer esto:   echo $tabla1;
// de esa forma no imprimes la base de datos.

$queryobtenerdatos "SELECT * FROM dia WHERE anio='$anio_consulta'";
$resultqueryobtenerdatos mysql($queryobtenerdatos) or die(mysql_error());

//Ahora tienes que  hacer un ciclo para poder sacar los valores de la base de datos que ya están en $resultqueryobtenerdatos.
while ($unafiladedatos == mysql_fetch_assoc($resultqueryobtenerdatos)) {
 echo 
$unafiladedatos['fuerzas']." ".$unafiladedatos['anio'];
 echo
"<br>";
}
}
else
{
echo 
"fallo al modificar";
}
?>

Última edición por Ash_AM; 23/04/2009 a las 09:00
  #14 (permalink)  
Antiguo 21/04/2009, 13:47
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Como puedo poner el id del que me hablas...

gracias Ash _am lo voy a probar y te respondo alrato por que tengo que ir a clase...
muchisimas gracias..

Última edición por GatorV; 21/04/2009 a las 14:25
  #15 (permalink)  
Antiguo 21/04/2009, 14:12
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 15 años
Puntos: 2
Respuesta: insertar multiples registros

Está bien chiquitica12, pruebalo a ver y me dices luego.
  #16 (permalink)  
Antiguo 21/04/2009, 20:20
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

pues he provado el codigo que me enviaste y me sigue haciendo exactamente lo mismo me modifica todos los registros de acuerdo al ultimo que inserte... que puedo hacer para que esto ya no pase :(
  #17 (permalink)  
Antiguo 22/04/2009, 07:23
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 15 años
Puntos: 2
Respuesta: insertar multiples registros

Hola Chiquitica12

Evidentemente te va a suceder eso. Estás actualizando siempre el mismo campo a partir de una misma condición de que el anio en la tabla sea igual a $anio_consulta.

Te explico.

Tu tienes un arreglo($array_fue) con los siguientes valores: Ejemplo:

$array_fue = ('FUERZA1','FUERZA22','FUERZA333');

Y por supuesto la variable $anio_consulta debe tener tambien un valor, por ejemplo $anio_consulta = 2009;

Y entonces tienes en la tabla los siguientes datos:

fuerzas | anio
fuerzaa | 2008
fuerzab | 2009
fuerzac |2009
fuerzax | 2009

Entonces cuando recorras el arreglo $array_fue la variable $campo1 va ir tomando los siguientes valores:

1ra iteracion:
$campo1 = "FUERZA1";

Tabla resultante en iteracion 1 despues de aplicar la consulta UPDATE. (donde quiera que $anio_consulta = 2009 actualizo campo fuerzas de la tabla con $campo1)

fuerzas | anio
fuerzaa | 2008
FUERZA1 | 2009
FUERZA1 | 2009
fuerzax | 2007

2da iteracion:
$campo1 = "FUERZA22";

Tabla resultante en iteracion 2 despues de aplicar la consulta UPDATE. (donde quiera que $anio_consulta = 2009 actualizo campo fuerzas de la tabla con $campo1)

fuerzas | anio
fuerzaa | 2008
FUERZA22 | 2009
FUERZA22 | 2009
fuerzax | 2007

3ra iteracion:
$campo1 = "FUERZA333";

Tabla resultante en iteracion 3 despues de aplicar la consulta UPDATE. (donde quiera que $anio_consulta = 2009 actualizo campo fuerzas de la tabla con $campo1)

fuerzas | anio
fuerzaa | 2008
FUERZA333 | 2009
FUERZA333 | 2009
fuerzax | 2007

Y esta sería la tabla resultante.
Entiendes ahora por que te sucede eso.??

En fin, debes analizar bien lo que deseas hacer y el diseño de la base de datos para ver como puedes modificar los datos.

Espero hayas entendido, de todas formas si quieres puedes decirme lo que quieres hacer y de igual modo trataré de ayudarte.

Saludos.

Última edición por Ash_AM; 22/04/2009 a las 07:28
  #18 (permalink)  
Antiguo 22/04/2009, 19:28
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

Gracias por tomarte el tiempo de responder, y pues lo que quiero hacer es: Tengo 5 registros como bien mencionas que cumplen la condicion del año y me los muestra en una consulta que realizo mediante un arreglo ahora bien quiero que estos se actualicen pero con los datos que yo les estoy asignando a cada uno y no con los datos del ultimo registro que introduje.

Estoy enfrascada en esto y no encuentro una solicion. Si me puedes ayudar te lo agradeceria muchisimo. Por que el codigo que tengo creo que no funciona para lo que quiero hacer.
  #19 (permalink)  
Antiguo 23/04/2009, 08:40
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 15 años
Puntos: 2
Respuesta: insertar multiples registros

Bueno, como bien dices esos 5 rgistros al cumplir la condición del año se te actualizan, fue lo que quise decirte arriba, en el UPDATE, no puedes decir que entonces en el WHERE que sea igual a la misma fecha, ya que entonces, el UPDATe te actuaqliza TODOS los campos que cumplan la condición del año, es por eso que el sistema te actualiza 5 veces y te devuelve el valor del último valro que tiene el arreglo, para que tengas una mejor idea, en vez de adicionar varias fuerzas en el arrgeglo, es decir en $array_fue entrále una sola fuerza y verás que los 5 registros se te actualizan con ese único valor...
Tendrías que usar otra condición para actualizar los valores.

Para eso tendrías que asignarle un id a cada uno de los records y a cada valor nuevo relacionarlo con ese id, que podría ser en otro arreglo, a partir de los 5 registros que cumplen la condición.

Dime si entiendes...?

Saludos.
  #20 (permalink)  
Antiguo 24/04/2009, 17:25
 
Fecha de Ingreso: abril-2009
Ubicación: México
Mensajes: 114
Antigüedad: 15 años
Puntos: 0
Respuesta: insertar multiples registros

si te entiendo y muchas gracias pero la bronca es que no se como hacer la asignacion de los id a cada uno de los recods para realcionarlo a cada valor como me dices.... si tienes alguna idea de como hacerlo bienvenida sea...
  #21 (permalink)  
Antiguo 24/04/2009, 21:10
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: insertar multiples registros

recuerda que en el where debe ir un identificador único, por ejemplo si vas a quereer actualizar un sólo registro, lo más recomendable es que en la condición utilices la PK(ya que es única). en otros casos te actualizará todos los que coincidan con la condición.

suerte
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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 15:55.