PHP - actualizar una tabla desde un formulario

   
Vista:

actualizar una tabla desde un formulario

Publicado por zendi (4 intervenciones) el 03/07/2012 22:39:40
Buenas Tardes compañeros, estoy tratando de insertar unos registros que previamente imprimo en un formulario.
este es el codigo de HTML como todos sabemos:
1
2
3
4
5
echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
				  <tr><td width='50'><input type='text' value='$cedula' name='cedula' readonly='true' valign='middle'></td>
                  <td width='50'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'></td>
                  <td><input type='text' value='$nroapto' name='nroapto' readonly='true'></td>
                  <td width='50'><input type='text' value='$monto' size='8' readonly='true' name='deuda' align='right'></td></tr>

son 24 registros que se despliegan.
la pregunta es: debo utilizar un WHILE para recorrer estos registros?

este es el INSERT:
1
$resultado = "INSERT INTO cierredeuda(nroapto,fecha,cedula,monto) VALUES ('$nroapto','$fecha','$cedula',$monto)";

saludos compañeros.
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
Imágen de perfil de xve

actualizar una tabla desde un formulario

Publicado por xve (5513 intervenciones) el 04/07/2012 00:11:11
Hola Zendi, si, claro, sin ninguna duda, si tienes que mostrar 24 registros, lo mejor es realizar un bucle.

Porque luego, tienes que realizar 24 inserts en la base de datos?
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

actualizar una tabla desde un formulario

Publicado por zendi (12 intervenciones) el 04/07/2012 02:36:29
xve mira, envio el codigo con el cual recorro los registros y los imprimo:
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
<?php
    $resultado1 = "SELECT deuda.cedula,deuda.fecha,propietarios.nroapto,SUM(monto) AS total FROM propietarios,deuda WHERE propietarios.nroapto = deuda.nroapto GROUP BY propietarios.nroapto,deuda.cedula,deuda.fecha ORDER BY nroapto";
    $resultado = @pg_query($connect,$resultado1);
echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'> 
     <tr class='sr'>
     <th>Cédula
     <th>Fecha
     <th>Nro Apto
     <th>Deuda</tr>
</table><br>";
             echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'></table>";
 
while ($seleccionado =@pg_fetch_array($resultado)):
$cedula  = $seleccionado['cedula'];
$fecha   = $seleccionado['fecha'];
$nroapto = $seleccionado['nroapto'];
$monto   = $seleccionado['total'];
$anio = substr($fecha,0,4);
$mes = substr($fecha,5,2);
$dia = substr($fecha,8,2);
             echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
				  <tr><td width='50'><input type='text' value='$cedula' name='cedula' readonly='true' valign='middle'></td>
                  <td width='50'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'></td>
                  <td><input type='text' value='$nroapto' name='nroapto' readonly='true'></td>
                  <td width='50'><input type='text' value='$monto' size='8' readonly='true' name='deuda' align='right'></td></tr></table>";
endwhile; 
echo"<input type='submit' class='color1' name='enviar' value='Enviar' align='right'>";

//////////////////////////////
Y ESTE CODIGO ES EL QUE UTILIZO PARA INSERTAR LOS 24 REGISTROS EN LA OTRA TABLA:
PERO ESTA GUARDANDO SOLO 2 REGISTROS. NO SE SI ESTA BIEN FORMULADO.
1
2
3
4
5
while ($seleccion =@pg_fetch_array($cedula,$fecha,$nroapto,$monto)):
     $result = "INSERT INTO cierredeuda(nroapto,fecha,cedula,monto) VALUES ('$nroapto','$fecha','$cedula',$monto)";
     @pg_query($connect,$result);
endwhile;
?>
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
Imágen de perfil de xve

actualizar una tabla desde un formulario

Publicado por xve (5513 intervenciones) el 04/07/2012 07:44:27
Hola Zendi, puede ser que esta linea este mal?
1
while ($seleccion =@pg_fetch_array($cedula,$fecha,$nroapto,$monto)):

y tenga que ser algo así:
1
2
$result=@pg_query("select .....",$resultado1);
while ($seleccion =@pg_fetch_array($result)):


En cuanto a realizar múltiples inserts en la base de datos, te recomiendo que lo realices con una sola instrucción.. algo así:
1
insert into test (value1) values ("casa"), ("azul"), ("verde")

