1

ボタンクリックでデータを入力し、それをTableViewに表示する必要があるxcodeプロジェクトがあります。

例:Twitter(フォロー/フォロー解除)。

1.友達のアイコンをクリックすると、友達のリストが表示されます。

2.友達のいずれかをクリックすると、友達リストがテーブルビューに表示され、それに対応するフォローボタンが表示されます(相互の友達にはフォロー解除ボタンがあります)。

3.これで、フォローボタンをクリックして戻って友達リストを確認すると、その特定の友達が2回追加されました。

私がこれまでにしたこと:

SQLデータベースが他の場所にも存在するかどうかを確認しました。

Webサービスが2回呼び出されているかどうかを確認しました。

すべて順調。私はiMacとMacbookProも持っていますが、どちらも同じ問題を抱えています。Xamppを2回再インストールしましたが、それでも同じ結果になります。

参考までに、Xcodeプロジェクトに使用しているphpを以下に示します。

<?php
 $id =  $_REQUEST['id'];
 $fid = $_REQUEST['fId'];
 $firstName = $_REQUEST['firstName'];
 $lastName = $_REQUEST['lastName'];

 $con = mysql_connect("localhost","root","");
 if(!$con)
 die("Connection failed"."<br/>");

 $db = mysql_select_db("db",$con);
 if(!$db) die("Database not found!"."<br/>");

 $query = "INSERT INTO $id(firstName,lastName,folks_id)     VALUES('$firstName','$lastName','$fid')";
 print  $query;
 mysql_query($query,$con);
 mysql_close($con);

?>

編集:参照用のXcodeパーツ

-(IBAction)followButtonClicked:(UIButton *)sender
    {

  NSMutableString *postString = [NSMutableString stringWithString:kFollowURL];
    [postString appendString: [NSString stringWithFormat:@"?%@=%@", kId, [user objectForKey:@"id"] ]];
    [postString appendString: [NSString stringWithFormat:@"&%@=%@", kfId, [fId objectForKey:@"fID"] ]];
    [postString appendString: [NSString stringWithFormat:@"&%@=%@", kfirstName, [firstNameDict objectForKey:@"firstName"] ]];
    [postString appendString: [NSString stringWithFormat:@"&%@=%@", klastName, [lastNameDict objectForKey:@"lastName"] ]];
    [postString appendString: [NSString stringWithFormat:@"&%@=%@", kprofileType, [profileTypeDict objectForKey:@"profileType"] ]];

    [postString setString: [postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    NSLog(@"post string = %@", postString);

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:postString]];

    [request setHTTPMethod:@"POST"];

    followConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
    NSLog(@"postconnection: %@", followConnection);

    //Get JSON Response from server

    NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: postString ]];    
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];

    NSLog(@"serverOutput = %@", serverOutput);

 } 
4

2 に答える 2

1

データベーステーブルに主キーがありますか。

同じIDに対して値を挿入する方法よりも多い場合。

于 2012-05-21T11:15:55.320 に答える
0

[解決済み]トリックを行ったのは、fidをユニークなものにしたことです...したがって、フォローボタンをクリックするたびに、2回ではなく1回入力されます。

皆さんの助けとサポートに感謝します。

于 2012-05-22T11:55:33.987 に答える