Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Actualizar campos en el registro más reciente o mayor de una tabla

Estas en el tema de Actualizar campos en el registro más reciente o mayor de una tabla en el foro de PHP en Foros del Web. Buenas noches, tengo un pequeño problema en cuanto a ingresar datos en el registro más reciente que he realizado. Les explico con más detalles aquí, ...
  #1 (permalink)  
Antiguo 17/09/2013, 23:17
Avatar de angelveloz17  
Fecha de Ingreso: septiembre-2013
Ubicación: Aragua
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Actualizar campos en el registro más reciente o mayor de una tabla

Buenas noches, tengo un pequeño problema en cuanto a ingresar datos en el registro más reciente que he realizado.

Les explico con más detalles aquí, En la primera página realizé mi primer formulario con los siguientes datos:
Código HTML:
Ver original
  1. //Página 1\\
  2.  
  3. <div id="content">
  4. <IMG src=imgpaciente.jpg class="imgpaciente">
  5. <form Class="formhis" action="historia2.php" method="POST" name="historia">
  6.  
  7.  
  8.      <tr>
  9.      <td> <h2>Nombres:</h2> </td>
  10.      <td> <input  class="nomapeedad" type="text"  maxlength="50" name="nombres"> </td>
  11.      </tr>
  12.      
  13.      <tr>
  14.      <td> <h2>Apellidos:</h2></td>
  15.      <td> <input class="nomapeedad" name="apellidos" maxlength="50" type="text"> </td>
  16.      </tr>
  17.      
  18.      <tr>
  19.      <td> <h2>Fecha de Nacimiento: </h2></td>
  20.      <td> <select class="dia" name="nacdia"> <OPTION selected> Dia
  21.     <OPTION> 1 <OPTION> 2 <OPTION> 3 <OPTION> 4 <OPTION> 5 <OPTION> 6
  22.     <OPTION> 7 <OPTION> 8 <OPTION> 9 <OPTION> 10 <OPTION> 11 <OPTION> 12
  23.     <OPTION> 13 <OPTION> 14 <OPTION> 15 <OPTION> 16 <OPTION> 17 <OPTION> 18
  24.     <OPTION> 19 <OPTION> 20 <OPTION> 21 <OPTION> 22 <OPTION> 23 <OPTION> 24
  25.     <OPTION> 25 <OPTION> 26 <OPTION> 27 <OPTION> 28 <OPTION> 29 <OPTION> 30
  26.     <OPTION> 31
  27.     </select>
  28.    
  29.     <select class="mes" name="nacmes">  <option value="0" selected>Mes</option>
  30.     <option value="1">Enero</option> <option value="2">Febrero</option> <option value="3">Marzo</option>
  31.     <option value="4">Abril</option> <option value="5">Mayo</option> <option value="6">Junio</option>
  32.     <option value="7">Julio</option> <option value="8">Agosto</option> <option value="9">Septiembre</option>
  33.     <option value="10">Octubre</option><option value="11">Noviembre</option><option value="12">Diciembre</option>
  34.     </select>
  35.    
  36.     <select class="ano" name="nacano"> <OPTION selected> Año
  37.     <OPTION> 2013 <OPTION> 2012 <OPTION> 2011 <OPTION> 2010 <OPTION> 2009
  38.     <OPTION> 2008 <OPTION> 2007 <OPTION> 2006 <OPTION> 2005 <OPTION> 2004
  39.     <OPTION> 2003 <OPTION> 2002 <OPTION> 2001 <OPTION> 2000 <OPTION> 1999
  40.     <OPTION> 1998 <OPTION> 1997 <OPTION> 1996 <OPTION>
  41.     </select> </td>
  42.     </tr>
  43.    
  44.     <tr>
  45.     <td><h2> Lugar de Nacimiento: </h2></td>
  46.     <td> <textarea class="lugarnac" name="lugar_nac" cols="30"></textarea> </td>
  47.     </tr>
  48.    
  49.     <tr>
  50.     <td><h2> Edad: </h2></td>
  51.     <td> <input class="nomapeedad" name="edad" type="text"> </td>
  52.     </tr>
  53.  
  54.     <tr>
  55.     <td><h2> Género: </h2></td>
  56.     <td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;  
  57.     <INPUT TYPE="radio" NAME="genero" VALUE="Masculino"> Masculino
  58.     <INPUT TYPE="radio" NAME="genero" VALUE="femenino"> Femenino </td>
  59.     </tr>
  60.    
  61.     <tr>
  62.     <td><h2> Dirección: </h2></td>
  63.     <td> <textarea class="direcc" name="direccion"></textarea>  </td>
  64.     </tr>

