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