#iphone #mysql #database #ios #uitableview
#iPhone #mysql #База данных #iOS #uitableview
Вопрос:
Хорошо, я могу подключиться к базе данных mysql из своего приложения для iPhone, я настроил его в виде таблицы. Поэтому, когда я вызываю метод didSelectRow, он сохраняет идентификационный номер пользователя, а не номер indexRow. Мой вопрос в том, как я могу использовать этот сохраненный идентификатор для извлечения остальной информации, поэтому при нажатии строки отображается остальная часть конкретной информации об этом пользователе. Я знаю, что я не показываю здесь никакого кода, потому что я пишу это со своего iPad, поэтому я надеюсь, что вы будете следить за тем, что я пытаюсь сделать, и помогать. Спасибо.
Ответ №1:
Я могу помочь вам одним способом: вам нужно сохранить массив, поступающий из базы данных, в массиве в appdel, и вы можете вызвать этот массив в любое время, когда мы хотим, чтобы пример кода был здесь
это массив в appdb
NSMutableArray *fruit_details;
вызовите один метод в Appdb
[self readStudentFromDatabase];
затем напишите код здесь в этом методе
NSArray *documentpaths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentpaths objectAtIndex:0];
databasePath = [documentDir stringByAppendingPathComponent:databaseName];
fruit_details=[[NSMutableArray alloc]init];
//open the database from the users filesystem
if(sqlite3_open([databasePath UTF8String], amp;database)==SQLITE_OK)
{
// Setup the SQL Statement and compile it for faster access
const char *sqlStatement ="select * from stu";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement,-1, amp;compiledStatement , NULL)== SQLITE_OK)
{
// Loop through the results and add them to the feeds array
while (sqlite3_step(compiledStatement)==SQLITE_ROW)
{
NSString *aName =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,0)];
NSString *amarks=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,1)];
NSString *arank =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,2)];
NSString *aaddr =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,3)];
NSString *aemail =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,4)];
NSString *aphno =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,5)];
NSString *aage =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,6)];
NSString *asex =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,7)];
NSString *adate =[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement,8)];
NSString *aimage=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 9)];
// // Create a new animal object with the data from the database
//animal *animal_object=[[animal alloc]initWithName:aName description:arollNO url:amarks];
//add the animal object to the animal ar
//[animals addObject:animal_object];
temp=[[NSMutableArray alloc]init];
[temp addObject:aName];
[temp addObject:amarks];
[temp addObject:arank];
[temp addObject:aaddr];
[temp addObject:aemail];
[temp addObject:aphno];
[temp addObject:aage];
[temp addObject:asex];
[temp addObject:adate];
[temp addObject:aimage];
[fruit_details addObject:temp];
}
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
Я думаю, это может помочь вам…..
Ответ №2:
Хранится ли идентификатор, который вы получаете из базы данных? Насколько я понимаю, когда пользователь выбирает строку, вы хотите перейти к новому представлению и получить соответствующую информацию из базы данных, используя этот сохраненный идентификатор.
Комментарии:
1. Да, это совершенно верно. Идентификатор — это то, что я получаю из базы данных, я просто не могу или не понимаю, как извлечь соответствующие данные и поместить их в новое представление?