Esos son los datos de un paciente, todos en una misma tabla en mysql llamada "historia".

en la segunda Página que como verán se llama historia2.php.

Realicé lo siguient:
Código PHP:
Ver original
  1. //Página 2\\
  2.  
  3. <?php
  4.     $titulo="Historias Médicas";
  5.     include ("libreria.php");
  6.     head($titulo);
  7.     aside();
  8.  
  9. $nombres=$_POST['nombres'];
  10.     $apellidos=$_POST['apellidos'];
  11.     $nacano=$_POST['nacano'];
  12.     $nacmes=$_POST['nacmes'];
  13.     $nacdia=$_POST['nacdia'];
  14.     $lugar_nac=$_POST['lugar_nac'];
  15.     $edad=$_POST['edad'];
  16.     $genero=$_POST['genero'];
  17.     $direccion=$_POST['direccion'];
  18.    
  19.     $servidor="localhost";
  20.     $login="root";
  21.     $clave="";
  22.     $base="pediatras";
  23.  
  24. $conecta=mysql_connect($servidor,$login,$clave);
  25.  
  26.     if (!$conecta)
  27.     {
  28.     die ('Falló la conexión con el servidor MySql'.mysql_error());
  29.     }
  30.    
  31.     else
  32.     {
  33.     $seleccion=mysql_select_db($base,$conecta);
  34.     if(!$seleccion)
  35.     {
  36.     die ('Falló la conexión con la BD seleccionada'.mysql_error());
  37.     }
  38.     else
  39.     {
  40.        
  41.     $sql="INSERT INTO historia (id_historia,nombres,apellidos,fecha_nac,lugar_nac,edad,genero,direccion,id_medico, cedula) VALUES  
  42.     ('','$nombres','$apellidos','$nacano-$10-$nacdia','$lugar_nac','$edad','$genero','$direccion','1245','$cedula')";  
  43.    
  44.     $sq=mysql_query($sql);
  45.    
  46.     if($sq==1)
  47.     $respuesta= "Registro Exitoso.!!";
  48.     else
  49.     $respuesta= "Fallo El Registro de los Datos...".mysql_error();
  50.     }
  51.     }
  52.  
  53.     ?>
Luego de esto, en la misma página sigo con el Formulario (Realicé los formularios por partes).
Código HTML:
Ver original
  1. <div id="content">
  2. <h3> <?php echo $respuesta; ?> </h3><br />
  3. <h3> Dr:  </h3> <h4> </h4> <br>
  4. <h3> Paciente: <?php echo $nombres, ' ',  $apellidos; ?> </h3> <br>
  5. <h3> Historia: </h3> <br>
  6. <h3> Fecha: <?php echo date('d-M-Y'); ?> </h3> <br>
  7. <IMG src=enfact.jpg class="imgenfact">
  8.  
  9. <form class="formhis2" action="historia3.php" method="POST" name="historia2">
  10.  
  11.     <textarea class="enfact" name="enfact"></textarea>
  12.  
  13.     <IMG src=antec.jpg class="imgantec"> <br />
  14. <fieldset>    
  15.     <tr>
  16.     <td><h2> Familiares: </h2></td>
  17.     <td> <textarea class="datosantec" name="ant_fami" type="text"></textarea> </td>
  18.     </tr>
  19.    
  20.     <tr>
  21.     <td><h2> Personales: </h2></td>
  22.     <td> <textarea class="datosantec" name="ant_per" type="text"></textarea> </td>
  23.     </tr>
  24.    
  25.     <tr>
  26.     <td><h2> Habitos Psicológicos: </h2></td>
  27.     <td> <textarea class="datosantec" name="habit_psico" type="text"></textarea> </td>
  28.     </tr>
  29.       <IMG src=exfun.jpg class="imgexfun"> <br />
  30. <fieldset>    
  31.     <tr>
  32.     <td><h2> Aparatos y Sistemas: </h2></td>
  33.     <td> <textarea class="datosexfun" name="exm_func" type="text"></textarea> </td>
  34.     </tr>
  35. </fieldset> <br />
  36.        
  37.  
  38. <input type="submit"  class="bcontinuar" value="Continuar" name="Continuar" title="Hacer Clic para Continuar" />
  39. </form>
  40. </div>

Estos datos de este formulario siguen estando en la misma tabla "Historia", ya que son datos del Paciente también.

