我发现了一个不错的jQuery插件。它将数据作为1202,39,2393,29,1,39
我想从帖子中获取数据,我知道如何做到这一点。
我的想法是将1202,39,2393,29,1,39
放在一个字符串中。然后一些如何循环通过它。
所以我会放入$string = '1202,39,2393,29,1,39';
输出类似于
1202<br>
39<br>
2393<br>
29<br>
1<br>
39<br>
对于循环中的每个ID,我会检查它是否是有效的ID。我知道如果存在某些东西,如何检查MySql。我不确定的部分是从字符串中循环获取每个id,然后用它做一些事情。这似乎很难解释,我希望我很清楚。
答案 0 :(得分:4)
你不应该循环运行SQL查询,所以我说你根本不应该explode()
(其他人建议的)。这是一种非常糟糕的做法,因为如果您有 20个ID ,则意味着 20个数据库调用,这是非常低效的。应尽可能减少数据库调用,因为它们很昂贵。
我会运行一个查询,返回数据库中的ID。
您的查询将类似
select id from table where id in (YOUR_STRING_ESCAPED)
请务必首先使用$string
转义mysql_real_escape_string()
{/ 1}}。
从查询返回的ID是可以安全输出的ID。
答案 1 :(得分:2)
要将字符串分成单独的部分,请使用explode:
$string = '1202,39,2393,29,1,39';
$list = explode(",", $string);
然后你可以用数组做任何你想做的事,例如
foreach ($list as $item)
{
print $item."<br>";
}
答案 2 :(得分:1)
首先使用explode()
创建一个数组:
$string = '1202,39,2393,29,1,39';
$array= explode(",", $string);
然后使用foreach
循环进行检查:
foreach ($array as &$value) {
if($value == etc.....//perform your checks here.
}
答案 3 :(得分:0)
$string = '1202,39,2393,29,1,39';
$array = explode(',', $string);
for($i=0;$i<count($array);$i++) {
$sql = "CHECK FOR VALID ID WHERE id=" . $array[$i];
}
这应该让所有这些id都可以通过sql单独检查。
答案 4 :(得分:0)
假设您使用的是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
}