Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 解析一个逗号和数字字符串_Php_Mysql_Ajax_Validation - Fatal编程技术网

Php 解析一个逗号和数字字符串

Php 解析一个逗号和数字字符串,php,mysql,ajax,validation,Php,Mysql,Ajax,Validation,我发现了一个不错的jQuery插件。它以1202,392393,29,1,39的形式向php服务器发送数据 我想从帖子中获取数据,我知道怎么做 我的想法是把1202,392393,29,1,39放在一个字符串中。然后是如何循环的 所以我会把$string='1202,392393,29,1,39'; 输出将类似于 1202<br> 39<br> 2393<br> 29<br> 1<br> 39&

我发现了一个不错的jQuery插件。它以1202,392393,29,1,39的形式向php服务器发送数据

我想从帖子中获取数据,我知道怎么做

我的想法是把1202,392393,29,1,39放在一个字符串中。然后是如何循环的

所以我会把$string='1202,392393,29,1,39'; 输出将类似于

 1202<br>
    39<br>
    2393<br>
    29<br>
    1<br>
    39<br>
对于循环中的每个ID,我会检查它是否是有效ID。我知道如何在MySql中检查是否存在某些内容。我不确定的部分是从字符串中获取循环中的每个id,然后对其进行处理。这似乎很难解释,我希望我很清楚。

使用explode first创建数组:

$string = '1202,39,2393,29,1,39';
$array= explode(",", $string);
然后使用foreach循环进行检查:

foreach ($array as &$value) {
    if($value == etc.....//perform your checks here.
}

要将字符串拆分为单独的片段,请使用:

然后可以对数组执行任何操作,例如

foreach ($list as $item)
{
    print $item."<br>";
}

这将获得所有这些id供您通过sql单独检查。

假设您使用的是PHP:

$string = '1202,39,2393,29,1,39';
$data = explode(",", $string);
echo "<pre>"; print_r($data); echo "</pre>"

// Outputs:
// Array
// (
//     [0] => 1202
//     [1] => 39
//     [2] => 2393
//     [3] => 29
//     [4] => 1
//     [5] => 39
// )

// Then you can iterate through the array
foreach ($data AS $value) {
  // Validate the $value
}
您不应该在循环中运行SQL查询,所以我认为您不应该像其他人建议的那样分解它。这是一种非常糟糕的做法,因为如果您有20个ID,这将意味着20个数据库调用,这是非常低效的。如果可能的话,应该尽量减少数据库调用,因为它们很昂贵

我将运行一个查询,返回数据库中的ID

您的查询类似于

 1202<br>
    39<br>
    2393<br>
    29<br>
    1<br>
    39<br>
确保首先转义$string,例如使用mysql\u real\u escape\u string

查询返回的ID是可以安全输出的ID


你可以简单地使用explode函数:为了将其拆分,添加了mysql标签,因为它是这个问题中的一个重要因素。这就是垒球问题的问题。我是个新手,在回答很多简单的问题和一些困难的问题之间左右为难。几个小时前,我为一个问题写了一个详尽的答案,在我发布之前不到一分钟,这个问题就被删除了*呜呜,这似乎只是一个垒球问题。。。我想知道每个人都建议在循环中运行SQL查询。从id在2,8,9,10中给出1064的帐户中选择id-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第行“2,8,9,10限制0,30”附近使用的正确语法1@Keverw注意绳子周围的颜色。我在想你把它放进去是为了显示一个变量。谢谢我的应用程序将同时使用此方法和循环方法。一个是在保存草稿时检查,另一个将用于插入到每个用户邮箱。@Keverw如果“插入到每个用户邮箱”是指SQL插入调用,则也不应从循环中调用这些调用。INSERT支持一次调用插入多条记录。
$string = '1202,39,2393,29,1,39';
$data = explode(",", $string);
echo "<pre>"; print_r($data); echo "</pre>"

// Outputs:
// Array
// (
//     [0] => 1202
//     [1] => 39
//     [2] => 2393
//     [3] => 29
//     [4] => 1
//     [5] => 39
// )

// Then you can iterate through the array
foreach ($data AS $value) {
  // Validate the $value
}
 select id from table where id in (YOUR_STRING_ESCAPED)