Foros del Web » Programando para Internet » PHP »

Mostrar nombre de un campo en lugar de su ID

Estas en el tema de Mostrar nombre de un campo en lugar de su ID en el foro de PHP en Foros del Web. Qué tal , compañeros de este amable foro. Recurro a ustedes para que me orienten en un problemilla que tengo. Al parecer es sencillo pero ...
  #1 (permalink)  
Antiguo 19/09/2011, 22:12
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Mostrar nombre de un campo en lugar de su ID

Qué tal , compañeros de este amable foro. Recurro a ustedes para que me orienten en un problemilla que tengo. Al parecer es sencillo pero no logro hacerlo

En mi base de datos tengo una tabla que se llama "acceso" y allí registro entradas y salidas de personas en X lugar. La tabla tiene los siguientes campos:

id -> Primary Key
nombre
acreditacion
fecha
hora_ent (registro la hora de entrada de la persona)
hora_sal (registro la hora de salida de la persona)
empresa
paises -> Foreign Key (Hace referencia al campo "id" de mi tabla "lista_paises")
estado -> Foreign Key (Hace referencia al campo "id" de mi tabla "lista_estados").


El problema en cual solicito su ayuda es el siguiente.

Tengo un formulario llamado "reg_sal" que me muestra la consulta de los accesos ya registrados; aquí el código:

Código PHP:

<?php



 $conexion 
mysql_connect ("localhost""root""admin")
         or die (
"No se puede conectar con el servidor");
      
mysql_select_db ("3levels")
         or die (
"No se puede seleccionar la base de datos");
      
 
      
//$fecha= strftime("%Y")."-". strftime("%d")."-".  strftime("%m"); // Fecha actual
      //$hora_ent = strftime("%H").":". strftime("%M");
      
$instruccion "SELECT * FROM acceso ORDER BY nombre";      
      
$consulta mysql_query ($instruccion$conexion)
         or die (
mysql_error());
      
      
      
mysql_close ($conexion);
      
echo
'<form name="registro_sal" method="post" action="salida.php">';   
echo 
"<table border = '1px'> \n";
echo 
"<tr> \n";
echo
"<td></td>";
echo 
"<td><b>id</b></td> \n";
echo 
"<td><b>Nombre</b></td> \n";
echo 
"<td><b>Acreditacion</b></td> \n";
echo 
"<td><b>Fecha</b></td> \n";
echo 
"<td><b>Hora de entrada</b></td> \n";
echo 
"<td><b>Hora de salida</b></td> \n";
echo 
"<td><b>Empresa</b></td> \n";
echo 
"<td><b>Sede</b></td> \n";
echo 
"<td><b>Instalacion</b></td> \n";
echo 
"</tr> \n";
echo
"<tr> </tr>";


      
      while(
$row mysql_fetch_array($consulta)) 

          
   
echo 
"<tr> \n";
echo 
'<td><input type="radio" name="seleccion" value='.$row["id"].'/></td>';
echo 
"<td>".$row["id"]."</td> \n";
echo 
"<td>".$row["nombre"]."</td>\n";
echo 
"<td>".$row["acreditacion"]."</td>\n";
echo 
"<td>".$row["fecha"]."</td>\n";
echo 
"<td>".$row["hora_ent"]."</td>\n";
echo 
"<td>".$row["hora_sal"]."</td>\n";
echo 
"<td>".$row["empresa"]."</td>\n";
echo 
"<td>".$row["paises"]."</td>\n"/* Aquí quiero que me muestre el nombre y no la "id".*/
echo "<td>".$row["estados"]."</td>\n"/* Aquí quiero que me muestre el nombre y no la "id".*/
echo "</tr> \n";

echo 
"</tr> \n";


echo
"</table>";
El asunto está en que, en lugar de que me muestre el "id" del país y el estado registrado, quiero que muestre el nombre de tales.

Espero me puedan ayudar, se los agradeceré.
  #2 (permalink)  
Antiguo 20/09/2011, 01:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 64
Antigüedad: 13 años, 6 meses
Puntos: 8
Respuesta: Mostrar nombre de un campo en lugar de su ID

El nombre de los paises y el de los estados no te aparecera ya que no enlazas la clave foranea con su primaria correspondiente, por lo que tienes que cambiar la consulta.



Código PHP:

$instruccion 
"SELECT a.*, p.NOMBRE_PAIS, e.ESTADOS FROM acceso a, paises p, estados e WHERE a.paises=p.paises and a.estados=e.estados ORDER BY a.nombre"
La consulta seria algo parecido a esta que tienes, referenciando las foreign key con sus respectivas primarias.
  #3 (permalink)  
Antiguo 20/09/2011, 09:57
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Mostrar valor de un campo en lugar de su ID

Qué tal amigo, mira, he cambiado la instrucción tal y como me dijiste. No sé si haya escrito algo mal pero ahora la consulta no me muestra nada.

Código PHP:
// $instruccion = "SELECT * FROM acceso ORDER BY nombre";
    
$instruccion "SELECT a.*, p.opcion, e.opcion FROM acceso a, lista_paises p, lista_estados e WHERE a.paises=p.opcion and a.estados=e.opcion ORDER BY a.nombre"
Los paises los tengo en una tabla que se llama "lista_paises" con los campos "id" y "opcion"; de igual forma a los estados en la tabla "lista_estados" con los campos "id" y "opcion" en donde el campo "opcion" tengo el nombre del pais o estado, respectivamente.

Anteriormente, la consulta me mostraba el "id" del pais y el "id" del estado y no lo necesito así porque a la hora de exportar mi consulta a excel lo guarda así. Lo que quiero que me muestre es el nombre del pais y del estado.

¿En qué estoy fallando?
  #4 (permalink)  
Antiguo 20/09/2011, 12:11
 
Fecha de Ingreso: septiembre-2011
Ubicación: Tabasco Mexico
Mensajes: 30
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Mostrar nombre de un campo en lugar de su ID

Alguien me ayude, por favor :(

Etiquetas: lugar, mysql, nombre, registro, tabla, campos
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 05:01.