Dudas para editar y actualizar registros de la base de datos programando en php

Tengo un problema, hice una parte para editar registros, pero no los actualiza, aquí esta mi código.
------------------------------------
Aquí la primera página, el usuario ingresa el nombre del registro que quiere editar.
<form name="form1" id="form1" method="post" action="ModificarEspecialidad_1.php">
<p>
<input name="nombre" id="nombre" type="text" class="imputbox" size="30" />
</p>
<p>
<input type="button" name="buscar" value="Buscar" class="botones" onclick="valida_envia()">
</p>
</form>
------------------------------------
Segunda página ModificarEspecialidad_1.php
aquí muestra el resultado de la búsqueda muestra el nombre o nombres de los registros, cada registro con una liga de modificar
<?
if (!($conexion = mysql_connect("localhost","root","")))
{die("No se puede conectar");}
//if (!mysql_create_db("modificar"))
// {die("no se puede crear la base de datos");}
if (!mysql_select_db("issemym"))
{die("no se puede seleccionar la base de datos");}
//$query = "select * from medico order by idmedico";
$query = "select * from medico where nombre like '%".$_POST['nombre']."%' order by nombre";
$result = mysql_query($query) or die(mysql_error());
while($fetch = mysql_fetch_assoc($result))
{
//echo "<table border = '1'> \n";
echo "<br>".$fetch['nombre'].
"  <font color='#0000ff'>¦
</font><a href=\"ModificarEspecialidad_2.php?idmedico=".$fetch['idmedico']."\">  Modificar datos</a>";
//echo "</table> \n";
}
echo"<br>"; echo"<br>"; echo"<br>"; echo"<br>";
echo"         
<a href='SistemaControlProc.php'>Salir</a>";
?>
-------------------------------------
tercera pagina
ModificarEspecialidad_2.php
Al darle click, a una liga de un registro, muestra los datos de ese registro, en unas cajas de texto, para poderlas modificar
<?
if (!($conexion = mysql_connect("localhost","root","")))
{die("No se puede conectar");}
//if (!mysql_create_db("modificar"))
// {die("no se puede crear la base de datos");}
if (!mysql_select_db("issemym"))
{die("no se puede seleccionar la base de datos");}
$querya = "select * from medico where (idmedico='".$idmedico."')";
$resulta= mysql_query($querya) or die(mysql_error());
list($idmedico,$nombre,$especialidad,$sexo,$categoria,$turno) = mysql_fetch_row($resulta);
echo "<form name='modificarmedicos' action='ModificarEspecialidad_3.php' method='post'>"
."<input type='HIDDEN' size='30' class='imputbox' name='idmedico' value='".$idmedico."'>"
."Nombre: <input type='text' size='30' class='imputbox' name='nombre' value='".$nombre."'><br>"
."Especialidad: <input type'text' size='30' class='imputbox' name='especialidad' value='".$especialidad."'><br>"
."Sexo: <input type'text' size='30' class='imputbox' name='sexo' value='".$sexo."'><br>"
."Categoria: <input type'text' size='30' class='imputbox' name='categoria' value='".$categoria."'><br>"
."Turno: <input type'text' size='30' class='imputbox' name='turno' value='".$turno."'><br>"
."<br><input type='submit' class='botones' name='btn_modi' value='Modificar'>"
."</form>"
?>
--------------------------------
cuarta pagina
ModificarEspecialidad_3.php
aqui hace la actualizacion, pero no me lo actualiza.
<?
//Conexion con la base
mysql_connect("localhost","root","");
if (!mysql_select_db("issemym"))
{die("no se puede seleccionar la base de datos");}
//Creamos la sentencia SQL y la ejecutamos
$sSQL="UPDATE medico SET
nombre='$nombre',
especialidad='$especialidad',
sexo='$sexo',
categoria='$categoria',
turno='$turno'
WHERE (idmedico='".$idmedico."')";
mysql_db_query("issemym",$sSQL);
?>
Espero me puedan ayudar.

1 Respuesta

Respuesta
1
Cuando un form, pasa los datos a una página, lo hace por post o por get.
(En tu caso por post)
Entonces la página que recibe los datos (la del action) tiene que coger los datos, para conseguir los valores.
Y eso se hace con $_post["name del campo"] el name del campo es el name que le diste en el form.
En tu ejemplo:
$nombre=$_post["nombre"];
$especialidad=$_post["especialidad"];
$sexo....
$categoria....
$turno....
$idmedico....
$sSQL="UPDATE medico SET
nombre='$nombre',
especialidad='$especialidad',
sexo='$sexo',
categoria='$categoria',
turno='$turno'
WHERE (idmedico='".$idmedico."')";
Cosas a tener en cuenta, $idmedico lo pillas en el 2º form, (en el tercero tienes que recogerlo $_post["idmedico"]) y lo usas también en el cuarto, así que en el 3º, ponte un hidden con el valor del idmedico porque si no no lo podrás pasar hasta la 4ª página.
Si no lo entiendes pregunta, que no tengo problema en contestar
No le entiendo, podrías ser más explicito, para poderle entender de antemano gracias
No me sale, ene l segundo form pillo en idmedico.
-----------------------
<?
if (!($conexion = mysql_connect("localhost","root","")))
{die("No se puede conectar");}
//if (!mysql_create_db("modificar"))
// {die("no se puede crear la base de datos");}
if (!mysql_select_db("issemym"))
{die("no se puede seleccionar la base de datos");}
$querya = "select * from medico where (idmedico='".$idmedico."')";
$resulta= mysql_query($querya) or die(mysql_error());
list($idmedico,$nombre,$especialidad,$sexo,$categoria,$turno) = mysql_fetch_row($resulta);
echo "<form name='modificarmedicos' action='ModificarEspecialidad_3.php' method='post'>"
(es este) ."<input type='HIDDEN' size='30' class='imputbox' name='idmedico' value='".$idmedico."'>"
."Nombre: <input type='text' size='30' class='imputbox' name='nombre' value='".$nombre."'><br>"
."Especialidad: <input type'text' size='30' class='imputbox' name='especialidad' value='".$especialidad."'><br>"
."Sexo: <input type'text' size='30' class='imputbox' name='sexo' value='".$sexo."'><br>"
."Categoria: <input type'text' size='30' class='imputbox' name='categoria' value='".$categoria."'><br>"
."Turno: <input type'text' size='30' class='imputbox' name='turno' value='".$turno."'><br>"
."<br><input type='submit' class='botones' name='btn_modi' value='Modificar'>"
."</form>"
?>
-------------------------------------
Aquí esta la ultima página
Así lo puse
<?
//Conexion con la base
mysql_connect("localhost","root","");
if (!mysql_select_db("issemym"))
{die("no se puede seleccionar la base de datos");}
//Creamos la sentencia SQL y la ejecutamos
$idmedico=$_post["idmedico"];
$nombre=$_post["nombre"];
$especialidad=$_post["especialidad"];
$sexo=$_post["sexo"];
$categoria=$_post["categoria"];
$turno=$_post["turno"];
$sSQL="UPDATE medico SET
nombre='$nombre',
especialidad='$especialidad',
sexo='$sexo',
categoria='$categoria',
turno='$turno'
WHERE (idmedico='".$idmedico."')";
mysql_db_query("issemym",$sSQL);
?>
En la ultima página te falta recoger las variables que le pasas
$nombre=$_POST["nombre"];
Antes de crear la consulta. Y con la 3ª también te falta eso, solo que tienes que recoger el id
te falta poner $idmedico=$_post["idmedico"] antes de
$querya = "select * from medico where (idmedico='".$idmedico."')";

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas