Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Geg1 en 16 Marzo 2018, 23:44 pm



Título: Mostrar un registro asociado a otro??
Publicado por: Geg1 en 16 Marzo 2018, 23:44 pm
Hola a todos! tengo la siguiente tabla:

Código:
<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!


Título: Re: Mostrar un registro asociado a otro??
Publicado por: Geg1 en 17 Marzo 2018, 17:16 pm
He usado este codigo previamente y tampoco se muestran los nombres


Código:
<?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);

?>


Código:
<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 :(


Título: Re: Mostrar un registro asociado a otro??
Publicado por: srWhiteSkull en 17 Marzo 2018, 19:45 pm
Claro, al menos razona por qué no funciona... veamos...
Código:
...
$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..
.
Código:
...
$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:
Código:
...
$miArrayDeNombres [ $row_Cliente["id_cliente"] ] =$row_Cliente["nombre"];

y luego      

Código:
...
<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.