Разобрать строку запятых и чисел - PullRequest
2 голосов
/ 06 мая 2011

Я нашел хороший плагин jQuery.Он отправляет данные на php-сервер как 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>

Для каждого идентификатора в цикле я бы проверил, если это действительный идентификатор,Я знаю, как проверить в MySql, если что-то существует.Часть, в которой я не уверен, - это получение каждого идентификатора в цикле из строки, а затем что-то с ним делать.Кажется, это трудно объяснить, я надеюсь, что все ясно.

Ответы [ 5 ]

4 голосов
/ 06 мая 2011

Вы не должны запускать SQL-запросы в цикле , поэтому я бы сказал, что вы вообще не должны explode() (что предлагали другие).Это очень плохая практика, потому что если у вас 20 идентификаторов , это будет означать 20 вызовов базы данных , что очень и очень неэффективно.Вызовы базы данных должны быть минимизированы, если это возможно, потому что они дорогие.

Я бы запустил запрос, который возвращает те идентификаторы, которые есть в базе данных.

Ваш запрос будет выглядеть примерно так:

 select id from table where id in (YOUR_STRING_ESCAPED)

Обязательно сначала экранируйте $string, например, с помощью mysql_real_escape_string().

Идентификаторы, которые возвращаются из вашего запроса, могут быть безопасно выведены.

2 голосов
/ 06 мая 2011

Чтобы разбить строку на отдельные части, используйте explode :

$string = '1202,39,2393,29,1,39'; 
$list = explode(",", $string);

Затем вы можете делать с массивом все, что захотите, например,

foreach ($list as $item)
{
    print $item."<br>";
}
1 голос
/ 06 мая 2011

Сначала используйте explode() для создания массива:

$string = '1202,39,2393,29,1,39';
$array= explode(",", $string);

Затем используйте цикл foreach для проверки:

foreach ($array as &$value) {
    if($value == etc.....//perform your checks here.
}
0 голосов
/ 06 мая 2011

Предполагается, что вы используете PHP:

<code>$string = '1202,39,2393,29,1,39';
$data = explode(",", $string);
echo "<pre>"; print_r($data); echo "
"// Выходы: // Массив // (// [0] => 1202 // [1] => 39 // [2] => 2393// [3] => 29 // [4] => 1 // [5] => 39 //) // Затем вы можете выполнить итерацию по массиву foreach ($ data AS $ value) {// Проверить $значение}
0 голосов
/ 06 мая 2011
$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];
}

Это должно получить все эти идентификаторы для вас, чтобы проверить через sql индивидуально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...