Mostrar mis clientes con sus pedidos en un solo html

Estoy diseñanado un sistemita donde se ingresan los datos del cliente, los datos de envío y los productos que desea comprar. Hasta ahí todo bien.
Pero como hago para mostrar todos los pedidos de todos mis clientes en un html. Los datos personales y los productos que compro, así cada cliente.
En mi base de datos tengo una tabla donde están todos los datos del cliente, otra donde están los productos, y la relación de estas dos tablas donde esta el id del cliente y el id del producto.
¿Cómo lo realizo?

1 Respuesta

Respuesta
1
Pues desde un archivo php tendrías que realizar una consulta mysql y de ahí sacar todos los datos.
Por ejemplo:
$result=mysql_query("select * from clientes order by nombre",$link);
while($row=mysql_fetch_array($result))
{
//muestro resultados

echo $row['nombre'].' ha solicitado los siguientes productos: ';
//para saber los pedidos
$result2=mysql_query("select * from clientes_productos where id_cliente=".$row['id_cliente],$link);
$productos = array();

while($rowpedidos=mysql_fetch_array($result2))
{

array_push($productos, $rowpedidos['id_producto']);

}
$result3 = mysql_query("select * from productos where id_producto in (".implode(',',$productos).")",$link);
while($rowproductos=mysql_fetch_array($result3))
{
echo '<br>- '.$rowproductos['nombreproducto'];
}

}
Donde $link es la conexión a la base de datos y el resto, si tienes dudas me comentas, he intentado ponértelo lo más claro posible.
Con mysql_query, ejecutas la consulta que pones dentro del paréntesis a la base de datos en la que enlaces desde $link (ya sabes, mysql_connect...).
Con mysql_fetch_array lo que haces es extraer los resultados de la consulta en arrays o matrices, de manera que a la hora de mostrarlo, utilizamos un while para recorrer dicho array.
Hay maneras más complejas de hacer esto, pero esta es la básica y por la que empezamos todos.
Muchas gracias por tu pronta respuesta.
Lo acabo de probar y me sale error en la ultima parte donde tiene que mostrar los productos.
Te copio el código:
$result=mysql_query("select * from orden order by nom_ape");
    while($row=mysql_fetch_array($result)){
    echo $row['nom_ape'].' ha solicitado los siguientes productos: ';
    $result2=mysql_query("select * from rel_ord_prod where id_orden=".$row['id']);
    $productos = array();
    while($rowpedidos=mysql_fetch_array($result2)){
    array_push($productos, $rowpedidos['id_productos']);
    }
    $result3 = mysql_query("select * from productos where id in (".implode(',',$productos).")");
    while($rowproductos=mysql_fetch_array($result3)){
    echo '<br>- '.$rowproductos['nombre'];
    }
    }
Me muestra los nombres pero no los productos.
Orden es donde están los datos del cliente. Productos donde están los productos. Rel_ord_prod, la relacion de ambas.
Acabo de borrar los registros de las tablas orden y rel_ord_prod, genere algunos nuevos y ahors si funciona perfecto.
Muchísimas gracias, sos una genia.
Ahora, otras consultas si no es mucha molestia.
Dentro de la tabla orden tengo otras filas, como id_localidad, id_metodo_pago que obviamente esos id vienen de otras tablas (localidades, metodo_pago) y me gustaría también que aparecieran en este html, que en cada cliente me aparezca el método de pago y de que localidad es.
Creo que ahora estoy más cerca de solucionarlo pero si me podes ayudar con algo, seria mejor.
Tienes que hacer exactamente lo mismo que para sacar los productos.
Es decir, debajo mismo de los productos si quieres (empezando por debajo, justo encima de la última llave que se cierra), tendrías que poner:
$result4 = mysql_query("select * from localidades where id_localidad =".$row['id_localidad]);
    while($rowlocalidad=mysql_fetch_array($result4)){
    echo '<br>Localidad '.$rowlocalidad['nombre'];
    }
Eso para la localidad, para el método de pago sería igual pero preguntando en la tabla metodos_pago y pasándole el campo correspondiente...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas