我一直在嘗試一段時間,但仍然,我卡在這裏。其實我需要從平均值中獲得排名。在這裏我的結果根據平均值排名在PHP的
Average Rank
39 39 rank is 1
32 32 rank is 1
51 51 rank is 1
57 57 rank is 1
我真正需要的是
Average Rank
39 3
32 4
51 2
57 1
我已經嘗試了幾種方法,但沒有什麼似乎工作。順便說一句這是我的代碼
<?php $avg = ($sumc)/($data['total']); echo number_format((float)$avg, 2, ',', ''); ?>
<?php
$array = array($avg);
$i=1;
foreach($array as $key=>$value)
{
$max = max($array);
echo "\n".$max." rank is ". $i."\n";
$keys = array_search($max, $array);
unset($array[$keys]);
if(sizeof($array) >0)
if(!in_array($max,$array))
$i++;
}
\t \t \t \t \t
,這裏是完整的代碼
<?php $nama_mapel=$ux['nama_mapel'];
$an = mysql_fetch_array(mysql_query("SELECT*FROM mapel where kode_kelas='$kode_kelas' and nama_mapel='$nama_mapel'"))?>
\t \t \t \t \t \t \t \t \t \t \t
<text style="display:none;"><?php if($NILAI_AKHIR!=0){$NILAI_AKHIR4=substr($NILAI_AKHIR/100*4,0,4); echo $NILAI_AKHIR4;} ?></text>
<tr>
<td width="5%" class="ki1234" height="auto" valign="center" align="center"><?php echo $no++ ;?></td>
<td width="40%" class="ki1234" height="auto" valign="center" align="left"> <?php echo $mmm['nama'];?></td>
\t \t \t \t \t <td width="10%" class="ki1234" height="auto" valign="center" align="center"><?php echo $nis; ?></td>
\t \t \t \t \t <?php
\t \t \t
\t \t \t $mapelz=mysql_query("SELECT*FROM mapel where kode_kelas='$kode_kelas' and id_tp='$id_tp'");
\t \t \t $arrg=[];
\t \t \t while($uxe = mysql_fetch_array($mapelz)){
\t \t $id_mapel=$uxe['id_mapel'];
\t \t
//awal nilai akhir// \t \t
$dren = mysql_query("SELECT*FROM nilai_siswa,data_siswa,penilaian_judul where nilai_siswa.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa.nis=data_siswa.nis and nilai_siswa.nis=$nis and penilaian_judul.id_mapel=$id_mapel and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp' order by data_siswa.id_siswa asc"); $jm=mysql_num_rows($dren); $jumlah_tugas=$jm;
if($jm==0){$jumlah="1";} else {$jumlah=$jm; };
$queryj=mysql_query("SELECT sum(n3_100) as rn3_100 FROM nilai_siswa,penilaian_judul where nilai_siswa.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa.nis=$nis and penilaian_judul.id_mapel=$id_mapel and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp'");
while($hasil=mysql_fetch_array($queryj))
{$rn3_100=substr($hasil['rn3_100']/$jumlah,0,5); $RATA_TUGAS=$rn3_100;}
$dren = mysql_query("SELECT*FROM nilai_siswa2,data_siswa,penilaian_judul where nilai_siswa2.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa2.nis=data_siswa.nis and nilai_siswa2.nis=$nis and penilaian_judul.id_mapel=$id_mapel and nilai_siswa2.jenis=2 and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp' order by data_siswa.id_siswa asc"); $jm=mysql_num_rows($dren); $jumlah_uh=$jm;
if($jm==0){$jumlah="1";} else {$jumlah=$jm;};
$queryj=mysql_query("SELECT sum(n_100) as rn_100 FROM nilai_siswa2,penilaian_judul where nilai_siswa2.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa2.nis=$nis and penilaian_judul.id_mapel=$id_mapel and nilai_siswa2.jenis=2 and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp'");
while($hasil=mysql_fetch_array($queryj))
{$rn_100=substr($hasil['rn_100']/$jumlah,0,5); $RATA_UH= $rn_100;}
$dren = mysql_query("SELECT*FROM nilai_siswa2,data_siswa,penilaian_judul where nilai_siswa2.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa2.nis=data_siswa.nis and nilai_siswa2.nis=$nis and penilaian_judul.id_mapel=$id_mapel and nilai_siswa2.jenis=3 and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp' order by data_siswa.id_siswa asc"); $jm=mysql_num_rows($dren); $jumlah_uts=$jm;
if($jm==0){$jumlah="1";} else {$jumlah=$jm;};
$queryj=mysql_query("SELECT sum(n_100) as rn_100 FROM nilai_siswa2,penilaian_judul where nilai_siswa2.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa2.nis=$nis and penilaian_judul.id_mapel=$id_mapel and nilai_siswa2.jenis=3 and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp'");
while($hasil=mysql_fetch_array($queryj))
{$rn_100=substr($hasil['rn_100']/$jumlah,0,5); $RATA_UTS= $rn_100;}
$dren = mysql_query("SELECT*FROM nilai_siswa2,data_siswa,penilaian_judul where nilai_siswa2.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa2.nis=data_siswa.nis and nilai_siswa2.nis=$nis and penilaian_judul.id_mapel=$id_mapel and nilai_siswa2.jenis=4 and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp' order by data_siswa.id_siswa asc"); $jm=mysql_num_rows($dren); $jumlah_us=$jm;
if($jm==0){$jumlah="1";} else {$jumlah=$jm;};
$queryj=mysql_query("SELECT sum(n_100) as rn_100 FROM nilai_siswa2,penilaian_judul where nilai_siswa2.id_penilaian_judul=penilaian_judul.id_penilaian_judul and nilai_siswa2.nis=$nis and penilaian_judul.id_mapel=$id_mapel and nilai_siswa2.jenis=4 and penilaian_judul.id_semester='$id_semester' and penilaian_judul.id_tp='$id_tp'");
while($hasil=mysql_fetch_array($queryj))
{$rn_100=substr($hasil['rn_100']/$jumlah,0,5); $RATA_US= $rn_100;}
if(!isset($RATA_TUGAS)){$RATA_TUGAS2=0;}else{$RATA_TUGAS2=$RATA_TUGAS;};
\t \t \t if(!isset($RATA_UH)){$RATA_UH2=0;}else{$RATA_UH2=$RATA_UH;};
\t \t \t if(!isset($RATA_UTS)){$RATA_UTS2=0;}else{$RATA_UTS2=$RATA_UTS;};
\t \t \t if(!isset($RATA_US)){$RATA_US2=0;}else{$RATA_US2=$RATA_US;};
$jumlahc=($persen['tugas']*$RATA_TUGAS2)/100+($persen['uh']*$RATA_UH2)/100+($persen['uts']*$RATA_UTS2)/100+($persen['us']*$RATA_US2)/100;
\t \t \t \t \t \t \t if($jumlah_tugas!=0){$k=1;} else {$k=0;};
\t \t \t \t \t \t \t if($jumlah_uh!=0){$l=1;} else {$l=0;};
\t \t \t \t \t \t \t if($jumlah_uts!=0){$m=1;} else {$m=0;};
\t \t \t \t \t \t \t if($jumlah_us!=0){$n=1;} else {$n=0;};
\t \t \t \t \t \t \t $JUMLAH_PERSEN1=($persen['tugas']*$k)+($persen['uh']*$l)+($persen['uts']*$m)+($persen['us']*$n);
\t \t \t \t \t \t \t if($JUMLAH_PERSEN1==0){$JUMLAH_PERSEN=1;}else{$JUMLAH_PERSEN=$JUMLAH_PERSEN1;};
\t \t \t \t \t \t \t $NILAI_AKHIRg=substr(($jumlahc/$JUMLAH_PERSEN)*100,0,5);
$nile= $NILAI_AKHIRg;
$arrg[] = $NILAI_AKHIRg;} ?>
\t \t \t
<?php $p = mysql_fetch_array(mysql_query("SELECT * FROM peringkat WHERE kode_kelas='$kode_kelas' and nis='$nis'and id_tp='$id_tp'")); ?> \t
\t \t <text style="display:none;"> <?php $sumc = 0; $output = ""; while($element = array_shift($arrg)){$sumc += $element; $output .= $element; if(sizeof($arrg) > 0){ $output .= " + ";}} echo $output . PHP_EOL;?></text>
\t \t <td width="15%" class="ki1234" height="auto" valign="center" align="center"><?php echo $sumc;?></td>
\t \t <text style="display:none;"><?php $result=mysql_query("SELECT count(*) as total FROM mapel WHERE kode_kelas='$kode_kelas' and kel!=3"); $data=mysql_fetch_assoc($result); echo $data['total'];?></text>
\t \t <td width="15%" class="ki1234" height="auto" valign="center" align="center"><?php $avg = ($sumc)/($data['total']); echo number_format((float)$avg, 2, ',', ''); ?></td>
\t \t <td width="15%" class="ki1234" height="auto" valign="center" align="center"><?php
$array = array($avg);
$i=1;
foreach($array as $key=>$value)
{
$max = max($array);
echo "\n".$max." rank is ". $i."\n";
$keys = array_search($max, $array);
unset($array[$keys]);
if(sizeof($array) >0)
if(!in_array($max,$array))
$i++;
}
?></td>
\t \t \t \t \t \t \t \t \t
</tr>
\t \t \t \t <?php }?>
需要你的幫助..任何人..?!
'$ array'只在您發佈的代碼中包含一個元素。有沒有其他(相關)的代碼呢? –
我只能給你的建議是:*先*建立一個數組,*然後*開始輸出一個表格。你現在試圖自己確定一個數字的等級,這總是會是1. –
@Justastudent如何添加另一個元素..?順便說一句,我只是張貼我的大代碼 – Azva