Foros del Web » Programando para Internet » PHP »

Listado de contactos - Interaccion entre diferentes tablas de la base de datos

Estas en el tema de Listado de contactos - Interaccion entre diferentes tablas de la base de datos en el foro de PHP en Foros del Web. Hola! Estoy armando un proyecto en PHP es un listado de contactos. Ya lo tengo casi terminado con sus archivos para subir, editar, borrar y ...
  #1 (permalink)  
Antiguo 31/08/2011, 07:25
 
Fecha de Ingreso: febrero-2010
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 0
Listado de contactos - Interaccion entre diferentes tablas de la base de datos

Hola! Estoy armando un proyecto en PHP es un listado de contactos. Ya lo tengo casi terminado con sus archivos para subir, editar, borrar y un panel donde se muestran los contactos.
Tengo un solo problema, en una parte del listado me muestra unos datos que al cargar el contacto se seleccionan de una base de datos. Estos datos estan cargados en una tabla con un id numerico y el dato en si, resulta que no se como hacer para que en el listado me muestre el dato en palabras y no el ID numerico.
Subi el proyecto para que si alguien me puede ayudar a terminarlo tambien tenga acceso al material para usarlo si lo necesita.

https://rapidshare.com/#!download|286tg2|1705300123|proyecto-php.zip|40|R~9CFD986A20230D69642D9E973172B02C|0|0

GRACIAS!
  #2 (permalink)  
Antiguo 31/08/2011, 07:39
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Listado de contactos - Interaccion entre diferentes tablas de la base de d

Hace falta mas información. Estaría bueno que copies el código PHP de la pagina que tengas el problema.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 31/08/2011, 07:51
 
Fecha de Ingreso: febrero-2010
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Listado de contactos - Interaccion entre diferentes tablas de la base de d

lo copio pero subi todo el sistema para que lo vean completo con todos los archivos.

La parte donde tengo el problema es en TIPO ID, RUBROID y SUBRUBROID, me muestra los numeros de ID en vez del dato en texto.

<?php
$titulo="Listado de Clientes";
include("conexion.php");
?>


<html>
<head>
<title><?php echo($titulo); ?></title>
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" />
<!-- esto es una iso donde estan todos los caracteres que no estan en ingles, espanol, portugues, etc -->



<link href="estilos.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id=contenedor><br>
<br><h1><?php echo($titulo); ?></h1>
Ingrese el nombre del cliente que desea buscar:
<form action="resultado.php" method="post">
<input name="buscar" type="text" size="50" />
<br>
<!-- envio este dato -->
<br>
Seleccione el vendedor:<br>
<select name="tipo_id"> <!-- envio este dato -->
<option value="0">Todos los vendedores</option> <!-- envio este dato -->

<?php
$consulta="select tipo_id, tipo_nombre from tipo";
$resultado=mysql_query($consulta);
while($fila=mysql_fetch_array($resultado)){
?>

<option value="<?php echo($fila[tipo_id]);?>"><?php echo($fila[tipo_nombre]);?>
</option>

<?php
}
?>

</select>

<br>
<br>
<input type="submit" value="Buscar" />
</form>
<br>
<span class="vinculos"><a href="form_alta.php"><img src="photos/agregar.png" width="20" height="20" title="Agregar Nuevo" border="0"/> AGREGAR UN NUEVO CLIENTE</a></span><br><br>
<!-- inicio del contenido -->

<table width="920" align="center" border="0" cellspacing="0" cellpadding="0">
<tr>

<td bgcolor="#CCCCCC">VENDEDOR</td>
<td bgcolor="#CCCCCC">NUM CLIENTE</td>
<td bgcolor="#CCCCCC">EMPRESA</td>
<td bgcolor="#CCCCCC">CONTACTO</td>
<td bgcolor="#CCCCCC">WEB</td>
<td bgcolor="#CCCCCC">E-MAIL COMERCIAL</td>
<td bgcolor="#CCCCCC">E-MAIL PERSONAL</td>
<td bgcolor="#CCCCCC">DOMICILIO</td>
<td bgcolor="#CCCCCC">LOCALIDAD</td>
<td bgcolor="#CCCCCC">TELEFONO COMERCIAL </td>
<td bgcolor="#CCCCCC">TELEFONO PERSONAL</td>
<td bgcolor="#CCCCCC">RUBRO</td>
<td bgcolor="#CCCCCC">SUBRUBRO</td>
<td bgcolor="#CCCCCC">FUENTE</td>
<td bgcolor="#CCCCCC">OBSERVACIONES</td>
<td bgcolor="#CCCCCC">FECHA DE ALTA</td>
<td colspan="2" align="center" bgcolor="#CCCCCC"><a href="form_alta.php"><img src="photos/agregar.png" width="20" height="20" title="Agregar Nuevo" border="0"/></a></td>
</tr>

<?php
$consulta="select prd_id, num_cliente, prd_empresa, prd_contacto, prd_web, prd_email1, prd_email2, prd_domicilio, prd_localidad, prd_telefono1, prd_telefono2, rubroID, subrubroID, tipo_id, prd_fuente, prd_ob, prd_alta from productos";
$resultado=mysql_query($consulta);
$cantidad=mysql_num_rows($resultado);

