PHP - Actualizar varios registros a la vez

   
Vista:

Actualizar varios registros a la vez

Publicado por Vladimir (14 intervenciones) el 06/12/2007 03:35:56
Saludos,

Tengo un formulario que me permite actualizar un registro a la vez que es el que le voy a mostrar a continuacion. Ahora quisiera saber como puedo hacer para que en vez de hacerlo uno a la vez me permita hacerlo por ejemplo de 50 registros a la vez por ejemplo.

Este formulario me funciona perfectamente pero solo me actualiza un registro a la vez..

formu_actualiza.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<html>
    <head>
        <title>Formulario de Entrada de Notas</title>
    </head>
 
<body>
    <H1>Asignar Notas</H1>
        <FORM ACTION="procesa.php" method="post">
            <TABLE>
                <TR>
                    <TD>Matricula:</TD>
                    <TD><INPUT TYPE="text" NAME="matricula" MAXLENGTH="30"></TD>
                </TR>
 
                <TR>
                    <TD>Nota:</TD>
                    <TD><INPUT TYPE="text" NAME="notas" MAXLENGTH="120"></TD>
                </TR>
            </TABLE>
 
            <INPUT TYPE="submit" NAME="accion" VALUE="Actualizar">
        </FORM>
    <hr>
    <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
        <TR>
            <TD> <B>Matricula</B></TD> <TD> <B>Notas</B> </TD>
        </TR>
 
<?php
            $link=mysql_connect("localhost", "root", "")
                  or die ("No se logro la conexion...");
 
            $db=mysql_select_db("data_liceo");
 
    $result=mysql_query("select * from aulas_profesores where aula = '1A' ",$link);
 
            while($row = mysql_fetch_array($result))    {
 printf("<tr><td> %s</td> <td> %</td></tr>", $row["matricula"], $row["notas"]);          }
 
            mysql_free_result($result);
            mysql_close($link);
 
?>
    </table>
</body>
</html>


procesa.php

1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
            $link=mysql_connect("localhost", "root", "") or die ("No se logro la conexion...");
 
            $db=mysql_select_db("data_liceo");
 
 
            $query=mysql_query("update aulas_profesores set notas='$_REQUEST[notas]' WHERE matricula='$_REQUEST[matricula]' ",$link)
                    or die("Error en el update");
 
                       header("Location: formu_actualiza.php");
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Actualizar varios registros a la vez

Publicado por Diego Romero (1450 intervenciones) el 06/12/2007 05:37:10
Me parece que la solución es que armes un formulario dinámicamente repitiendo 50 veces el mismo formulario que tienes aquí usando como name de los inputs:
NAME="matricula[]"
NAME="notas[]"

esto creará dos posiciones en el array $_POST que serás arrays con índices numéricos de base cero que puedes recorrer con un for dentro del cual podrás hacer múltiples updates de la base de datos:

1
2
3
4
5
6
7
8
$c = count($_POST["matricula"]);
if ($c > 0) {
for ($i=0; $i<$c; $i++) {
$matri = $_POST["matricula"][$i];
$nota = $_POST["notas"][$i];
$query=mysql_query("update aulas_profesores set notas='$nota' WHERE matricula='$matri' ",$link);
}
}

el ejemplo está bastante simplificado pero espero que te de idea de lo que podrías hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Si funciona

Publicado por GUILLERMO (1 intervención) el 10/12/2007 23:31:48
Gracias brother... si funciona ese codigo para actualizar varios registros. Para algunos que no entienden... el campo matricula es como si fuera el ID de la tabla y el campo notas... es el registro que se desea modificar...
Espero que les sirva como a mi.... byeeeeeeeeeee :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

fUNCIONA!!!

Publicado por Pablo (2 intervenciones) el 12/12/2007 01:53:52
Muchas gracias hice la prubea con multiples campos en una consulta multiple y todo salio a pedir de bocas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

fUNCIONA!!!

Publicado por Pablo (2 intervenciones) el 12/12/2007 01:53:53
Muchas gracias hice la prubea con multiples campos en una consulta multiple y todo salio a pedir de bocas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:fUNCIONA!!!

Publicado por pato (2 intervenciones) el 27/05/2009 05:52:02
pablo... me podrias decir ¿como te funcionó?, pq a mi no.

si me puedes enviar un codigo mas completo, te lo agradeceria.

muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por nidos (1 intervención) el 03/10/2008 09:45:27
MAESTRO DE MAESTROS, un groso!!, como puede ser que algo tan pero tan importante sea tan dificil de encontrar en la web!!! GRACIAS MAN... hace un mes que buscaba algo asi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por Jeanneth (1 intervención) el 05/11/2008 21:00:31
Disculpa por favor me podrias ayudar con el codigo para registrar 20 registros a la la vez recien estoy empezando con php y estoy un poco confundida por favor
please
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por pato (2 intervenciones) el 23/05/2009 19:00:43
hola, hice lo que indican, pero no me funcionó. No hace nada.
Lo que yo necesito es poder actualizar las notas de un curso, pudiendo ser varios campos por registro. Es muy similar a lo q han hablado, pero sigo sin entender.
Les mando lo que tengo para que me digan donde esta mi error por favor.

