Я работаю над системой планирования, и мне нужна ваша помощь. У меня код работает хорошо,
$t_slot_time
является текущим временным интервалом, если условие является положительным на линии 19, $t_slot_time
увеличение на 2, и $t_slot_times
становится новым временем.
как я могу повторить тот же процесс от 1 до 21 для нового временного интервала $t_slot_times
где $t_slot_time
на line1 заменяется новым $t_slot_times
в строке 20 и последующих значениях после приращения до этого $num_rowe >= 1
не устраивает.
Спасибо
$queuen = mysql_query("SELECT * FROM put_exam WHERE sess_id ='".$t_slot_time."'") or die(mysql_error());
$arrDatasa = array();
while($rowsa = mysql_fetch_array($queuen))
{
$arrDatasa[]=$rowsa['course_code']. '|';
$docam = array_filter($arrDatasa);
}
foreach($arrDatasa as $a=> $rowsa)
{
$docama .= $docam[$a];
}
//Store current coursecode to assisgn into currentass
$currentass = $e_course_code;
//Check for common student between the last assigned course and current course to be assigned, if yes increment timeslot by 2
$chkcomms = mysql_query("SELECT student.matric, student.std_name FROM student
JOIN course_reg e1 ON e1.matric=student.matric
JOIN course c1 ON c1.course_code=e1.course_code
JOIN course_reg e2 ON e2.matric=student.matric
JOIN course c2 on c2.course_code = e2.course_code
WHERE c1.course_code = '".$currentass."'
AND c2.course_code RLIKE '%$docama%'
GROUP BY student.matric") or die(mysql_error());
// Count number of rows
$num_rowe = mysql_num_rows($chkcomms);
if($num_rowe >= 1) {
$t_slot_times = $t_slot_time + 2;
}
$num_rowe = mysql_num_rows($chkcomms);
for( $i=0; $i<=$num_rowe; $i++){
...
}
Вот как я обычно справляюсь с такими вещами!
РЕДАКТИРОВАТЬ: Надеюсь, я понял, что вы пытаетесь сделать, также обратите внимание, я не проверял это на наличие ошибок!
function get_codes( $t_slot_time ){
$queuen = mysql_query("SELECT * FROM put_exam WHERE sess_id ='".$t_slot_time."'") or die(mysql_error());
$arrDatasa = array();
while($rowsa = mysql_fetch_array($queuen))
{
$arrDatasa[]=$rowsa['course_code']. '|';
$docam = array_filter($arrDatasa);
}
foreach($arrDatasa as $a=> $rowsa)
{
$docama .= $docam[$a];
}
return $docama;
}
//if you need it done at least once then
$docama = get_codes( $t_slot_time );
//Store current coursecode to assisgn into currentass
$currentass = $e_course_code;
//Check for common student between the last assigned course and current course to be assigned, if yes increment timeslot by 2
$chkcomms = mysql_query("SELECT student.matric, student.std_name FROM student
JOIN course_reg e1 ON e1.matric=student.matric
JOIN course c1 ON c1.course_code=e1.course_code
JOIN course_reg e2 ON e2.matric=student.matric
JOIN course c2 on c2.course_code = e2.course_code
WHERE c1.course_code = '".$currentass."'
AND c2.course_code RLIKE '%$docama%'
GROUP BY student.matric") or die(mysql_error());
// Count number of rows
$num_rowe = mysql_num_rows($chkcomms);
if($num_rowe >= 1) {
for( $i=0; $i<=$num_rowe; $i++){
$t_slot_time = $t_slot_time + 2;
$docama = get_codes( $t_slot_time );
//add code to do what ever you want with $docama!
}
}
Других решений пока нет …