//inicio del muestreo

while($fila=mysql_fetch_array($resultado)){

?>



<td><?php echo($fila[tipo_id]);?></td>
<td><?php echo($fila[num_cliente]);?></td>
<td><?php echo($fila[prd_empresa]);?></td>
<td><?php echo($fila[prd_contacto]);?></td>
<td><a href="http://<?php echo($fila[prd_web]);?>" target="_blank"><?php echo($fila[prd_web]);?></a></td>
<td><a href="mailto:<?php echo($fila[prd_email1]);?>"><?php echo($fila[prd_email1]);?></a></td>
<td><a href="mailto:<?php echo($fila[prd_email2]);?>"><?php echo($fila[prd_email2]);?></a></td>
<td><?php echo($fila[prd_domicilio]);?></td>
<td><?php echo($fila[prd_localidad]);?></td>
<td><?php echo($fila[prd_telefono1]);?></td>
<td><?php echo($fila[prd_telefono2]);?></td>
<td><?php echo($fila[rubroID]);?></td>
<td><?php echo($fila[subrubroID]);?></td>
<td><?php echo($fila[prd_fuente]);?></td>
<td><?php echo($fila[prd_ob]);?></td>
<td><?php echo($fila[prd_alta]);?></td>

<td><a href="form_editar.php?prd_id=<?php echo($fila[prd_id]);?>"><img src="photos/editar2.png" width="20" height="20" title="Modificar" border="0"/></a></td>
<td><a href="form_borrar.php?prd_id=<?php echo($fila[prd_id]);?>"><img src="photos/borrar2.png" width="20" height="20" title="Borrar" border="0"/></a></td>
</tr>
<?php
}
//fin del muestreo
mysql_close() ;
?>

<tr>
<td colspan="18" align="center" bgcolor="#CCCCCC">Se han encontrado <?php echo($cantidad);?> registros</td>
</tr>
</table>

<br><br><span class="vinculos"><a href="salir.php"><img src="photos/salir.png" width="20" height="20" title="Salir" border="0"/> SALIR DEL SISTEMA</a></span><br><br>

</div>
</body>

</html>
  #4 (permalink)  
Antiguo 31/08/2011, 08:09
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Listado de contactos - Interaccion entre diferentes tablas de la base de d

Tendrías que modificar tu query para traer datos de la otra tabla, una posible solución seria algo así

Código PHP:
$consulta "select prd_id,
                        p.num_cliente,
                        p.prd_empresa,
                        p.prd_contacto,
                        p.prd_web,
                        p.prd_email1,
                        p.prd_email2,
                        p.prd_domicilio,
                        p.prd_localidad,
                        p.prd_telefono1,
                        p.prd_telefono2,
                        (select r.nombrerubro from rubros r where p.rubroID = r.rubroID) as rubro,
                        (select r2.nombrerubro from rubros r2 where p.rubroID = r2.rubroID) as subrubro,
                        p.tipo_id,
                        p.prd_fuente,
                        p.prd_ob,
                        p.prd_alta
                    from productos p"

y luego al imprimirlo

Código PHP:
<td><?php echo($fila['rubro']); ?></td>
<td><?php echo($fila['subrubro']); ?></td>
También me gustaría aclarar que los subindices debes ponerlos entre comillas. Cada veo mas gente que no lo hace y esta MAL si bien funciona, es por 'casualidad' dado que php asume que es una constante y al no estar definida toma su valor como string.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 01/09/2011, 09:14
 
Fecha de Ingreso: febrero-2010
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Listado de contactos - Interaccion entre diferentes tablas de la base de d

hola! gracias por responder.
tengo algunas dudas:
porque se pone p. antes de recoger cada dato en el string?

cuando lo imprimo tambien deberia poner p. ?

GRACIAS!
  #6 (permalink)  
Antiguo 01/09/2011, 09:25
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Listado de contactos - Interaccion entre diferentes tablas de la base de d

p es un alias que le puse a la tabla (from productos p), cuando usas varias tablas en una misma query es muy practico identificarlas por nombres mas cortos.

Luego cuando pongo p.num_cliente estoy diciendo que num_cliente pertenece a la tabla p y como p es un alias de productos, seria que num_cliente pertenece a la tabla producto.

El alias es solo de uso interno en tu sql, de se pone cuando imprimes los datos.

Saludos!
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 01/09/2011, 09:32
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 8 meses
Puntos: 297
Respuesta: Listado de contactos - Interaccion entre diferentes tablas de la base de d

"p" lo que haces es una referencia a la tabla "p", por ejemplo "num_cliente", puede ser que exista en otra tabla que también usas en la consulta, para diferenciarla entre ellas pues dices "p.num_cliente" para referirte que quieres ese dato de la tabla "p" y no de la otra tabla.

Etiquetas: contactos, diferentes, listado, tabla, tablas
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 12:13.