Ahora cuando le doy a Continuar y me dirige a historia3.php es donde veo el problema.
Código PHP:
Ver original
  1. //Página 3\\
  2.  
  3. <?php
  4.     $titulo="Historias Médicas";
  5.     include ("libreria.php");
  6.     head($titulo);
  7.     aside();
  8.    
  9.     $ant_fami=$_POST['ant_fami'];
  10.     $ant_per=$_POST['ant_per'];
  11.     $habit_psico=$_POST['habit_psico'];
  12.     $exm_func=$_POST['exm_func'];
  13.    
  14.     $servidor="localhost";
  15.     $login="root";
  16.     $clave="";
  17.     $base="pediatras";
  18.    
  19.     $conecta=mysql_connect($servidor,$login,$clave);
  20.    
  21.      if (!$conecta)
  22.     {
  23.     die ('Falló la conexión con el servidor MySql'.mysql_error());
  24.     }
  25.    
  26.     else
  27.     {
  28.     $seleccion=mysql_select_db($base,$conecta);
  29.     if(!$seleccion)
  30.     {
  31.     die ('Falló la conexión con la BD seleccionada'.mysql_error());
  32.     }
  33.  
  34.     $sql="UPDATE historia set ant_fami='$ant_fami', ant_per='$ant_per', habit_psico='$habit_psico', exm_func='$exm_func where id_historia=";
  35.     $sq=mysql_query($sql);
  36.     if($sq==1)
  37.     $respuesta= "Registro Exitoso.!!";
  38.     else
  39.     $respuesta= "Fallo El Registro de los Datos...".mysql_error();
  40.     }
  41.    
  42. ?>
Allí como ven, TRATO de actualizar los campos de historia2.php pero DONDE allí si no se, ya que como pueden ver, la variable id_historia no está declarada, no se de donde tomarla, ni como extraerla para que me pueda actualizar los campos solo de ese.

Tomen en cuenta que id_historia es primaria y auto_incrementable.

Esto PHP lo hice en otra página aparte, ya que en esta misma página siguen más datos de formulario, pero no puedo continuar sin antes tener esta parte, porque lo que usaré en la siguiente página, serían estos mismos códigos.

Me he puesto a pensar y no se si primero tengo que consultar los id_historia, de verdad que no se, espero que me puedan ayudar.

Última edición por gnzsoloyo; 18/09/2013 a las 05:12 Razón: Etiquetado... por favor... Highlights
  #2 (permalink)  
Antiguo 18/09/2013, 02:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Actualizar campos en el registro más reciente o mayor de una tabla

http://dev.mysql.com/doc/refman/5.0/...last-insert-id

Despues de hacer el insert de los datos del primer formulario puedes optener el ultimo id que se ha creado, luego usas ese dato para los siguientes....

Esa seria la solucion usando el apoyo que te da mysql para esta situación... pero hay otras en la programacion que te permitirian insertar TODOS los datos con un mismo insert.... seria cuestion de acumular los datos de los formularios en memoria y cuando los tinenes todos insertarlos.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 18/09/2013, 05:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Actualizar campos en el registro más reciente o mayor de una tabla

Los temas de programación no se tratan en los foros de Bases de Datos. Sin excepciones.
Siendo imposible editar el post para sacar el código no SQL sin que se pierda el sentido del problema, muevo a foro de PHP para continuar
Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 18/09/2013, 20:57
Avatar de angelveloz17  
Fecha de Ingreso: septiembre-2013
Ubicación: Aragua
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Actualizar campos en el registro más reciente o mayor de una tabla

Cita:
Iniciado por quimfv Ver Mensaje
[url]http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id[/url]

Despues de hacer el insert de los datos del primer formulario puedes optener el ultimo id que se ha creado, luego usas ese dato para los siguientes....

Esa seria la solucion usando el apoyo que te da mysql para esta situación... pero hay otras en la programacion que te permitirian insertar TODOS los datos con un mismo insert.... seria cuestion de acumular los datos de los formularios en memoria y cuando los tinenes todos insertarlos.
Muchas Gracias por tu respuesta, Realmente vi y si funciona, pero seguí investigando y también veo que funciona con $_SESSION lo cual se me hizo mucho más facil.
  #5 (permalink)  
Antiguo 18/09/2013, 20:58
Avatar de angelveloz17  
Fecha de Ingreso: septiembre-2013
Ubicación: Aragua
Mensajes: 14
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Actualizar campos en el registro más reciente o mayor de una tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Los temas de programación no se tratan en los foros de Bases de Datos. Sin excepciones.
Siendo imposible editar el post para sacar el código no SQL sin que se pierda el sentido del problema, muevo a foro de PHP para continuar
Movido a PHP.
Mil disculpas amigo, eso es lo malo cuando uno es novato y nuevo en un foro.

Etiquetas: mysql
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 20:53.