PHP - modificacion de datos

 
Vista:

modificacion de datos

Publicado por congas1983 (29 intervenciones) el 01/10/2007 18:24:09
señores tengo problemas con este codigo fuente para modificar los datos de una tabla
este codigo me busca el dato a modificar y me lo trae a una tabla

<?
$txtmodificar=$_REQUEST['txtmodificar'];


$cn=mysql_connect("localhost","root","")or die ("no se puede establecer la conexion");
mysql_select_db("sisbagir");;
$consulta = "select * from ensayo where cedula = '$txtmodificar'";
$resultado = mysql_query($consulta);
$numreg = mysql_num_rows($resultado);
if($numreg == 0)
{
echo "No existen registros";
}
else
{
while($filas = mysql_fetch_array($resultado))
{
?>
</font>
<center> <font size = "5" color = "#FFFFFF" face = "arial black" class = "blur"> Modificar </font>
</center>
<form action = "modificar.php" method = "post">

<table border = "1" align = "center" bordercolor = "blue">
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Cedula*</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtcedula" value = "<? echo $filas["cedula"]; ?>" readonly maxlength style="font-family: Arial Black; color: #0080FF; border-style: double; border-width: 3px; background-color: #ffffff" setfocus></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Fecha*</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtfecha" value = "<? echo $filas ["fecha"]; ?>" maxlength style="font-family: Arial Black; color: #0080FF; border-style: double; border-width: 3px; background-color: #ffffff"></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Nombre *</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtnombre" value = "<? echo $filas ["nombre"]; ?>" maxlength style="font-family: Arial Black; color: #0080FF; border-style: double; border-width: 3px; background-color: #ffffff"></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Escuadron</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input name = "txtescuadron" type = "text" style="font-family: Arial Black; color: #0080FF; border-style: double; border-width: 3px; background-color: #ffffff" value = "<? echo $filas ["escuadron"] ?>" maxlength></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Año</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtano" value = "<? echo $filas ["ano"] ?>" maxlength style="font-family: Arial Black; color: #0080FF; border-style: double; border-width: 3px; background-color: #ffffff"></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Mes*</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtmes" value = "<? echo $filas ["mes"]; ?>" maxlength style="font-family: Arial Black; color: #0080FF ; border-style: double; border-width: 3px; background-color: #ffffff"></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Semana *</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtsemana" value = "<? echo $filas ["semana"]; ?>" maxlength style="font-family: Arial Black; color:
#0080FF
; border-style: double; border-width: 3px; background-color: #ffffff"></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Dia*</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtdia" value = "<? echo $filas ["dia"]; ?>" maxlength style="font-family: Arial Black; color:
#0080FF


; border-style: double; border-width: 3px; background-color:
#FFFFFF"></td>
</tr>
<tr>
<td><div align="right"><font face="Georgia, Times New Roman, Times, serif"><strong><font size = "2" color = "#FFFFFF">Valor *</font></strong></font></div></td>
<td bgcolor="#FFFFFF"><input type = "text" name = "txtvalor" value = "<? echo $filas ["valor"]; ?>" maxlength style="font-family: Arial Black; color:
#0080FF
; border-style: double; border-width: 3px; background-color:
#FFFFFF"></td>
</tr>
<tr>
<td> <center>
<label>
<input type="submit" name="button" id="button" value="Enviar">
</label>
</center> </td>
<td bgcolor="#FFFFFF"> <center>
<label>
<input type="reset" name="button2" id="button2" value="Restablecer">
</label>
</center> </td>
</tr>
<?
} //mq
} //else
?>
</table><input type="hidden" name = "txtid" value="<? echo $numfilas["id"]; ?>">
</form>

y este codigo es que me esta guardando mal la modificacion por que cuando una cedula tiene dos registro, el codigo anterior me trae dos tablas con dos registros, y cuando modifico un solo registro el codigo inmediatamente me lo guarda a todos los otros registros osea que un solo registro queda repetido varias veces

<?php

$txtcedula=$_REQUEST['txtcedula'];
$txtfecha=$_REQUEST['txtfecha'];
$txtnombre=$_REQUEST['txtnombre'];
$txtescuadron=$_REQUEST['txtescuadron'];
$txtano=$_REQUEST['txtano'];
$txtmes=$_REQUEST['txtmes'];
$txtsemana=$_REQUEST['txtsemana'];
$txtdia=$_REQUEST['txtdia'];
$txtvalor=$_REQUEST['txtvalor'];
$cn=mysql_connect("localhost","root","")or die ("no se puede establecer la conexion");
mysql_select_db("sisbagir");
$consulta = "select * from ensayo where cedula= '$txtcedula'";
$resultado = mysql_query($consulta);
$numreg = mysql_num_rows($resultado);
if($numreg == 0)
{
echo "No existen registros";
}
else
{
$consulta = "update ensayo set fecha = '$txtfecha', nombre = '$txtnombre', escuadron = '$txtescuadron', ano = '$txtano', mes= '$txtmes', semana='$txtsemana', dia='$txtdia', valor='$txtvalor' where cedula = '$txtcedula'";
$resultado = mysql_query($consulta);
echo "<br><br><br><br>";
echo "<center>Registro modificado</center>";
}