Ganaras en rendimiento.

Espero que te sirva.
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

actualizar una tabla desde un formulario

Publicado por zendi (4 intervenciones) el 04/07/2012 14:46:14
Buen dia Xve, lo del insert no lo entiendo, ¿el insert iria entonces asi?
$result = "INSERT INTO cierredeuda(nroapto,fecha,cedula,monto) VALUES ('$nroapto'),('$fecha'),('$cedula'),($monto)";
bastante extraño, pero lo intentare colega
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
Imágen de perfil de xve

actualizar una tabla desde un formulario

Publicado por xve (5513 intervenciones) el 04/07/2012 22:50:54
No, seria algo así:
1
2
3
4
5
$result = "INSERT INTO cierredeuda (nroapto,fecha,cedula,monto)
VALUES
('$nroapto1', '$fecha1','$cedula1',$monto1),
('$nroapto2', '$fecha2','$cedula2',$monto2),
('$nroapto3', '$fecha3','$cedula3',$monto3)";

De esta manera, con un solo insert añades varios registros
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

actualizar una tabla desde un formulario

Publicado por zendi (12 intervenciones) el 05/07/2012 03:02:09
bueno xve ya resolví el problema, de todos modos muchas gracias.
aqui les dejo el codigo, solo el de php, tal vez pueda servir para alguien:
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
47
48
49
50
51
52
53
54
55
<?php
   $connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
?>
<?php
    $resultado1 = "SELECT deuda.cedula,deuda.fecha,propietarios.nroapto,SUM(monto) AS total FROM propietarios,deuda WHERE propietarios.nroapto = deuda.nroapto GROUP BY propietarios.nroapto,deuda.cedula,deuda.fecha ORDER BY nroapto";
    $resultado = @pg_query($connect,$resultado1);
echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'> 
     <tr class='sr'>
     <th>Cédula
     <th>Fecha
     <th>Nro Apto
     <th>Deuda</tr>
</table><br>";
////RECORRO LOS REGISTROS PARA IMPRIMIRLOS
             echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'></table>";
while ($seleccionado =@pg_fetch_array($resultado)):
$cedula  = $seleccionado['cedula'];
$fecha   = $seleccionado['fecha'];
$nroapto = $seleccionado['nroapto'];
$monto   = $seleccionado['total'];
$anio = substr($fecha,0,4);
$mes = substr($fecha,5,2);
$dia = substr($fecha,8,2);
             echo"<table border='1' bordercolor='#00CC99' bgcolor='#99CC00' align='center'>
				  <tr><td width='50'><input type='text' value='$cedula' name='cedula' readonly='true' valign='middle'></td>
                  <td width='50'><input type='text' value='$dia"."/"."$mes"."/"."$anio' readonly='true' name='fecha'></td>
                  <td><input type='text' value='$nroapto' name='nroapto' readonly='true'></td>
                  <td width='50'><input type='text' value='$monto' size='8' readonly='true' name='deuda' align='right'></td></tr></table>";
endwhile; 

/////////////
$day = date('d');
if (isset($_POST['enviar']))
   {

         if($day < 28) {
            echo "<script>alert('No es la Fecha para Crear el Cierre Mensual')</script>";
              }
		 else {
/////GUARDO LOS REGISTROS EN UNA VARIABLE
$total = "SELECT deuda.cedula,deuda.fecha,propietarios.nroapto,SUM(monto) AS total FROM propietarios,deuda WHERE propietarios.nroapto = deuda.nroapto GROUP BY propietarios.nroapto,deuda.cedula,deuda.fecha ORDER BY nroapto";
LOS RECORRO NUEVAMENTE PARA LUEGO INSERTARLOS EN LA TABLA
    $asignadeuda = @pg_query($connect,$total);
     while($resultados =@pg_fetch_array($asignadeuda)):
          $nroapto = $resultados['nroapto'];
		  $cedula  = $resultados['cedula'];
		  $monto   = $resultados['total'];
		  $fecha   = $resultados['fecha'];
          $asignado = "INSERT INTO cierredeuda(cedula,fecha,nroapto,monto) VALUES ('$cedula','$fecha','$nroapto',$monto)";
          @pg_query($connect,$asignado);
     endwhile;
             }
   }

?>
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