2016-12-27 3 views
0

Как отделить студентов и использовать два вложенных цикла для хранения данных ..?Отдельные студенты разных групп sql

$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 и т.д ..

myresult приходит как этот

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 и т. д.

+0

Ваш PHP код заполнен или ошибки. Есть много недостающих ';' например, в строке 1. Пусть вы должны сначала взглянуть на это. – Twinfriends

+0

попробуйте использовать переменную '$', которую вы увеличиваете для каждого ученика, пока он не достигнет 4, а затем еще одну $ переменную, которая увеличивается после того, как первая выбрала 4 на '1' (представляет группу #), а также запускает первую переменную $ 'для сброса в' 0' – mike510a

+0

Зачем «хранить» это вообще? Просто вычислите его на лету – Strawberry

ответ

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++; 
    } 
    } 
+0

не работает .. 'Illegal string offset 'student_pid' здесь. $ StudentResults [$ counter] ['student_pid']' –

+1

Вместо $ studentResults = $ studentQuery-> fetch_array(); используйте $ studentResults = $ studentQuery-> fetch_assoc(); – Omi

+0

Теперь группы делятся, но студенческие идентификаторы не наступают. @Omi –