Foros del Web » Programando para Internet » PHP »

Mostrar campo de una clave foranea

Estas en el tema de Mostrar campo de una clave foranea en el foro de PHP en Foros del Web. QUE TAL COLEGAS. BUENO TENGO DUDAS.... RESULTA QUE TENGO DOS TABLAS RELACIONADAS TABLA CLIENTE Y TABLA CIUDAD. CREATE TABLE IF NOT EXISTS `ciudad` ( `ID_CIUDAD` ...
  #1 (permalink)  
Antiguo 06/12/2011, 10:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 13 años, 5 meses
Puntos: 3
Mostrar campo de una clave foranea

QUE TAL COLEGAS.

BUENO TENGO DUDAS....
RESULTA QUE TENGO DOS TABLAS RELACIONADAS
TABLA CLIENTE Y TABLA CIUDAD.

CREATE TABLE IF NOT EXISTS `ciudad` (
`ID_CIUDAD` int(11) NOT NULL,
`NOMBRE_CIUDAD` varchar(50) DEFAULT NULL,
PRIMARY KEY (`ID_CIUDAD`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


INSERT INTO `ciudad` (`ID_CIUDAD`, `NOMBRE_CIUDAD`) VALUES
(1, 'arica'),
(2, 'calama'),
(3, 'valparaiso'),
(4, 'concepcion');


CREATE TABLE IF NOT EXISTS `cliente` (
`ID_CLIENTE` int(11) NOT NULL,
`ID_CIUDAD` int(11) NOT NULL,
`NOMBRE_CLIENTE` varchar(50) DEFAULT NULL,
PRIMARY KEY (`ID_CLIENTE`),
KEY `FK_RELATIONSHIP_1` (`ID_CIUDAD`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Y LOS CODIGOS
FORM1.PHP
Código PHP:
<?php
include("conexion1.php");?>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>form1</title>
</head>
<body>
            <table>
           <form action="registrar.php" method="post" name="form"  >
           <tr>
           <td>id :</td>
           <td>
           <input name="id" id="id" type="text" />
           </td>
           </tr>
           <tr>
           <td>Nombre:</td>
           <td><p>
             <input name="nombre" type="text" />
           </td>
           </tr>
                       
            <tr>
          <?php 
              $query
="SELECT id_ciudad,nombre_ciudad FROM ciudad";
              
$resultado=mysql_query($query,$con);?>
                <td> Ciudad:</td>
                <td> <select name="ciudad_cli">
                <option value="0">Seleccione ciudad</option>
                  <?php
                 
while($lista=mysql_fetch_array($resultado))
                    echo 
"<option  value='".$lista["id_ciudad"]."'>".$lista["nombre_ciudad"]."</option>"
            
?>
                  </select></td>
                </tr>    
                 <tr>
                <td></td><td><input type="submit" name="enviar" /></td></tr>
                </table>
                <A href="listado.php">listado</A>
</body>
</html>
REGISTRAR.PHP
Código PHP:
<?php
include("conexion1.php");
if(isset(
$_POST['id']) && isset($_POST['nombre']))
     {
     
$id$_POST['id']; 
    
$nombre $_POST['nombre'];
    
$ciudad $_POST['ciudad_cli'];
                    
                
$query 'INSERT INTO cliente (id_cliente, nombre_cliente,id_ciudad)
                                VALUES (\''
.$id.'\' , \''.$nombre.'\',\''.$ciudad.'\'   )';
                
mysql_query($query) or die(mysql_error());
                
?>
                    <script>
                alert("Registro Exitoso!");
                location.href="listado.php";
                    </script>
                <?php
            
}
        
?>
LISTADO.PHP
Código PHP:
<?php
include("conexion1.php");
$query "SELECT * FROM cliente";
        
$clientes mysql_query($query,$con);
        
$numfilas mysql_num_rows($clientes);
?>
<table width="200" border="1">
  <tr>
    <th scope="col">id</th>
    <th scope="col">nombre</th>
    <th scope="col">ciudad</th>
  </tr>
    <?php
            
for ($i=0$i<$numfilas$i++) {
        
?>
  <tr>
    <td><?php 
        $row 
mysql_fetch_array($clientes);
        echo 
$row['ID_CLIENTE'];?></td>
    <td><?php echo $row['NOMBRE_CLIENTE'];?></td>
    <td><?php echo $row['ID_CIUDAD'];?></td>

  </tr>
<?php ?>
</table>
MI DRAMA ES QUE EN LISTADO.....QUISIERA MOSTRAR EL NOMBRE DE LA CIUDAD....QUE ESTA EN LA TABLA CIUDAD...PERO NO EL CODIGO???

COMO LO PUEDO SOOLUCIONAR???


ID_CIUDAD-> ES CLAVE FORANEA EN CLIENTE!
  #2 (permalink)  
Antiguo 06/12/2011, 12:07
Avatar de Miztli  
Fecha de Ingreso: abril-2007
Mensajes: 39
Antigüedad: 17 años
Puntos: 1
Respuesta: Mostrar campo de una clave foranea

Hola!,

Tienes que hacer un segundo query en Listado.php
Después de haber consultado el registro, tu obtienes el id de la ciudad, con este id debes de havcer una consulta a la tabla ciudad.

Saludos!!!
Miztli

Etiquetas: clave, html, mysql, registro, sql, tabla, foreignkey, 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 17:15.