Te toma la ultima iteracion. Para que se te una al resto del array te falta los corchetes al final de $cliente. 3 consejos:
- La clave de un array debe ser algo sencillo. No es aconsejable añadir espacios y menos el caraceter º, eso lo puedes añadir en el array.
- Deberias leer un poco mas sobre sentencias MySQL, para intentar sacar todos los clientes en una sola sentencia. Por lo que estoy viendo haces una sentencia por cada cliente, ademas de la inicial. Es decir que si tienes 100 clientes haces 101 sentencias MySQL, algo que retardara un monton tu script incluso lo detendra. :
- Si no puedes sacar la sentencia MySQL de la iteracion deberias añadir al final mysql_free_result(), para evitar que se te llene la memoria.
Código PHP:
while($muestras = mysql_fetch_array($sql_muestras)){ //Por cada muestra hacemos la consulta necesaria para rescatar los datos del cliente
$id_cliente = $muestras['Cliente_id']; //cogemos su id
$num_cliente ++; // sumamos uno al numero de etiquas
/*
*Intenta sacar esta sentencia fuera. Haces una sentencia MySQL por cada iteracion
*/
$sql_cliente = mysql_query("SELECT nombre, domicilio, localidad, provincia, cp FROM clientes_1 WHERE Id = $id_cliente")or die ("Error en la consulta sql_cliente".mysql_error());
//recogemos sus datos en la variable datos_cliente
$datos_cliente = mysql_fetch_array($sql_cliente);
// almacenamos en el array los datos de cada uno de los clientes. Te falta los corchetes. Y deberias cambiar la clave del array
$cliente[] = array
( $num_cliente => array
( "cliente" => "cliente nº:".$num_cliente
"nombre" => $datos_cliente[0],
"direccion" => $datos_cliente[1],
"localidad" => $datos_cliente[2],
"provincia" => $datos_cliente[3],
"cp" => $datos_cliente[4],
)
);
print_r($cliente);
mysql_free_result($sql_cliente);
}