Soru şu. Site soru cevap (Sınav gibi) sitesi. veritabanında 470 tane soru var.Şimdi yaptığım skript ilk önce 470 soruyu karıştırıyor.Daha sonra onların içinden 50 tanesini seçiyor ve 5 yanıtı yenide suffleyle karışıtırıyor ve bunu bir dat dosyasına yazıyor. Ama 50 tanesi yazmak yerine bazen 43 bazen 47 bazen de 38 gibi değişik rakamda soru yazıyor. Gerisinide boş yazmıyor orada bitiriyor. Bunu nasıl hall ede bilirim?
Kod:
$ques_id=mt_rand();
$fileadress='users/exams/'.$ques_id.'.dat';
$examtime=time()+(60*$ex_sub['etime']);
$add_active_exams="INSERT INTO active_exams (id, ques_file, time, qid, subject) VALUES ('', '{$fileadress}', '{$examtime}', '{$ques_id}', '{$_GET['subject']}');";
mysqli_query($vt, $add_active_exams);
$active_exam_id_update=mysqli_query($vt, "UPDATE users SET active_exam_id='{$ques_id}' WHERE id={$sonuc['id']}");
// suallarin qarisdirilmasi ve baza faylina yazilmasi
$ex_qux = mysqli_query($vt, 'select * from questions where subject="'.$_GET['subject'].'"');
for($i=0;$i<$ex_qu_num;$i++){
$arr[$i] = mysqli_fetch_assoc($ex_qux);
}
shuffle($arr);
$f=fopen($fileadress, 'w+');
for ($i=0;$i<$ex_sub['qpe'];$i++) {
$ques[$i]=$arr[$i];
$answ=array($ques[$i]['c_answer'], $ques[$i]['e_answer1'], $ques[$i]['e_answer2'], $ques[$i]['e_answer3'], $ques[$i]['e_answer4']);
shuffle($answ);
if (empty(trim($ques[$i]['question']))==FALSE) {
$quizs.=trim($ques[$i]['id']).'|'.trim($ques[$i]['question']).'|'.trim($answ[0]).'|'.trim($answ[1]).'|'.trim($answ[2]).'|'.trim($answ[3]).'|'.trim($answ[4])."\n";
}
}
fwrite($f, $quizs);
fclose($f);