Foros del Web » Programando para Internet » PHP »

insertar registros

Estas en el tema de insertar registros en el foro de PHP en Foros del Web. estuve buscando con el buscador pero no pude encontrar nada que me responda a esto que necesito.... lo que quiero es insertar varios datos en ...
  #1 (permalink)  
Antiguo 07/04/2003, 14:14
 
Fecha de Ingreso: diciembre-2001
Ubicación: Rosario (SF)
Mensajes: 193
Antigüedad: 16 años
Puntos: 0
insertar registros

estuve buscando con el buscador pero no pude encontrar nada que me responda a esto que necesito....
lo que quiero es insertar varios datos en una base (uso php y mySQL)
lo que encontre es poner en la sentencia sql "insert... values..."
pero como tengo que insertar varios valores y lo simplificaria con un bucle no se como hacerlo
lo que quiero es lo que en ASP seria

toda la conexion y apertura de la tabla...
sql="select * from tabla"
rs.open....
...
...

(esto es lo que quiero)
for i=1 to n
rs.addnew
rs("campo1")=request("input1")
rs("campo2")=request("input2")
rs("campo3")=request("input3")
rs.update
next

esto es lo que quiero hacer pero no se como seria en php necesitaria saber como se abriria la tabla en ese caso y como inserto todos los registros del bucle
muchisimas gracias
__________________
Saludos

Facu
  #2 (permalink)  
Antiguo 07/04/2003, 14:29
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Pues me temo que con PHP standard solo tienes la opcion de poner la sentencia SQL entera. Aunque yo no lo veo tan complicado.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 07/04/2003, 14:37
 
Fecha de Ingreso: diciembre-2001
Ubicación: Rosario (SF)
Mensajes: 193
Antigüedad: 16 años
Puntos: 0
josemi como complicado puede ser que no sea, pero tengo un formulario con 4 input por linea y son 18 productos entonces seria mucho mas simple hacer un for de 1 a 18 y cargar 4 campos...

el tema es el sigiuiente, de php no se nada y no se si se puede hacer esto o si es lo que tengo que hacer, ya que no se si hago 18 insert con una consulta no queda demasiado lento
seria asi lo que tengo que poner???

for ($i=1; $i<=18; $i=$i+1)
{
$sql="INSERT INTO archivos (fecha, nombre, iduser,idseccion) VALUES ('$fecha', '$foto', '$iduser', '4')";
$result=mysql_query($sql);
}

gracias...
__________________
Saludos

Facu
  #4 (permalink)  
Antiguo 07/04/2003, 15:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 16 años
Puntos: 126
Pues .. lento? si/no .. depende .. Lo que son "18" registro no es nada para Mysql xD ..

Cuando tu haces en ASP lo que estabas poniendo internamente haces 10 consultas a tu BD .. lo que pasa que no lo ves tan claro como cuando trabajas con PHP y Mysql ..

Desde PHP via mysql_query() se ejecuta una instrucción por llamada a la función ... Por ende . no podrías hacer por ejemplo el SQL concatenado de tus inserts usando como delimitador un ; (punto y coma) .. pues Mysql solo ejecutaría la primera instrucción Insert ..

Lo que tiens que es usar Arrays en la definición de tu formulario .. algo tipo

Código PHP:
<form ....>
<
input type="text" name="fecha[]">
<
input type="text" name="foto[]">
<
input type="text" name="iduser[]">
</
form
para que al recibirlos en el script que haga el proceso en tu BD puedas usar un bucle como el que has puesto:

(definir arrays [] se toma como indice inicio el 0 .. puedes cambiarlo si quieres a 1 y numerarlos secuencialmente ..) he de ahí el $i=0 del bucle for ..)

Código PHP:
for ($i=0$i<=18$i++)
{
$sql="INSERT INTO archivos (fecha, nombre, iduser,idseccion) VALUES ('$fecha[$i]', '$foto[$i]', '$iduser[$i]', '4')";
$result=mysql_query($sql);

Si cuentas via count() el total de un array de los que tienes en el formulario (ejemplo fotos[] ..) puedes hacer un formulario completamente dinamico sea 1 o N registros en tu formulario ...

Tambien el iduser .. no sé como lo estaras tratando .. pero Mysql tiene sus campos Autonumericos para que sea Mysql quien otorgue el iduser correlativo segun hagas INSERT's a tu tabla ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 07/04/2003, 15:47
 
Fecha de Ingreso: diciembre-2001
Ubicación: Rosario (SF)
Mensajes: 193
Antigüedad: 16 años
Puntos: 0
gracias cluster y josemi por haberse molestado en responderme, creo que con lo que me dijeron me saque las dudas de como resolverlo y de como trabaja php a diferencia de asp, que es lo que yo uso normalmente
un abrazo
Facu
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 11:27.