Ver Mensaje Individual
  #25 (permalink)  
Antiguo 15/04/2014, 11:03
Avatar de SilviaMontanari
SilviaMontanari
 
Fecha de Ingreso: marzo-2014
Mensajes: 35
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ordenar array en php

Cita:
Iniciado por Qazser Ver Mensaje
Ahí está el fallo

Porque tu todos los valores del select los estas recogiendo en el while de la query, no hay necesitad de hacer otro bucle, es mas, ese ultimo bucle rompe todo.

De paso incluso optimizaciones en el código:

En serio, si separas el php del html cosas así ni te hubieran pasado, es solo un consejo, intenta programar mas limpio, separando las cosas, quedará todo mas ordenado y fallos así ocurren menos

Código PHP:
<?php
$p
=0;
$w=0;
echo
"<br>Total de Jockey cargados: $prn <br>";
for (
$w=0$w<($prn $joccero); $w++ ) {
 
$Pidjock2a=$Pidjock[$w];
$Pnomjoc2a=$Pnomjoc[$w];
 
 
 
$filtro3= ("SELECT *
 
 
    FROM turf_esta_joc as e1
 
    Left Join turf_jockey   AS j1       ON  e1.idjockey = j1.idjockey
 
 
    where e1.idjockey = '$Pidjock2a' and e1.anio = '$Anio' and e1.idubiccn=$Hipo
 
 
 
 
 
                "
) or die ("no se ha podido conectar");
 
if (
$result3 mysqli_query($mysqli$filtro3)) {
 
$row_cnt3 mysqli_num_rows($result3);
    
/* fetch associative array */
while ($fila3 mysqli_fetch_assoc($result3)) {
 
$Pidjoc[]       =   $fila3['idjockey'];
$PNomJoc[]      =   $fila3['jockey'];
$P1rocan[]      =   $fila3['1rocan'];
$P1ropor[]      =   $fila3['1ropor'];
$P2dacan[]      =   $fila3['2dacan'];
$P2dapor[]      =   $fila3['2dapor'];
$P3racan[]      =   $fila3['3racan'];
$P3rapor[]      =   $fila3['3rapor'];
$Ptrifecta[]    =   $fila3['trifecta'];
$P4tocan[]      =   $fila3['4tocan'];
$P4topor[]      =   $fila3['4topor'];
$Pcuatrifecta[] =   $fila3['cuatrifecta'];
$P5tocan[]      =   $fila3['5tocan'];
$P5topor[]      =   $fila3['5topor'];
$P6tocan[]      =   $fila3['6tocan'];
$P6topor[]      =   $fila3['6topor'];
$Ptotalcarrr[]  =   $fila3['carrtot'];
 
++
$p;
 
}}}

//Aqui la linea para ordenar el array campo 2
arsort($P1rocan);  

$y=0;
echo 
"Cantidad Jockey 2014 $p <br>";
for (
$y=0$y<($p); $y++ ) {
 
 
$Jockeysarray = array(
    
"0"  => $PNomJoc[$y],
    
"1"  => $P1rocan[$y],
    
"2"  => $P1ropor[$y],
    
"3"  => $P2dacan[$y],
    
"4"  => $P2dapor[$y],
    
"5"  => $P3racan[$y],
    
"6"  => $P3rapor[$y],
    
"7"  => $Ptrifecta[$y],
    
"8"  => $P4tocan[$y],
    
"9"  => $P4topor[$y],
    
"10"  => $Pcuatrifecta[$y],
    
"11"  => $P5tocan[$y],
    
"12"  => $P5topor[$y],
    
"13"  => $P6tocan[$y],
    
"14"  => $P6topor[$y],
    
"15"  => $Ptotalcarrr[$y],
);
 
<
tbody>
        <
tr>
            <
td ><?php echo "<b>$Jockeysarray[0] </b>";?></td>
            <td ><?php echo "<b>$Jockeysarray[1] </b>";?></td>
            <td ><?php echo "<b>$Jockeysarray[2] </b>";?></td>
            <td ><?php echo "<b>$Jockeysarray[3] </b>";?></td>
            <td ><?php echo "$Jockeysarray[4]";?></td>
            <td ><?php echo "<b>$Jockeysarray[5] </b>";?></td>
            <td ><?php echo "$Jockeysarray[6]";?></td>
            <td ><?php echo "$Jockeysarray[7]";?></td>
            <td ><?php echo "$Jockeysarray[8]";?></td>
            <td ><?php echo "$Jockeysarray[9]";?></td>
            <td ><?php echo "$Jockeysarray[10]";?></td>
            <td ><?php echo "$Jockeysarray[11]";?></td>
            <td ><?php echo "$Jockeysarray[12]";?></td>
            <td ><?php echo "$Jockeysarray[13]";?></td>
            <td ><?php echo "$Jockeysarray[14]";?></td>
            <td ><?php echo "$Jockeysarray[15]";?></td>
            <td ><?php echo "$Anio";?></td>
        </tr>
</tbody>
</div>
 
<?php
 
}
No te lo he cambiado mucho pero en realidad, ni la varible $Jockeysarray te hace falta...si directamente rellenas en el html las variables que son..o sea

<td ><?php echo "<b>$PNomJoc[$y] </b>";?></td>
<td ><?php echo "<b>$P1rocan[$y] </b>";?></td>
<td ><?php echo "<b>$P1ropor[$y] </b>";?></td>

Ya te funcionaria y tendrias menos codigo

Ten en cuenta que como el $Jockeysarray está en un bucle...lo unico que se le agrega es el 1 valor de cada array, y la siguiente vez que pasa por el bucle se sobreescribe por el siguiente valor, nunca llegar a tener un array de arrays. Pero si tu meta es rellenar el html tampoco lo necesitas.

Nunca podrias haber ordenado bien el campo 2 por eso, porque campo 2 en ningun momento era un array, simplemente 1 valor.
No se resolvió

Igualmente sigo probando, pero no encuentro ninguna explicación de porque no se forma el array, incluso probé de crearlo dentro del Select y nada, si se te ocurre alguna idea, será bienvenida