есть некая глобальная переменная $_GET в ней массив.... array 'upr' => string 'save' (length=4) 'SaveSkill' => string '690826416' (length=9) 'sil' => string '1' (length=1) 'int' => string '5' (length=1) мне нужно в цикле сделать запрос к БД.. upr и SaveSkill контрольные переменные, они мне не нужны... а вот 'sil' => string '1' (length=1) 'int' => string '5' (length=1) с ними мне нужно сделать запросы... есть предварительный код.. Код (Text): if ($_GET['upr'] == "save" ) { if($_GET['SaveSkill']){ include_once("game_functions.php"); require_once('db.php'); $db = new db_layer(); $db->getConnection(); $qry = "SELECT * FROM person WHERE id_person = '".$myinfo->id_person."'"; $db->execute_sql($qry,$result,$error_msg); $row = mysql_fetch_object($result); $texture = sizeof($_GET); var_dump($_GET); if($_GET['sil'] > 0){ if($row->stat_points < $_GET['sil'] ){ $temp =$row->stat_points + $myinfo->hars[1][sil]; $minus_stats=0; }else{ $temp = $myinfo->hars[1][sil] + $_GET['sil']; $minus_stats = $row->stat_points - $_GET['sil']; } SaveSkill('sil', $temp, $minus_stats, $myinfo->id_person); $myinfo =new Persinfo($session->id_person); } } но писать для каждой переменной кусок кода, это будит индусский код, хотелось бы чтобы в цыкле я использовал эти переменные как номер строчки к примеру for ($i=0;$i<sizeof($_GET) + 3;$i++) { if($row->stat_points < $_GET['sil'] ){ $temp =$row->stat_points + $myinfo->hars[1][sil]; $minus_stats=0; }else{ $temp = $myinfo->hars[1][sil] + $_GET['sil']; $minus_stats = $row->stat_points - $_GET['sil']; } SaveSkill('sil', $temp, $minus_stats, $myinfo->id_person); но вместо $_GET['sil'] там должна строять номер строки массива +2 так как первые 2 это проверочные переменные
wir_wolf не кипятись. написал ты свой вопрос действительно хрен что поймешь моск вкипает от попытки осмыслить твой текст. интуиция подсказывает, что цикл тебе тут не нужен. можно обернуть весь твой код в функцию.
ладно, Есть яваскрипт, который посылает запросы типу main.php?upr=save&SaveAbility=1224564&sil=1 а вот кусок кода который это все обрабатывает Код (Text): if ($_GET['upr'] == "save" ) { if($_GET['SaveSkill']){ include_once("game_functions.php"); require_once('db.php'); $db = new db_layer(); $db->getConnection(); $qry = "SELECT * FROM person WHERE id_person = '".$myinfo->id_person."'"; $db->execute_sql($qry,$result,$error_msg); $row = mysql_fetch_object($result); $texture = sizeof($_GET); var_dump($_GET); if($_GET['sil'] > 0){ if($row->stat_points < $_GET['sil'] ){ $temp =$row->stat_points + $myinfo->hars[1][sil]; $minus_stats = "0"; }else{ $temp = $myinfo->hars[1][sil] + $_GET['sil']; $minus_stats = $row->stat_points - $_GET['sil']; } SaveSkill('sil', $temp, $minus_stats, $myinfo->id_person); $myinfo =new Persinfo($session->id_person); } } skills_side1();die; } но это только а один модификатор, а если их будет много "sil", "lov", "intu", "vyn", "intel", "mudr", "duh", "vol", "svob", "boj" что мне для каждого писать if($_GET['sil'] > 0) и т. д... пока оно проверит все ифы... хотелось бы каким то образом перегнать $_GET в массив.... $mass[1][1]=sil; $mass[1][2]=$_GET['sil']; $mass[2][1]=lov; $mass[2][2]=$_GET['lov']; ну и т.д.
Они могут приехать все в одном запросе? ну тогда да, как вариант, объявляешь массив и бежишь по нему: PHP: $modifiers = array ("sil", "lov", "intu", "vyn", "intel", "mudr", "duh", "vol", "svob", "boj"); foreach ($modifiers as $m) { if (isset($_GET[$m])) { /* твой кусок кода, только вместо $_GET['sil'] делаем $_GET[$m], вместо SaveSkill('sil', $temp, $minus_stats, $myinfo->id_person); делаем SaveSkill($m, $temp, $minus_stats, $myinfo->id_person); ну и вообще все строковые константы на такой манер меняем. */ } } ну уловил мысль?