Ver Mensaje Individual
  #9 (permalink)  
Antiguo 17/04/2012, 03:12
sir_nano
 
Fecha de Ingreso: marzo-2012
Ubicación: Valladolid
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Horror en arrays. Comparar valores iguales.

No. Eso hace lo mismo que lo mio. Exactamente, tu codigo, hace una tabla (id, desc, fecha, num_pieza, uds), luego vuelve a hacer otra tabla identica donde varia el num_pieza y las uds, y luego ya hace la que deberia ser la segunda tabla (es la tercera) con el segundo id. Vamos, que hace lo mismo que mi codigo: una tabla por referencia (num_pieza) en vez de una tabla por id. Os voy a pegar el codigo que he hecho yo, a ver si alguien es capaz de echarme una mano con los arrays, porque si me dibuja dos tablas, pero la desc y la fecha me las repite por no recorrer todos los arrays al mismo tiempo. No os hagais mucho caso de los comentarios que son de otra pelicula:
Código:
while ($row[]=mysql_fetch_assoc($resultado));

mysql_free_result($resultado);
mysql_close($c);
array_pop($row);
array_multisort($row, SORT_ASC);
$row2=$row;
$row3=$row;
function filtrar_array(&$array, $clave_orden) {
  $array_filtrado = array(); // inicializamos un nuevo array
  // creamos un bucle foreach para recorrer el array original y “acomodar” los datos
  foreach($array as $index=>$array_value) {
    // guardamos temporalmente el nombre de la categoría
    $value = $array_value[$clave_orden];
    // eliminamos la categoria del registro, ya no la necesitaremos
    unset($array_value[$clave_orden]);
    // creamos una clave en nuestro nuevo array, con el nombre de la categoria
    // y como valor le sumamos el array conteniendo producto y precio
    $array_filtrado[$value][] = $array_value;
    /* en cada iteración, si el nombre de la categoría ya figura como clave, será
       sobreescrito y se le agregará como nuevo valor, solo los datos de producto
       y precio. Si la categoria no existe, ahí sí, creará la nueva clave */
  }
  $array = $array_filtrado; // modificamos automáticamente nuestro array global $row
}

//llamamos a la función para filtrar los datos
filtrar_array($row, 'id_averia');
filtrar_array($row2, 'desc_averia');
filtrar_array($row3, 'fecha');

//recorremos el array para imprimirlo con formato HTML
foreach($row as $id_averia=>$num_piezas) {
	echo "
		<table align=center border=2>
		<FORM name='modificar' method='POST' action='consultaaverias2.php'>
		<tr>
		<td>ID de la averia</td>
		<td><input type='text' name='id_averia' value='$id_averia'></td>
		</tr>
	";
foreach($row2 as $desc_averia=>$descripciones){	
	echo "
	<tr>
	<td>Descripción de la averia</td>
	<td><input type='text' name='desc_averia' value='$desc_averia'></td>
	</tr>
	";
foreach($row3 as $fecha=>$fechas){	
$prueba=$fecha;
$sFechaNormal = implode( '/', array_reverse( explode( '-', $prueba ) ) ) ;
	echo "
	<tr>
	<td>Fecha Averia</td>
	<td><input type='text' name='fecha' value='$sFechaNormal'></td>
	</tr>
	";		
  // imprimimos la categoría
  // recorremos los productos
  foreach($num_piezas as $num_pieza) {
    // imprimimos producto y precio
    $num_pieza1=$num_pieza['num_pieza'];
	echo "
	<tr>
	<td>Referencia de la Pieza</td>
	<td><input type='text' name='num_pieza' value='$num_pieza1'></td>
		</tr>
		";
    $unidades1=$num_pieza['unidades'];
	echo "
	<tr>
	<td>Cantidad</td>
	<td><input type='text' name='unidades' value='$unidades1'></td>
	</tr>
	";	
  }
  }    		
  }
	echo "
	<td align=center><input type='submit' value='Modificar'></td>
	</tr>
	</form>
	</table>
	"; 
}