【问题标题】:seperate students by different groups sql按不同组sql分隔学生
【发布时间】:2017-05-11 12:55:02
【问题描述】:

如何分隔学生并使用两个嵌套的for循环来存储数据..?

$jobID              =   85
$gd_individuals     =   4 ;

$studentQuery = $conn->query(" select s.student_pid,i.email,s.student_email, s.student_fname,
       s.student_lname,s.profile_pic from r_job_invitations i 
       LEFT JOIN tbl_students s ON i.email = s.student_email 
      where i.id_job = ".$jobID." and inv_res = 1");

//$studentResults = $studentQuery->fetch_assoc();   //total 8 students
$totalIndividuals    = mysqli_num_rows($studentQuery); //total 8 students

$groups = 2   //which is coming from total/gd_individual 8/4=2

for($j = 0; $j<$groups; $j++)   {

while($studentResults = $studentQuery->fetch_array()){    //total 8 studnets

echo "INSERT INTO r_test_group 
        (student_id,job_id,group_name) 
        values (".$studentResults['student_pid'].", ".$jobID.",Group".$j." )";


           }
        }
        exit;
    }

我想将前 4 个学生存储为 group1,将后 4 个学生存储为 group2 等等。

我的结果是这样来的

INSERT INTO r_test_group (student_id,job_id,group_name) values (22, 85,Group0 )
INSERT INTO r_test_group(student_id,job_id,group_name) values (23, 85,Group0 )
INSERT INTO r_test_group (student_id,job_id,group_name) values (25, 85,Group0 )
INSERT INTO r_test_group (student_id,job_id,group_name) values (26, 85,Group0)
INSERT INTO r_test_group (student_id,job_id,group_name) values (27, 85,Group0 )
INSERT INTO r_test_group(student_id,job_id,group_name) values (28, 85,Group0 )
INSERT INTO r_test_group (student_id,job_id,group_name) values (29, 85,Group0 )

我正在寻找的实际结果是前 4 个学生是 group1 和 第二个 4 组 2 等等......

【问题讨论】:

  • 您的 PHP 代码已满或错误。有很多遗漏的;,例如在第 1 行。你应该先看看这个。
  • 尝试使用 $variable 为每个学生增加,直到它达到 4 然后另一个 $variable 在第一个达到 4 后增加 1(代表组号)并触发第一个 $variable 重置为 0
  • 为什么要“存储”这个?只需即时计算即可
  • @Strawberry 即使在那种情况下我也必须遵循相同的标准..?

标签: php mysql sql for-loop nested-loops


【解决方案1】:

试试这个:

      $studentResults = $studentQuery->fetch_array();
    $counter  = 0;
    for($j = 0; $j<$groups; $j++)   {
    for($i = 0; $i<4; $i++){
    echo "INSERT INTO r_test_group 
            (student_id,job_id,group_name) 
            values (".$studentResults[$counter]['student_pid'].", ".$jobID.",Group".$j." )";
   $counter++;
    }
    }

【讨论】:

  • 不工作.. Illegal string offset 'student_pid' in here .$studentResults[$counter]['student_pid']
  • 而不是 $studentResults = $studentQuery->fetch_array();使用 $studentResults = $studentQuery->fetch_assoc();
  • 现在小组正在分裂,但学生证没有到来.. @Omi
  • 我认为你的 student_pid 是 student_id 如果是这样,那么你可以访问学生 ID,如 $studentResults[$counter]['student_pid'];用 echo 试试吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 2014-07-31
  • 2022-08-03
  • 2016-02-17
  • 2014-07-09
  • 1970-01-01
  • 2016-09-21
相关资源
最近更新 更多