Foros del Web » Programando para Internet » PHP »

Insertar varios Registros

Estas en el tema de Insertar varios Registros en el foro de PHP en Foros del Web. Hola a todos, Hoy mi problema es que creo un numero determinado de filas en una tabla con un nombre de alumno y al frente ...
  #1 (permalink)  
Antiguo 29/04/2009, 07:24
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Insertar varios Registros

Hola a todos,

Hoy mi problema es que creo un numero determinado de filas en una tabla con un nombre de alumno y al frente un text para ingresar una nota, ahora bien mi problema es que necesito insertar todos los registros que se ven en la pagina a una tabla de mi base de datos y no se que hacer; pueden salir 10 como pueden salir 40 alumnos, lei que puedo crear un array con los text para obtener el dato pero el nombre o id de cada alumno como lo obtengo????. Pensaba en un text oculto pero??? no se como hacerlo, y ya no se me ocurre nada, gracis por su valiiosa ayuda,
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #2 (permalink)  
Antiguo 29/04/2009, 07:42
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Insertar varios Registros

A ver si entendi, tienes campos de formulario dinamicos en donde vas a insertar uno o muchos alumnos con sus respectivos datos a una tabla? Y quieres saber que hacer con el id del alumno? Es autoincrementable la columna id?
__________________
I see dead pixels
  #3 (permalink)  
Antiguo 29/04/2009, 08:07
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Insertar varios Registros

como obtienes esa tabla q aparece en tu pagina?? ya viene con los alumnos cargados?
si es asi puedes hacer efectivamente un array con los id y por cada uno ir guardando la nota q le corresponde
Cita:
creo un numero determinado de filas en una tabla con un nombre de alumno y al frente un text para ingresar una nota
saludines!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #4 (permalink)  
Antiguo 29/04/2009, 09:45
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Insertar varios Registros

Cita:
Iniciado por harvestmoon Ver Mensaje
como obtienes esa tabla q aparece en tu pagina?? ya viene con los alumnos cargados?
si es asi puedes hacer efectivamente un array con los id y por cada uno ir guardando la nota q le corresponde


saludines!
Bueno los alumnos los traigo de una tabla con una consulta sql, a cada alumno le creo un textField para agregarle la nota; lo hago con un ciclo, asi:
while $rs=mysql_fetch_array($sql)){
echo "<td>".$rs['nombre']."</td>"."<td>"."<input type='text' id='nota[]' name='nota[]' />"."</tr>";

}

Gracias por la ayuda que me puedas brindar.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #5 (permalink)  
Antiguo 29/04/2009, 09:56
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Insertar varios Registros

pues entonces esta facil solo tienes q contar cuantos alumnos tienes en este momento es decir lo q te muestra en la pagina
ejemplo
juanito-------------------textfielddejuantio

pakito---------------------textfielddepakito

entonces ya sea con un foreach o for
vas insertando segun el ID de pakito y juanito
perdon vas updeteando jeje
pues me imagino q en la tabla de alumnos tienes el campo comentario
"update `BD`.`tabla` set `campo` = '$variable',
`otrocampo` = '$otravariable,' where `tabla`.`campo` =$IDdejuanitoodelpakito "

espero te sirva saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #6 (permalink)  
Antiguo 29/04/2009, 10:14
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Insertar varios Registros

Cita:
Iniciado por harvestmoon Ver Mensaje
pues entonces esta facil solo tienes q contar cuantos alumnos tienes en este momento es decir lo q te muestra en la pagina
ejemplo
juanito-------------------textfielddejuantio

pakito---------------------textfielddepakito

entonces ya sea con un foreach o for
vas insertando segun el ID de pakito y juanito
perdon vas updeteando jeje
pues me imagino q en la tabla de alumnos tienes el campo comentario
"update `BD`.`tabla` set `campo` = '$variable',
`otrocampo` = '$otravariable,' where `tabla`.`campo` =$IDdejuanitoodelpakito "

espero te sirva saludines!!
Pero tengo el problema de saber cual es el id de cada alumno, ya que los ids los traigo de una tabla no se como tomarlos para almacenarlos en la tabla con la nota asignadaa a cada alumno.

De verdad muchas gracias,
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #7 (permalink)  
Antiguo 29/04/2009, 12:49
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Insertar varios Registros

am am puedes hacer algo asi
Cita:
$resultado1=mysql_fetch_array($consulta1);
$nombre=$resultado1['id'];
am para empezar sabes hacer consultas en BD?
me refiero a sacar datos de campos recorrerlos y mostralos no?
por q asi como muestras el nombre del alumno
asi mismo puedes tomar el ID del alumno saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #8 (permalink)  
Antiguo 29/04/2009, 14:06
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Insertar varios Registros