?>
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:modificacion de datos

Publicado por Diego Romero (1450 intervenciones) el 01/10/2007 19:53:13
Aquí lo que veo es que generas uno o más forms dependiendo de cuántos registros encuentre el SELECT a la base de datos, pero cada form es exactamente igual al anterior. ¿Por qué no pones un registro hidden que te identifique qué registro se corresponde con cada form y preguntas por él en el script que recibe el/los formularios?.
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:modificacion de datos

Publicado por congas1983 (29 intervenciones) el 02/10/2007 17:29:03
ya lo coloque como me dijiste
<?php

$txtmodificar=$_REQUEST['txtmodificar'];

$cn=mysql_connect("localhost","root","")or die ("no se puede establecer la coexion");

mysql_select_db("sisbagir");

$cons="select * from Ensayo where cedula='$txtmodificar'";
$resultado=mysql_query($cons);
$numfilas = mysql_num_rows($resultado);
if($numfilas == 0)
{
echo "No existen registros";
}
else
{
while($numfilas = mysql_fetch_array($resultado))
{
?>
<form action="modificar.php" method="post">
<table border="1" align="center">
<tr><td><div align="center">Cedula</div></td>
<td><div align="center">Fecha</div></td>
<td><div align="center">Nombre</div></td>
<td><div align="center">Escuadron</div></td>
<td><div align="center">Año</div></td>
<td><div align="center">Mes</div></td>
<td><div align="center">Semana</div></td>
<td><div align="center">Dia</div></td>
<td><div align="center">Valor</div></td>
</tr>
<tr><td><div align="center">
<input name="txtcedula" type="text" value= "<? echo $numfilas["cedula"];?>" size="12" readonly > </td>
<td><div align="center">
<input name="txtfecha" type="text" value= "<? echo $numfilas["fecha"];?>" size="12">
</div></td>
<td><div align="center">
<input type="text" name="txtnombre" value= "<? echo $numfilas["nombre"];?>">
</div></td>
<td><div align="center">
<input name="txtescuadron" type="text" value= "<? echo $numfilas["escuadron"];?>" size="15">
</div></td>
<td><div align="center">
<input name="txtano" type="text" value= "<? echo $numfilas["ano"];?>" size="4">
</div></td>
<td ><div align="center">
<input name="txtmes" type="text" value= "<? echo $numfilas["mes"];?>" size="10">
</div></td>
<td> <div align="center">
<input name="txtsemana" type="text" value= "<? echo $numfilas["dia"];?>" size="4">
</div></td>
<td> <div align="center">
<input name="txtdia" type="text" value= "<? echo $numfilas["valor"];?>" size="10">
</div></td>
<td><div align="center">
<input name="txtvalor" type="text" value= "<? echo $numfilas["cedula"];?>" size="5">
</div></td>
</tr>
</tr>
<tr>
<td> <center> <input type = "submit" value = "Guardar"> </center> </td>
<td> <center> <input type = "reset" value = "Limpiar"> </center> </td><td><input type="hidden" name = "txtmodificar" value="<? echo $numfilas["id"]; ?>"></td>
</tr>
<?
}
}
?>
</table>

pero el otro php solo me modifica solo cuando hay un solo registro de la tabla,pero cuando hay varios registros en la tabla me modifica solo el ultimo registro, osea que el hidden solo esta guardando el ultimo registro de la tabla, ya que yo modifico los registro y me dice que se guardo con exito, voy y consulto y los datos estan iguales, pero cuando modifico el ultimo registro de la tabla, solo me que da el ultimo modificado los demas quedan iguales.
no se como hacer para que se puedan moficar los cualquier registro de la tabla independiente si es el primero o el utlmo en la tabla.
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:modificacion de datos

Publicado por Diego Romero (1450 intervenciones) el 02/10/2007 21:45:20
No sé, tendría que ver qué datos contiene la tabla en cuestión, me da la impresión de que tienes índices repetidos, es decir que tienes organizada la tabla de tal forma que los registros no son unívocos.
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:modificacion de datos

Publicado por congas1983 (29 intervenciones) el 04/10/2007 15:01:34
la tabla es la siguiente
nombre de la tabla ensayo
campos:
ID:esta es la llave
CEdula
fecha
nombre
escuadron
año
mes
semana
dia
valor
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