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.