gpt4 book ai didi

php - 从 iOS 应用程序发布数组以通过 PHP 文件在数据库中输入值

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:10 27 4
gpt4 key购买 nike

我需要通过 PHP 文件在我的数据库表中添加值,但我在动态数组中有值,可以有一个、两个或三个以上的值,在我的 iOS 应用程序中单击按钮时,我通过 post 发送数组使用 ASHIHTTPRequest 但在数据库中未输入值。我在日志中得到的值 NSLog(@"selected values are %@",self.arrayValue);

@property (nonatomic, retain) NSMutableArray *arrayValue;:

selected values are (
1,
2
)

我正在使用这段代码:

 request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:Id forKey:@"userid"];
[request setPostValue:self.arrayValue forKey:@"svalueid"];

[request setCompletionBlock:^{



NSString *response = [request responseString];
response = [request responseString];
NSLog(@"Server response: %@", response);
// Response shows that value has been entered in DB but it shows zero in value of "svalueid" and userid get the desired value.

在我的 PHP 代码中:

<?php

// array for JSON response
$response = array();
//$svalueid=array();


// check for required fields
if (isset($_REQUEST['userid']) && isset($_REQUEST['svalueid'])) {
$userid = $_REQUEST['userid'];
$svalueid = explode(",",$_REQUEST['svalueid']);


include 'connect.php';

// connecting to db
$db = new DB_CONNECT();


$result = mysql_query("SELECT userid, svalueid
FROM users
WHERE userid = '$userid'");


if (mysql_num_rows($result) > 0) {


$result = mysql_query("DELETE FROM uses WHERE userid = '$userid'");

foreach($svalueid as $value){

$result = mysql_query("INSERT INTO users(id, userid, svalueid) VALUES('','$userid', '$value')");

}

}
else
{
foreach($svalueid as $value){

$result = mysql_query("INSERT INTO users(id, userid, svalueid) VALUES('','$userid', '$value')");

}
}



// check if row inserted or not
if ($result) {
// successfully inserted into database
$response["success"] = 1;
$response["message"] = "successful.";

// echoing JSON response
echo json_encode($response);
} else {
// failed to insert row
$response["success"] = 0;
$response["message"] = "An error occurred.";

// echoing JSON response
echo json_encode($response);
}



} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Field's missing";

// echoing JSON response
echo json_encode($response);
}
?>

但是我的数据库表中svalueid字段中这个get的value = 0我不太了解 PHP。请任何人帮助我,我应该如何将我的数组值发送到数据库表。

我也尝试过以 json 格式发送数据,但能够实现它。

 NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc] init];
NSMutableDictionary *tagData = [[NSMutableDictionary alloc] init];
for(int i = 0; i < arrayValue.count; i++)
{
NSString *keyString = [NSString stringWithFormat:@"%i", i];
[tagData setObject:[arrayValue objectAtIndex:i] forKey:keyString];

}

[jsonDict setObject:tagData forKey:@"svalueid"];



NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

[request setPostValue:Id forKey:@"userid"];

[request setPostValue:jsonString forKey:@"svalueid"];

现在在我的控制台上我得到这个值 NSLog(@"json json string going on server is %@",jsonString);

 json string going on server is {
"svalueid" : {
"0" : 1,
"1" : 2
}
}

请现在我不知道它是否正确,我应该如何修改我的 PHP 文件,我需要这方面的帮助。如果我在我的代码中做错了什么,任何人都可以纠正它。

最佳答案

$svalueid 是一个带有键=>值对的 json 字符串,因此您的 foreach 语句应该如下所示:

foreach($svalueid as $key=>$value)

而不是这个:

foreach($svalueid as $value)

还需要更新查询以正确使用 $key 和 $value 变量。我不知道这些数字在您的 json 字符串中代表什么,所以我不确定如何为您提供更正的查询。

关于php - 从 iOS 应用程序发布数组以通过 PHP 文件在数据库中输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18275842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com