我想從下面的查詢中迭代數組$code
和$per_section
的值。我應該使用什麼循環方法?或者這是正確的做法?如何在查詢中迭代數組的值?
//total students
$count_query=mysql_query("select total_students from subject where teacherid = '$get_id'");
while($count_row=mysql_fetch_array($count_query)){
$total += $count_row['total_students'];
}
$query = mysql_query("Select code,total_students from subject where teacherid='$get_id'");
while($result=mysql_fetch_assoc($query))){
$section = ($result['total_students']/ $total)*30;
$per_section[] = round($section, 0, PHP_ROUND_HALF_UP);
$code[] = $result['code'];
}
//perform this statement for a number of times depending on the number of array of $code..
$user_query=mysql_query("select * from result where subject_id ='$code' and faculty_id = '$get_id'LIMIT $per_section ")or die(mysql_error());
while($row=mysql_fetch_assoc($user_query)){
...
}
的樣本數據: 主題表
code total_students teacherid
IT230 45 11-0009
IT213 44 11-0009
IT214 40 11-0009
結果表
subject__id faculty_id
IT230 11-0009
IT213 11-0009
IT214 11-0009
預期結果: 我想只顯示30條記錄,其結果表匹配的學生。
由於該教師的總學生45,44,40 = 129。這是$per_section
IT230僅需要學生=(129分之45)* 30 = 10.46或我只11的結果的需要。
IT213只需要學生=(44/129)* 30 = 10.23或我只需要10個結果。
IT214只需要學生=(40/129)* 30 = 9.3或我只需要9個結果。
我想搜索IT230中的記錄並只選擇其中的11個。 只有10個IT213和9個IT214。由於我只有3條記錄,只有這三條記錄纔會顯示出來。
mysql_query在php5.6中被棄用,並且在php7中不被支持,使用PDO來替代http://php.net/manual/en/book.pdo.php – brianforan
也使用準備語句http://php.net/manual/en /pdo.prepared-statements.php防止SQL注入 – brianforan
不循環,加入這兩個表。 – Barmar