Mostrar un registro asociado a otro??

Iniciado por Geg1, 16 Marzo 2018, 23:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Geg1

Hola a todos! tengo la siguiente tabla:

<table width="712" border="0">
  <?php do { ?>
    <tr>
      <td width="129"><?php echo $row_Pedidos['id_pedido']; ?></td>
      <td width="100"><?php echo $row_Pedidos['fecha']; ?></td>
      <td width="107"><?php echo $row_Pedidos['cliente_id']; ?></td>
      <td width="130"><?php echo $row_Pedidos['producto_id']; ?></td>
      <td width="160" widht="20">
      <td width="60" widht="20">&nbsp;</td>
    </tr>
    <?php } while ($row_Pedidos mysql_fetch_assoc($Pedidos)); ?>
</table>



La cual muestra todos los pedidos ordenados. Pero yo quiero que el campo "cliente_id" relacionado con la tabla "clientes" muestre el campo "nombre" asociado a este id. lo mismo con el campo "producto_id"
hay alguna forma de mostrar los campos relacionados a estos id?

Gracias a todos!

Geg1

He usado este codigo previamente y tampoco se muestran los nombres


<?php


$link 
mysqli_connect("localhost""root""");

mysqli_select_db($link"gestorpedidos");

$tildes $link->query("SET NAMES 'utf8'"); 

$result mysqli_query($link"SELECT * FROM clientes");

while (
$row_Cliente mysqli_fetch_array($result)){

$row_Cliente $row_Cliente["id_cliente"] ] =$row_Cliente["nombre"]; 
}

mysqli_free_result($result);

mysqli_close($link);

?>




<table width="712" border="0">
 <?php do { ?>
   <tr>
     <td width="129"><?php echo $row_Pedidos['id_pedido']; ?></td>
     <td width="100"><?php echo $row_Pedidos['fecha']; ?></td>
     <td width="107"><?php echo $row_Cliente[$row_Pedidos['cliente_id']]; ?></td>
     <td width="130"><?php echo $row_Pedidos['producto_id']; ?></td>
     <td width="160" widht="20">
     <td width="60" widht="20">&nbsp;</td>
   </tr>
   <?php } while ($row_Pedidos mysql_fetch_assoc($Pedidos) ); ?>
</table>



Pero deja el campo vacio :(

srWhiteSkull

#2
Claro, al menos razona por qué no funciona... veamos...
...
$result = mysqli_query($link, "SELECT * FROM clientes");

while ($row_Cliente = mysqli_fetch_array($result)){

....

metes el resultado de la consulta MySQL en un array, bien sigamos..
.
...
$row_Cliente [ $row_Cliente["id_cliente"] ] =$row_Cliente["nombre"];

metes un elemento dentro del array de resultados?! pero que c***nes!?! Ahí tienes que crear un array!!! no uses el del resultado!!! por ejemplo:
...
$miArrayDeNombres [ $row_Cliente["id_cliente"] ] =$row_Cliente["nombre"];


y luego      

...
<td width="107"><?php echo $miArrayDeNombres[$row_Pedidos['cliente_id']]; ?></td>


buff, hay que espabilar chaval  :xD

PD Por si acaso comprueba que el array de nombres que creas está lleno , por ejemplo usando echo var_dump($miArrayDeNombres); y es importante que el $row_Pedidos['cliente_id'] te de las claves necesarias para devolver esos valores.