No lei mucho el post porque me estoy llendo , pero por ahi te puede dar una mano este ejemplo !!!

Código PHP:
//Asumiendo que el id es auto_increment y la tabla se llamaria alumnos !!!

        
for ($i=1;$i<=$cant;$i++) // $cant serian los alumnos
        
{

        
mysql_query("insert into alumnos(nombre,dni,fecha_nac) values
        ('"
.$_POST["nombre_$i"]."','".$_POST["dni_$i"]."','".$_POST["fecha_nac_$i"]."', $conexion) or
        die("
Problemas en el guardar ".mysql_error());
        } 
Espero te sirva el ejemplo !!!

Saludos, Ricardo !!!
__________________
Mail: [email protected]
  #9 (permalink)  
Antiguo 29/04/2009, 23:25
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Insertar varios Registros

Hola y muchas gracias por responderme, aclaro:
ya se hacer consultas, manipular los datos, mostrarlos,actualizarlos, insertar y esas cosas pero mi problema es que luego de traer los datos de una tabla con su respectivo textfield necesito guardar tantos registros como se hallan cargado en la paginapero ademas requiero guardar el id de cada alumno, que no se como traerlo, y menos se me ocurre como insertar todos los datos a una tabla. gracias nuevamente a todos por su valiosisima colaboracion
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #10 (permalink)  
Antiguo 30/04/2009, 03:48
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Insertar varios Registros

Aver si no entendi mal ... Vos tomas los datos de la BDD, y mostras en una tabla
ID*****NOMBRE*****NOTA

Lo que queres hacer es que te deje ingresar una nota por cada alumno ? y hacer un update con n alumnos?

Saludos, Ricardo ...

Puede ser algo asi ?

Código PHP:
<table id="tablita">
<tr>
<td>ID</td>
<td>NOMBRE</td>
<td>NOTA</td>
</tr>
$cont=0;
$alumnos = mysql_query("select * from alumnos",$conexion);
 while($alumnos = mysql_fetch_array($alu)){ 
//mostramos los datos, yo les puse un nombre_y un numero que seria el indice que vos necesitas para identificarlo
<tr>
<td><input type="text" size="4"  name="id" value="<?echo $alu['id']?>" disabled/></td>
<td><input type="text" size="30"  name="nombre_<?echo $cont?>" value="<?echo $alu['nombre']?>"/></td>
<td><input type="text" size="10" name="nota_<?echo $cont?>" value="<?echo $alu['nota']?>"/></td>
</tr>
$cont++;
}
</table>
Y para hacer el update seria algo asi :
Código PHP:
resu mysql_query("select * from alumnos",$conexion);
$i=1;

while(
$rows=mysql_fetch_array($resul))
{
        
mysql_query("update alumnos set
                    nombre='"
.$_POST["nombre_$i"]."',
                    where id='$rows[id]'"
,$conexion) or
        die(
"Problemas en el update:".mysql_error());
$i++;
    } 
Espero que sea lo que andas buscando, creo que muy lejos no debe andar !!!

Saludos, Ricardo !!!
__________________
Mail: [email protected]

Última edición por colote; 30/04/2009 a las 04:12 Razón: ej
  #11 (permalink)  
Antiguo 30/04/2009, 07:36
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Insertar varios Registros

mira solo una pregunta en tu tabla de alumnos tienes un campo donde se guarde la nota??
o es otra tabla donde lo quieres guardar
serias tan amable de mostrar tus tablas??
saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #12 (permalink)  
Antiguo 30/04/2009, 10:25
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Insertar varios Registros

Cita:
Iniciado por harvestmoon Ver Mensaje
mira solo una pregunta en tu tabla de alumnos tienes un campo donde se guarde la nota??
o es otra tabla donde lo quieres guardar
serias tan amable de mostrar tus tablas??
saludines!!

Hola, gracias por responder mira mis tablas estan tratadas asi:

Alumnos
doc
nombre
edad

Grupos
idg
grupo
aula

Notas
doc
idg
nota
descripcion_nota
fecha

Estas tablas estan relacionadas entre si en la tabla Notas en la cual es donde tengo el problema para guardar los datos provenientes del formulario. El formulario le lleno con los datos de la tabla alumnos.

Esopero y me puedas ayudar y de antemano muchas gracias,
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #13 (permalink)  
Antiguo 30/04/2009, 10:43
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Insertar varios Registros

pues miraa para mostrar tu haces el select cierto?
despues con algo asi

Cita:
while ($rowreg = mssql_fetch_array($select, MSSQL_ASSOC)) {
$clave=$rowreg["clave"];//tomo los id de los alumnos
despues tu dices q por cada alumno q muestras pones un text (me gustaria ver como haces esta parte)entonces porcada id
q tienes harias un insert algo asi mira
Cita:
<input type="text" name="iddatos[]" value="valor">
ese es tu text

Cita:
foreach($_REQUEST['iddatos'] as $reg)
mysql_query("INSERT INTO tabla (campo,campo1 ,campo2 )VALUES ('$var','$var2', '$var3')
")or trigger_error(mysql_error(),E_USER_ERROR);
y con este vas insertando en la tabla notas
mira te dejo el link para q veas mas o menos como va
saludines!!!
http://www.forosdelweb.com/f18/ingre...-datos-694729/
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #14 (permalink)  
Antiguo 30/04/2009, 14:45
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Insertar varios Registros

De nuevo gracias por su ayuda, pero creo que no me explico bien.
Yo ya tengo los datos mostrados en un formulario, estos los traigo de una tabla y le creo un input para agregarle una nota en el formulario. Mi problema realmente es que no se como al presionar el boton del formulario insertar todos los datos del mismo formulario, como tomo el nombre y el id, y como tomo las notas que estan en los input. De nuevo gracias por su ayuda a todos.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #15 (permalink)  
Antiguo 30/04/2009, 15:41
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Insertar varios Registros

por eso creas un array de tus campos y el ID de donde muestras tus datos te sirve para contar cuantas veces vas a ionsertar

am mira creo q ni sikiera lo has intentado
como tienes el codigo para mostrar los datos??
saludines!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #16 (permalink)  
Antiguo 30/04/2009, 16:19
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Insertar varios Registros

Cita:
Iniciado por harvestmoon Ver Mensaje
por eso creas un array de tus campos y el ID de donde muestras tus datos te sirve para contar cuantas veces vas a ionsertar

am mira creo q ni sikiera lo has intentado
como tienes el codigo para mostrar los datos??
saludines!
Mira te muestro como traigo los datos y creo el formulario para ingresar las notas:
Esta es la cosnulta sql

$sql=mysql_query("SELECT notas.*,grupos.*,usuarios.* FROM notas,usuarios,grupos WHERE usuarios.doc=notas.doc and grupos.idg=notas.idg and notas.idg='$myg'"); ?>

Aqui el formulario
<form id="form1" name="form1" method="post" action="inser_notas.php">
<table width="482" border="1" align="center">
<tr>
<td width="322"><div align="center">Alumno</div></td>
<td width="144">Concepto:
<label>
<input type="text" name="textfield" id="textfield" />
</label></td>
</tr>
Hago el ciclo para los datos y el text
<?php while($rs=mysql_fetch_array($sql)){ ?>
<tr>
<td><?php echo $rs['nombre']; ?></td>
<td><input name="doc[]" type="hidden" id="doc[]" size="4" maxlength="4" value="<?php echo $rs['doc']; ?>" />
<label>
<input type="text" name="nota[]" id="nota[]"/>
</label></td>
</tr>
<?php } ?>
<tr>
<td colspan="2"><label>
<div align="center">
<input type="submit" name="button" id="button" value="Agregar Notas" />
</div>
</label></td>
</tr>
</table>
</form>

Ahora el php que toma los datos al dar clic en enviar las notas
<?php
foreach($_POST['doc'] as $valor){
echo $valor." - ".$_POST['nota']."<br />";
}

?>

Hasta ahi todo bien, mi problema es que las notas en el foreach me las imprime como array, no muestra ninguna valor solo la palabra array.

Estoy super preocupado por este error, estoy super necesitado, muchas gracias por su ayuda
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #17 (permalink)  
Antiguo 01/05/2009, 20:34
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Insertar varios Registros

De verdad gracias a todos ya por fin ya lo solucione; les dejo el codigo por si alguien esta en el mismo problema:

$myconcep=$_POST['des_nota'];
$myfecha=Date("Y-m-d");
$grupo=1;
$i=0;
foreach($_POST['doc'] as $valor){
$mynota=$_POST['nota'][$i];
if($sql=mysql_query("INSERT INTO notas (doc,idg,descripcion,nota,fecha) VALUES('$valor','$grupo','$myconcep','$mynota','$m yfecha')")){
echo "Se inserto: ".$valor." - ".$mynota."<br />";
}else{
echo "No se inserto: ".$valor." - ".$mynota."<br />".mysql_error();
}
$i++;
}
echo "Registros insertados";
?>
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #18 (permalink)  
Antiguo 01/05/2009, 21:09
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Insertar varios Registros

te dije q lo mas facil seria un ciclo jeje con un array felicidades suerte y exito en todo!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
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 01:33.