Gracias
// parte del formulario

1
2
3
4
<input name='curso[]' type="hidden" value="<?php echo $row_nota['curso'];" />
						<input name='det_cur[]' type="hidden" value="<?php echo $row_nota['det_cur'];" />
 
.. y asi con todos los otros campos


// procesa.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$c = count($_POST["curso"]);
if ($c > 0) {
for ($i=0; $i<$c; $i++) {
$curso = $_POST["curso"][$i];
$det_curso = $_POST["det_curso"][$i];
$ano = $_POST["ano"][$i];
$asignat = $_POST["asignat"][$i];
$cod_fun = $_POST["cod_fun"][$i];
$rut1 = $_POST["rut1"][$i];
$n1 = $_POST["n1"][$i];
$n2 = $_POST["n2"][$i];
$n3 = $_POST["n3"][$i];
$n4 = $_POST["n4"][$i];
$n5 = $_POST["n5"][$i];
$n6 = $_POST["n6"][$i];
$n7 = $_POST["n7"][$i];
$n8 = $_POST["n8"][$i];
$n9 = $_POST["n9"][$i];
$n10 = $_POST["n10"][$i];
$n11 = $_POST["n11"][$i];
$n12 = $_POST["n12"][$i];
$n13 = $_POST["n13"][$i];
$n14 = $_POST["n14"][$i];
$n15 = $_POST["n15"][$i];
 
$query=mysql_query("update tb_notas set nota1='$n1', nota2='$n2',nota3='$n3',
nota4='$n4',nota5='$n5',nota6='$n6',nota7='$n7',nota8='$n8',nota9='$n9',nota10='$n10',
nota11='$n11',nota12='$n12',nota13='$n13',nota14='$n14',nota15='$n15'
WHERE cod_cur ='$curso' and cd_det_curso ='$det_curso'
and ano_cur ='$ano' and cod_asigna ='$asignat' and cod_fun ='$cod_fun' and rut_alu ='$rut1'",$isch);
}
}
header("Location: reg_nota.php");

de verdad gracias por ayudarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por fernando delgado (1 intervención) el 16/11/2009 02:12:14
Busque mucho tiempo y nadie lo explica tan simple como ustede, muchas gracias.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por Serafin Ruiz (2 intervenciones) el 15/09/2011 04:54:24
tres minutos me tarde en implementar el ejemplo funciiona a la perfeccion me ha sido de gran utilidad dejo el codigo
archivo que muestra la consulta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
$host="localhost";
$user="123";
$password="123";
$db="calificaciones";
$enlace=mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);
$consulta=mysql_query("select * from examenes",$enlace);
echo "<table align='center' border='1'>";
echo "<tr><td>Matricula</td><td>Notas</td></tr>";
while($row=mysql_fetch_array($consulta))
{
    $matricula=$row["matricula"];
    $notas=$row["notas"];
 
    echo "<form action='actualizanotas.php' method='post'>";
 
    echo "<tr><td>$matricula<input type='text' name='matricula[]' value='$matricula'/></td><td>$notas<input type='text' name='notas[]' value='$notas'/></td></tr>";
 
 
}
echo "<input type='submit' value='Actualizar'/>";
echo "</form>";
echo "</table>";
?>
 
archivo que actualiza
<?php
$host="localhost";
$user="123";
$password="123";
$db="calificaciones";
$enlace=mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);
$c = count($_POST["matricula"]);
if ($c > 0) {
for ($i=0; $i<$c; $i++) {
$matricula = $_POST["matricula"][$i];
$notas= $_POST["notas"][$i];
$query=mysql_query("update examenes set notas='$notas' WHERE matricula='$matricula' ",$enlace);
}
}
 
 
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Actualizar varios registros a la vez

Publicado por Jairo D. (1 intervención) el 13/02/2014 21:54:12
Excelente codigo, muy facil de enteder y usar, muchas gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por Josue (1 intervención) el 01/01/2016 20:03:14
excelente gracias ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:funciona

Publicado por Serafin Ruiz (2 intervenciones) el 15/09/2011 20:48:06
el ejemplo si funciona solamente cuando la llave primaria es un solo campo
en micaso tengo una tabla con llave primaria formada por dos campos y no se como hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por Gabriel Viteri (1 intervención) el 06/09/2012 16:37:07
Que excelente solución super rápida de implementar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por Keli (1 intervención) el 04/06/2013 15:59:52
EXELENTEEEEEEEEE!! LLEVABA DIAS BUSCANDO ALGO ASII!! FUNCIONA BIEN GRACIAS A DIOS Y A USTED!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por gerardo (1 intervención) el 26/12/2007 22:55:25
Tengo el mismo problema que tu dime lograste solucionar tu problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por carllojan (1 intervención) el 11/03/2010 00:39:34
oye si ya solucionaste tu problema me gustaria saber como lo hiciste pues tengo el mismo problema de antemano gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar varios registros a la vez

Publicado por christian (1 intervención) el 25/01/2011 07:34:59
Estoy buscando lo mismo y encontré esto que te ayudará:

http://www.desarrolloweb.com/articulos/2395.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar