Foros del Web » Programando para Internet » PHP »

Cargar informacion de base de datos en un select

Estas en el tema de Cargar informacion de base de datos en un select en el foro de PHP en Foros del Web. Hola a todos, tengo un inconveniente a la hora de modificar unos datos y es el siguiente: Por medio de un buscador, cargo toda la ...
  #1 (permalink)  
Antiguo 21/01/2011, 15:13
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Cargar informacion de base de datos en un select

Hola a todos, tengo un inconveniente a la hora de modificar unos datos y es el siguiente:
Por medio de un buscador, cargo toda la informacion de una persona
Existe un campo denominado situacion laboral, yo cargo ese datos en un select ya que situacion_laboral es una tabla en mi base de datos.
Al cargar los datos, me aparece la situacion laboral que habia guardado

Lo hago de la siguiente forma:

Código PHP:
Ver original
  1. <select name="situacion_laboral" id="situacion_laboral">
  2.    <option ><?php echo $row["SIT_LAB"]?></option>
  3.  
  4.   <?php
  5. include ("config.php");
  6. include ("opendb.php");
  7.    
  8.  
  9. $sqlsituacion="select * from situacion_laboral";
  10. $tablasituacion=mysql_query($sqltsituacion);
  11.  while($row = mysql_fetch_row($tablasituacion) )
  12.    
  13.  { echo "<option value='$row[1]'>$row[1]</option>";
  14.  
  15.     }
  16.                                    
  17. ?>
  18.                                    
  19.    </select>

Y como tal el script me trae la situacion laboral que estaba guardada y ademas las otras opciones que se pueden seleccionar, pero aca viene mi inconveniente:

Resulta que si la persona es empleada, el me trae en el select escogida esa opcion
Pero ademas vuelve y me la muestra cuando despliego la lista, como hago para evitar que me repita la misma opcion dos veces?

Lo intente tambien asi pero no me trae ningun dato:

Código PHP:
Ver original
  1. <select name="situacion_laboral" id="situacion_laboral">
  2.    
  3.  
  4.   <?php
  5. include ("config.php");
  6. include ("opendb.php");
  7.    
  8.  
  9. $sqlsituacion="select * from situacion_laboral";
  10. $tablasituacion=mysql_query($sqltsituacion);
  11.  while($row = mysql_fetch_row($tablasituacion) )
  12.    
  13.  { echo "<option value='$row[SIT_LAB]'>$row[SIT_LAB]</option>";
  14.  
  15.     }
  16.                                    
  17. ?>
  18.                                    
  19.    </select>

Agradezco me puedan colaborar
  #2 (permalink)  
Antiguo 21/01/2011, 17:57
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: Cargar informacion de base de datos en un select

Prueba así:
Código PHP:
Ver original
  1. <select name="situacion_laboral" id="situacion_laboral">
  2.  
  3. <?php
  4.  
  5.     $seleccionado = $row["SIT_LAB"];
  6.  
  7.     include ("config.php");
  8.     include ("opendb.php");
  9.  
  10.     $sqlsituacion = "select * from situacion_laboral";
  11.     $tablasituacion = mysql_query($sqltsituacion);
  12.     $opciones = "";
  13.     while( $row = mysql_fetch_row($tablasituacion) )
  14.     {
  15.         $opciones .= "<option value='$row[1]'";
  16.         if ( $seleccionado == $row[1] )
  17.             $opciones .= " selected=selected";
  18.         $opciones .= ">$row[1]</option>";
  19.     }
  20.     echo $opciones;
  21. ?>
  22.                            
  23. </select>

¿De donde sale $row["SIT_LAB"];? Ten cuidado porque creo que el nombre que ya había una variable llamada "$row" fuera del while.
  #3 (permalink)  
Antiguo 21/01/2011, 19:15
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Cargar informacion de base de datos en un select

probando me sale el siguiente error:

Parse error: syntax error, unexpected T_STRING

En la linea:

  $seleccionado = $row["SIT_LAB"];

A que se debe ese error?...gracias

El primer $row["SIT_LAB"], que muestro con el echo, es el que realmente esta en la base de datos, entonces cuando se carga la informacion, me muestra en el select la situacion guardada, pero ademas en el select me muestra las demas situaciones incluyeno nuevamente la mostrada

Es decir, si la situacion es Empleado, me la repite dos veces....
  #4 (permalink)  
Antiguo 21/01/2011, 19:20
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: Cargar informacion de base de datos en un select

prueba


$seleccionado = $row['SIT_LAB'];

que dice ahora?

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #5 (permalink)  
Antiguo 22/01/2011, 06:36
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Cargar informacion de base de datos en un select

Cita:
Iniciado por cadrogui Ver Mensaje


$seleccionado = $row['SIT_LAB'];


Probandolo asi, me sigue saliendo el mismo error en la misma linea...gracias
  #6 (permalink)  
Antiguo 22/01/2011, 08:47
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: Cargar informacion de base de datos en un select

pone el script completo para darle una mirada!!..

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #7 (permalink)  
Antiguo 22/01/2011, 10:26
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Cargar informacion de base de datos en un select

realmente son dos script: el primero denominado buscar.php (en cada boton de radio envio el criterio de busqueda en el value)donde el usuario selecciona el criterio de busqueda:

buscar.php:

Código PHP:
Ver original
  1. <form action="resultados.php" method="post" name="form1" id="form1" >
  2.  
  3. <input name="searchtype" type="radio" id="searchtype" value="NUM_CED_EGR" checked="checked" />  Por numero de c&#233;dula del egresado
  4.  
  5. </br>
  6. <input type="radio" name="searchtype" value="NOM_EGR" id="searchtype" /> Por nombres del egresado
  7.  
  8. </br>
  9. <input name="searchtype" type="radio" id="searchtype" value="COD_EGR"  />
  10. Por codigo de universidad
  11.  
  12. </br>
  13.  <input type="radio" name="searchtype" value="APE_EGR" id="searchtype" />Por apellidos del egresado
  14.  
  15. </br>
  16. </br>
  17. <input type="text" name="buscar" id="buscar" />
  18.  
  19. </br>
  20. </br>
  21.  
  22.  <input type="submit" name="buscar2" id="buscar2" value="Buscar" />
  23.  
  24. </form>

Y ahora resultados.php:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Resultado</title>
  4. <body>
  5. <?
  6. //se recibe criterio de busqueda seleccionado
  7. $searchtype = $_POST['searchtype'];
  8. //se recibe texto ingresado en caja de texto de busqueda
  9. $searchterm = $_POST['buscar'];
  10.  
  11. $searchterm= trim($searchterm);
  12. // Devuelve el valor que esta en el php.ini para usar magic_quotes. Que es si PHP debe de usar addslashes automáticamente en las cadenas de entrada (GET, POST y COOKIE)
  13.  
  14.   {
  15.   // agrega una barra invertida en una cadena de texto, donde hay comillas dobles o simples.
  16.  
  17.     $searchtype = addslashes($searchtype);
  18.     $searchterm = addslashes($searchterm);
  19.   }
  20. //conexion con mySQL y con base de datos
  21. @ $db = new mysqli('localhost', 'root', 'root', 'egresados');
  22.  
  23.  {
  24.      echo ' Error: No se pudo conectar a la base de datos, consulte a su administrador.  Por favor intente de nuevo!!.';
  25.      exit;
  26.  }
  27. // consulta
  28. $query = "select e.NUM_CED_EGR, e.NOM_EGR, e.APE_EGR, e.FEC_NAC_EGR, e.NUM_LIB_MIL, e.DIR_EGR, e.TEL_FIJ_EGR, e.TEL_MOV_EGR, e.EMA_EGR, e.COD_EGR, sl.SIT_LAB from egresado e , situacion_laboral sl where  e.COD_SIT_LAB=sl.COD_SIT_LAB and e.".$searchtype." like '%".$searchterm."%'";
  29. $result = $db->query($query);
  30. $num_results = $result->num_rows;
  31. // si no hay resultados
  32.  
  33. if($num_results==0){
  34.    
  35.     echo '<h2>No se encontraron resultados de busqueda</h2>';
  36.    
  37.     echo "<a href='buscar.php' a style='text-decoration:none;' > <p><b> REALIZAR NUEVA BUSQUEDA</b>.</a></p>";
  38.     exit;
  39.     }
  40.  
  41.  
  42. echo '<p><br>';
  43.  
  44.  
  45.  
  46.  
  47. for ($i=0; $i <$num_results; $i++)
  48.   {
  49.      $row = $result->fetch_assoc();
  50.      
  51.  
  52.      
  53.   }
  54.  
  55.  
  56. $db->close();
  57.  
  58. ?>
  59.  
  60. //Ahora muestro los resultados en campos textfield:
  61.  
  62. Cedula:  <input type="text" name="cedula" id="cedula"  readonly="readonly" value="<?php echo $row["NUM_CED_EGR"]?>"/>
  63.  
  64. </br>
  65. Nombres: <input type="text" name="nombres" id="nombres"  value="<?php echo $row["NOM_EGR"]?>"/>
  66.  
  67. </br>
  68.  
  69. Apellidos:<input type="text" name="apellidos" id="apellidos"  value="<?php echo $row["APE_EGR"]?>"/>
  70.  
  71. <br>
  72. Fecha de nacimiento:  <input type="text" name="fecha_nacimiento" id="fecha_nacimiento" value="<?php echo $row["FEC_NAC_EGR"]?>" />
  73.  
  74. //AHORA para mostrar la situacion laboral que es donde tengo el inconveniente:
  75.  
  76. Situacion laboral:
  77.  
  78. <select name="situacion_laboral" id="situacion_laboral">
  79. <option ><?php echo $row["SIT_LAB"]?></option>
  80.                                    
  81.   <?php
  82. include ("config.php");
  83. include ("opendb.php");
  84.    
  85.  
  86.  $sqltdocumento="select * from situacion_laboral";
  87.                              $tablatdocumento=mysql_query($sqltdocumento);
  88. while($row = mysql_fetch_row($tablatdocumento) )
  89.    
  90.      { echo "<option value='$row[1]'>$row[1]</option>";
  91.  
  92.       }
  93.                                    
  94. ?>
  95.                                    
  96. </select>
  97.  
  98. </body>
  99. </html>

Los datos como numero de cedula, nombres, apellidos, fecha de nacimiento me los muestra correctamente, el problema es en el select de la situacion laboral

Ahi lo muestro como lo tenia primero, ensayandolo de la forma que me dijiste no me funciono.
  #8 (permalink)  
Antiguo 22/01/2011, 10:42
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: Cargar informacion de base de datos en un select

en la linea 81

<option ><?php echo $row["SIT_LAB"]?></option>

debe ser asi

<option ><?php echo $row["SIT_LAB"];?></option>

falta un ;

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #9 (permalink)  
Antiguo 22/01/2011, 12:39
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Cargar informacion de base de datos en un select

no me habia fijado, aunque mi problema no se soluciona pues como lo mostre, se ven las opciones en el select asi:

Empleado (que es la que estaba guardada)
Desempleado
Pensionado
Empleado

Problema: repite empleado dos veces...

ahora probando resultados.php de la otra forma:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Resultado</title>
  4. <body>
  5. <?
  6. //se recibe criterio de busqueda seleccionado
  7. $searchtype = $_POST['searchtype'];
  8. //se recibe texto ingresado en caja de texto de busqueda
  9. $searchterm = $_POST['buscar'];
  10. *
  11. $searchterm= trim($searchterm);
  12. // Devuelve el valor que esta en el php.ini para usar magic_quotes. Que es si PHP debe de usar addslashes automáticamente en las cadenas de entrada (GET, POST y COOKIE)
  13. *
  14. * {
  15. * // agrega una barra invertida en una cadena de texto, donde hay comillas dobles o simples.
  16. *
  17. * * $searchtype = addslashes($searchtype);
  18. * * $searchterm = addslashes($searchterm);
  19. * }
  20. //conexion con mySQL y con base de datos
  21. @ $db = new mysqli('localhost', 'root', 'root', 'egresados');
  22. *
  23. *{
  24. * * *echo ' Error: No se pudo conectar a la base de datos, consulte a su administrador. *Por favor intente de nuevo!!.';
  25. * * *exit;
  26. *}
  27. // consulta
  28. $query = "select e.NUM_CED_EGR, e.NOM_EGR, e.APE_EGR, e.FEC_NAC_EGR, e.NUM_LIB_MIL, e.DIR_EGR, e.TEL_FIJ_EGR, e.TEL_MOV_EGR, e.EMA_EGR, e.COD_EGR, sl.SIT_LAB from egresado e , situacion_laboral sl where *e.COD_SIT_LAB=sl.COD_SIT_LAB and e.".$searchtype." like '%".$searchterm."%'";
  29. $result = $db->query($query);
  30. $num_results = $result->num_rows;
  31. // si no hay resultados
  32. *
  33. if($num_results==0){
  34. * *
  35. * * echo '<h2>No se encontraron resultados de busqueda</h2>';
  36. * *
  37. * * echo "<a href='buscar.php' a style='text-decoration:none;' > <p><b> REALIZAR NUEVA BUSQUEDA</b>.</a></p>";
  38. * * exit;
  39. * * }
  40. *
  41. *
  42. echo '<p><br>';
  43. *
  44. *
  45. *
  46. *
  47. for ($i=0; $i <$num_results; $i++)
  48. * {
  49. * * *$row = $result->fetch_assoc();
  50. * * *
  51. *
  52. * * *
  53. * }
  54. *
  55. *
  56. $db->close();
  57. *
  58. ?>
  59. *
  60. //Ahora muestro los resultados en campos textfield:
  61. *
  62. Cedula: *<input type="text" name="cedula" id="cedula" *readonly="readonly" value="<?php echo $row["NUM_CED_EGR"]?>"/>
  63. *
  64. </br>
  65. Nombres: <input type="text" name="nombres" id="nombres" *value="<?php echo $row["NOM_EGR"]?>"/>
  66. *
  67. </br>
  68. *
  69. Apellidos:<input type="text" name="apellidos" id="apellidos" *value="<?php echo $row["APE_EGR"]?>"/>
  70. *
  71. <br>
  72. Fecha de nacimiento: *<input type="text" name="fecha_nacimiento" id="fecha_nacimiento" value="<?php echo $row["FEC_NAC_EGR"]?>" />
  73. *
  74. //AHORA para mostrar la situacion laboral que es donde tengo el inconveniente:
  75. *
  76. Situacion laboral:
  77. *
  78.  
  79. <select name="situacion_laboral" id="situacion_laboral">
  80. *
  81. <?php
  82. *
  83. * * $seleccionado = $row['SIT_LAB'];
  84. *
  85. * * include ("config.php");
  86. * * include ("opendb.php");
  87. *
  88. * * $sqlsituacion = "select * from situacion_laboral";
  89. * * $tablasituacion = mysql_query($sqltsituacion);
  90. * * $opciones = "";
  91. * * while( $row = mysql_fetch_row($tablasituacion) )
  92. * * {
  93. * * * * $opciones .= "<option value='$row[1]'";
  94. * * * * if ( $seleccionado == $row[1] )
  95. * * * * * * $opciones .= " selected=selected";
  96. * * * * $opciones .= ">$row[1]</option>";
  97. * * }
  98. * * echo $opciones;
  99. ?>
  100. * * * * * * * * * * * * * *
  101. </select>
  102. *
  103. </body>
  104. </html>

no me muestra nada en el select, me sigue saliendo el mismo error en la misma linea...a que se debe este inconveniente?...gracias
  #10 (permalink)  
Antiguo 22/01/2011, 21:58
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: Cargar informacion de base de datos en un select

yo cambiaria el while por un for, creo que el for te da mas control sobre e, bucle.

para saber hasta donde llega el for utiliza un mysql_num_rows, como lo hiciste mas arriba y comienza el bucle con

Código PHP:
Ver original
  1. $i=1; $i <=total_num_rows ;$i++

te dejo un ejemplo de como lo hago yo.

Código PHP:
Ver original
  1. for ($i=0; $i <= $total ; $i++):
  2.          
  3. echo "<li><input type='checkbox' name='unnombre' value='unvalor'/>" .utf8_encode($list_epp_array[$i]). "</li>";    
  4.            
  5. endfor;


prueba y cuentanos como te fue..

saludos
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #11 (permalink)  
Antiguo 24/01/2011, 09:09
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Cargar informacion de base de datos en un select

Pero yo estoy utilizando for


Código PHP:
Ver original
  1. for ($i=0; $i <$num_results; $i++)
  2.   {
  3.      $row = $result->fetch_assoc();
  4.      
  5.              
  6.   }

Etiquetas: informacion, select
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 08:36.