Fatal Error out of range this is the log file
Alamofire URL request is within a loop the breaking point the system the counter is already 44 not the first index after getting the first value of the array.
I tried printing the array outside of the loop but it just give me a null array printing on log is just []
let url = "http://localhost:8080/iostest/selectstudents.php"
let parameters: Parameters=[
"StatusCodeID":"2",
"subjectCode":"ENG 099",
"section":"BSIT 2-2BSIT-01"
]
Alamofire.request(url, method: .post, parameters: parameters).responseJSON{
response in
let json = response.data
if let result = response.result.value {
//converting it as NSDictionary
let jsonData = result as! NSDictionary
//displaying the message in label
let x = jsonData.value(forKey: "Students") as! NSArray
for dict in x {
let dictone = dict as! NSDictionary
ArrayStudentNumber.append(dictone["StudentNumber"] as! String)
ArraySection.append(dictone["Section"] as! String)
ArraySemester.append(dictone["Semester"] as! String)
ArraySubjectCode.append(dictone["SubjectCode"] as! String)
ArraySchoolYear.append(dictone["SchoolYear"] as! String)
}
}
let arraycount = ArrayStudentNumber.count
var counter = 0
while counter < arraycount{
print(counter)
var currentindex = counter
print (ArrayStudentNumber[counter])
let url2 = "http://localhost:8080/iostest/selectstudentsinfo.php"
var parameters2: Parameters=["studentNumber" : ArrayStudentNumber[currentindex]]
Alamofire.request(url2, method: .post, parameters: parameters2).responseJSON{
response in
let json = response.data
if let result = response.result.value {
print (response)
//converting it as NSDictionary
let jsonData = result as! NSDictionary
//displaying the message in label
let x = jsonData.value(forKey: "StudentsInfo") as! NSArray
for dict in x {
let dictone = dict as! NSDictionary
ArrayFirstname.append(dictone["Firstname"] as! String)
ArrayLastname.append(dictone["Lastname"] as! String)
ArrayMiddlename.append(dictone["Middlename"] as! String)
ArrayCollege.append(dictone["College"] as! String)
ArrayCourse.append(dictone["Course"] as! String)
}
}
}
counter += 1
}
var loopcounter = 0
let thisarraycount = ArrayFirstname.count
while loopcounter < thisarraycount{
var insertstatemanet: OpaquePointer? = nil
var insertsql = "insert into tableStudentInfo(StudentNumber,Firstname,Lastname,Middlename,College,Course,SubjectCode,Section,Semester,Schoolyear) values ('\(ArrayStudentNumber[loopcounter])','\(ArrayFirstname[loopcounter])','\(ArrayLastname[loopcounter])','\(ArrayMiddlename[loopcounter])','\(ArrayCollege[loopcounter])','\(ArrayCourse[loopcounter])','\(ArraySubjectCode[loopcounter])','\(ArraySection[loopcounter])','\(ArraySemester[loopcounter])','\(ArraySchoolYear[loopcounter])';"
//isolate sql query and validate statements
sqlite3_prepare_v2(db, insertsql, -1, &insertstatemanet, nil)
//
if sqlite3_step(insertstatemanet) == SQLITE_DONE{
print("Inserted", "\(ArrayStudentNumber[counter])")
}
sqlite3_finalize(insertstatemanet)
}
loopcounter = loopcounter + 1
}
}