|
|
|
iOS รบกวนดูโค้ดให้หน่อยคะ เกี่ยวกับการรับค่าจากฐานข้อมูล |
|
|
|
|
|
|
|
Code (Objective-C)
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
-(void)GetTableDataFromWeb{
NSString *dict = [NSString stringWithFormat:@"{\"act\":\"placelist\",\"cid\":\"%d\",\"search\":\"%@\"}",infoRow+1,infoSearch];
NSLog(dict);
infoSearch = [NSString stringWithFormat:@""];
MyAppCore *core = [[MyAppCore alloc] init];
[core SendData2Server:dict rsObject:self];
}
-(void)GetDataFromServer:(id)rs
{
NSLog(@"DATA MA LAEW mmmmmm : %@",rs);
NSObject *obj_result = [rs objectForKey:@"res"];
NSInteger iRes =[[NSString stringWithFormat:@"%@",obj_result] intValue];
if(iRes>0){
NSObject *obj_c = [rs objectForKey:@"count"];
NSInteger iCount =[[NSString stringWithFormat:@"%@",obj_c] intValue];
NSMutableArray *tempArray = [[NSMutableArray alloc] init];
NSString *strData[10];
for(int i=0;i<iCount;i++){
NSObject *obj_id = [rs objectForKey:[NSString stringWithFormat:@"id%d",i]];
NSInteger iID =[[NSString stringWithFormat:@"%@",obj_id] intValue];
idArray[i] = iID;
NSObject *obj_data = [rs objectForKey:[NSString stringWithFormat:@"data%d",i]];
strData[i] =[NSString stringWithFormat:@"%@",obj_data];
//NSLog([NSString stringWithFormat:@"i:%d id:%d data:%@",i,iID,strData]);
//GDNTileObject *temp_tile = [[GDNTileObject alloc] init];
//[tempArray addObject:strData];
}
[tempArray addObject:@"AAA"];
//int count = sizeof(names)/sizeof(names[0]);
NSArray *names_array = [NSArray arrayWithObjects:strData count:iCount];
NSArray *infoArray = [NSArray arrayWithObjects:@"ร้านA",@"ร้านB",nil];
tableInfo = names_array;
[sendDataTable reloadData];
}else{
NSLog(@"NOT OK LA NA");
}
}
- (void)viewDidLoad
{
[super viewDidLoad];
{
[super viewDidLoad];
tableInfo = [NSArray arrayWithObjects:@"ดอยอินทนนท์",@"กิ่วแม่ปาน",@"น้ำตกแม่กลาง",@"น้ำตกวชิรธาร",
@"สถานีเกษตรหลวง",@"ถ้ำบรินจินดา",@"น้ำตกแม่ยะ",@"ออบหลวง",@"ออบหลวง",@"ออบหลวง",nil];
imageinfo = [NSArray arrayWithObjects:@"moutain2.png",@"moutain2.png",@"moutain2.png",@"moutain2.png",
@"moutain2.png",@"moutain2.png",@"moutain2.png",@"moutain2.png",@"moutain2.png",@"moutain2.png",nil];
content = [NSArray arrayWithObjects:@"ข้อมูลดอยอิน",@"ข้อมูลกิ่ว",@"ข้อมูลน้ำตก",@"ข้อมูลน้ำตก",@"ข้อมูลเกษตร",@"ข้อมูลถ้ำ",@"ข้อมูลแม่ยะ",@"ข้อมูลออบหลวง" ,@"ข้อมูลออบหลวง" ,@"ข้อมูลออบหลวง" ,nil];
infoArray[0] = [NSArray arrayWithObjects:@"ดอยอินทนนท์",@"กิ่วแม่ปาน",@"น้ำตกแม่กลาง",@"น้ำตกวชิรธาร",
@"สถานีเกษตรหลวง",@"ถ้ำบรินจินดา",@"น้ำตกแม่ยะ",@"ออบหลวง",@"ออบหลวง",nil];
infoArray[1] = [NSArray arrayWithObjects:@"ร้านA",@"ร้านB",nil];
infoArray[2] = [NSArray arrayWithObjects:@"เซA",@"เซB",nil];
infoArray[3] = [NSArray arrayWithObjects:@"gasA",@"gasB",nil];
infoArray[4] = [NSArray arrayWithObjects:@"busA",@"busB",nil];
infoArray[5] = [NSArray arrayWithObjects:@"policeA",@"policeB",nil];
infoArray[6] = [NSArray arrayWithObjects:@"bankA",@"bankB",nil];
infoArray[7] = [NSArray arrayWithObjects:@"fesA",@"fesB",nil];
tableInfo = infoArray[infoRow];
NSLog(@"row : %d",infoRow);
[self GetTableDataFromWeb];
}
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [tableInfo count];
} //ตาราง2**
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *simpleTableIdentifier =@"Info";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if(cell == nil){
cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:
simpleTableIdentifier];
}
cell.textLabel.text = [tableInfo objectAtIndex:indexPath.row];
cell.imageView.image =[UIImage imageNamed:[imageinfo objectAtIndex:indexPath.row]];
//รูป
return cell;
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"showDetail"]){
NSIndexPath *indexPath = [self.sendDataTable indexPathForSelectedRow];
InfoViewController *destViewController = segue.destinationViewController;
destViewController.infoFRow = idArray[indexPath.row];
destViewController.dataName = [tableInfo objectAtIndex:indexPath.row];
destViewController.dataText = [content objectAtIndex:indexPath.row];
NSLog(@"rows ddd : %d",destViewController.infoFRow);
destViewController.hidesBottomBarWhenPushed = YES;
}
}
เวลาเพิ่มข้อมูลลงฐานข้อมูลมาก ๆ จะ error ต้องคอยมาเพิ่มโค้ดตรงที่ tableinfo และ imageingo ตลอด
มีวิธืเซตให้รับค่าตามฐานข้อมูลเลยได้ไหมคะ
Tag : Mobile, iOS, Mobile
|
ประวัติการแก้ไข 2014-09-23 20:00:12
|
|
|
|
|
Date :
2014-09-23 19:58:44 |
By :
pmars |
View :
1083 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณคงจะต้อง Debug ดูแล้วครับ
|
|
|
|
|
Date :
2014-09-24 16:48:14 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คำถาม คือ เวลาเพิ่มข้อมูลลงฐานข้อมูลมาก ๆ จะ error ต้องคอยมาเพิ่มโค้ดตรงที่ tableinfo และ imageingo ตลอด
มีวิธืเซตให้รับค่าตามฐานข้อมูลเลยได้ไหมคะ
แต่ tableInfo = [NSArray arrayWithObjects:@"ดอยอินทนนท์",@"กิ่วแม่ปาน",@"น้ำตกแม่กลาง",@"น้ำตกวชิรธาร",
@"สถานีเกษตรหลวง",@"ถ้ำบรินจินดา",@"น้ำตกแม่ยะ",@"ออบหลวง",@"ออบหลวง",@"ออบหลวง",nil];
hard code ไว้นิครับ หรือผมไม่เข้าใจคำถาม
ถ้าจะให้ tableInfo ใช้ข้อมูลจากฐาน
ก็ควรจะเป็น tableInfo = get items from db;
แบบนี้หรือป่าวคับ
และที่ว่ามาก นี่มากขนาดไหน
|
|
|
|
|
Date :
2014-09-25 16:37:25 |
By :
j4kkapongz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 4 เขียนโดย : j4kkapongz เมื่อวันที่ 2014-09-25 16:37:25
รายละเอียดของการตอบ ::
คือแบบนี้นะคะ ถ้าไม่ได้เชื่อมต่อกับอินเตอร์เนต จะแสดงข้อมูล
ตามนี้
tableInfo = [NSArray arrayWithObjects:@"ดอยอินทนนท์",@"กิ่วแม่ปาน",@"น้ำตกแม่กลาง",@"น้ำตกวชิรธาร",
@"สถานีเกษตรหลวง",@"ถ้ำบรินจินดา",@"น้ำตกแม่ยะ",@"ออบหลวง",@"ออบหลวง",@"ออบหลวง",nil]; = 10 แถว
แต่เมื่อดึงข้อมูลมาจากฐานข้อมูลมาแสดง ก็ต้องใส่ข้อมูลได้แค่ 10 เท่านั้น (จากจำนวนข้างบน) หากต้องการข้อมูลมากกว่า 10 ก็ต้องคอยมาเพิ่มตรง tableInfo เรื่อยๆ แบบนี้นะคะ
|
|
|
|
|
Date :
2014-09-25 16:53:08 |
By :
pmars |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือจะให้แสดงครั้งละ 10 ใช่ไหมคับ
แต่มันคงจะควบคุมได้ยาก โดยปกติแล้ว
แอพส่วนใหญ่จะจำกัดการแสดงผลครั้งแรก
และครั้งต่อไปจะโหลดมาเพิ่มเรือยๆ
เป็น view more ผลรวมของ items ทั้งหมดก็จะถูกเพิ่มขึ้น
ไม่ได้คงที่ ที่ 10 เพราะฉะนั้น อาจจะต้องลองหาโค้ดเกี่ยวกับ
load more for uitableview มีตัวอย่างเยอะเลยคับ
|
|
|
|
|
Date :
2014-09-26 14:13:30 |
By :
j4kkapongz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|