【问题标题】:repeat process until a condition is met重复过程直到满足条件
【发布时间】:2015-07-28 11:36:11
【问题描述】:

我正在尝试在要分配的课程和已分配到时间段的课程中检查普通学生。

$chkcommsa = 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 '%$docamat%'
    GROUP BY student.matric") or die(mysql_error());

$num_rowea = mysql_num_rows($chkcommsa);

if($num_rowea >= 1) {

    $t_slot_times = $t_slot_time + 1;

}

如果$t_slot_times为2,则查询要分配的当前课程($currentass)与已分配到时隙2的所有其他课程($docamat)之间的普通学生,如果是普通学生,系统将时隙加一到 3.

如果$t_slot_times 是 3,我希望系统再次检查要分配的新课程和已分配到时间段 3 的其他课程之间的普通学生。我只想重复对 $t_slot_times 的查询,直到查询返回 0 结果。

【问题讨论】:

  • for(i=0;irun_your_query_code } ?..

标签: php mysql while-loop iteration do-while


【解决方案1】:

根据您的问题,使用以下逻辑并在 $t_slot_times 为 2 且 $t_slot_times 为 3 时将查询添加到您希望添加的循环中

if($num_rowea >= 1) {
    $t_slot_times = $t_slot_time + 1;

    for ($i = 1;$i<=20;$i++)
    {
      //code here
     }

}

【讨论】:

  • 谢谢,但 $t_slot_times 不只是 2 和 3,它可以根据整个代码中的先前说明随机更改为 1-20 之间的任何值。你的意思是我必须在循环中再次重复查询,然后在此之前使用 if($num_rowea >= 1) {
  • 请注意,新的“$t_slot_times”在下面的查询中用于获取已经分配给它的课程,这些课程存储在“$docama”中,将在我们的旧查询中使用在最初的问题中。 '$queuen = mysql_query("SELECT * FROM put_exam WHERE sess_id ='".$t_slot_times."'") or die(mysql_error()); $arrDatasa= 数组(); while($rowsa = mysql_fetch_array($queuen)) { $arrDatasa[]=$rowsa['course_code']. '|'; $docam = array_filter($arrDatasa); } foreach($arrDatasa as $a=> $rowsa){ $docama.=$docam[$a]; } '
  • @Yommy,检查我更新的答案,现在你可以做任何事情,直到 20 个循环,你可以用动态购买的价值替换这 20 个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2019-11-10
  • 2014-05-03
  • 2018-03-13
  • 2019-11-07
  • 2018-11-09
相关资源
最近更新 更多