菜鸟教程小白 发表于 2022-12-12 13:37:47

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


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

<p><code>@property (nonatomic, retain) NSMutableArray *arrayValue;</code>:</p>

<pre><code>selected values are (
    1,
    2
)
</code></pre>

<p>我正在使用此代码:</p>

<pre><code> request = ;
;
;

[request setCompletionBlock:^{



    NSString *response = ;
    response = ;
    NSLog(@&#34;Server response: %@&#34;, response);
    // Response shows that value has been entered in DB but it shows zero in value of &#34;svalueid&#34; and userid get the desired value.
</code></pre>

<p>在我的 PHP 代码中:</p>

<pre><code>&lt;?php

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


// check for required fields
if (isset($_REQUEST[&#39;userid&#39;]) &amp;&amp; isset($_REQUEST[&#39;svalueid&#39;])) {
$userid = $_REQUEST[&#39;userid&#39;];
$svalueid = explode(&#34;,&#34;,$_REQUEST[&#39;svalueid&#39;]);


include &#39;connect.php&#39;;

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


            $result = mysql_query(&#34;SELECT userid, svalueid
            FROM users
            WHERE userid = &#39;$userid&#39;&#34;);


    if (mysql_num_rows($result) &gt; 0) {


    $result = mysql_query(&#34;DELETE FROM uses WHERE userid = &#39;$userid&#39;&#34;);

      foreach($svalueid as $value){

$result = mysql_query(&#34;INSERT INTO users(id, userid, svalueid) VALUES(&#39;&#39;,&#39;$userid&#39;, &#39;$value&#39;)&#34;);

                                    }

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

$result = mysql_query(&#34;INSERT INTO users(id, userid, svalueid) VALUES(&#39;&#39;,&#39;$userid&#39;, &#39;$value&#39;)&#34;);

}
    }



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

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

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



} else {
    // required field is missing
    $response[&#34;success&#34;] = 0;
    $response[&#34;message&#34;] = &#34;Field&#39;s missing&#34;;

    // echoing JSON response
    echo json_encode($response);
}
?&gt;
</code></pre>

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

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

<pre><code> NSMutableDictionary *jsonDict = [ init];
    NSMutableDictionary *tagData = [ init];
    for(int i = 0; i &lt; arrayValue.count; i++)
    {
      NSString *keyString = ;
       forKey:keyString];

    }

    ;



    NSData *jsonData = ;
    NSString *jsonString = [ initWithData:jsonData encoding:NSUTF8StringEncoding];

;

;
</code></pre>

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

<pre><code> json string going on server is {
&#34;svalueid&#34; : {
    &#34;0&#34; : 1,
    &#34;1&#34; : 2
}
}
</code></pre>

<p>现在我不知道它是否正确,我应该如何修改我的 PHP 文件,我需要帮助。
请问如果我在我的代码中做错了什么,任何人都可以纠正它。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>$svalueid 是一个带有 key=>value 对的 json 字符串,因此您的 foreach 语句应如下所示:</p>

<pre><code>foreach($svalueid as $key=&gt;$value)
</code></pre>

<p>而不是这个:</p>

<pre><code>foreach($svalueid as $value)
</code></pre>

<p>还需要更新查询以正确使用 $key 和 $value 变量。我不知道这些数字在你的 json 字符串中代表什么,所以我不确定如何给你一个更正的查询。</p></p>
                                   
                                                <p style="font-size: 20px;">关于php - 从 iOS 应用程序发布数组以通过 PHP 文件在数据库中输入值,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18275842/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18275842/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: php - 从 iOS 应用程序发布数组以通过 PHP 文件在数据库中输入值