Есть форма для обновления статистики, которая выводится циклом из бд: http://red-squadron.ru/index.php?ind=stats&op=update Идея тут в том, чтобы вставлять в бд новые записи сразу по всем доступным в бд никам. Код такой: HTML: //статичная часть таблицы $output =" <tr> <td> <form id='form1' name='form1' method='post' action='$mlink&op=reg_data'> <table width='100%' border='1' cellspacing='0'> <tr> <td align='center' bgcolor='#DDDDDD'><b>Имя</b></td> <td align='center' bgcolor='#DDDDDD'><b>R</b></td> <td align='center' bgcolor='#DDDDDD'><b>Время игры</b></td> <td align='center' bgcolor='#DDDDDD'><b>Побед и арестов:</b></td> </tr>"; //содержимое, выводящееся циклом $DB->query( "SELECT name, ide FROM mkp_stats GROUP BY name ORDER BY name"); while( $row = $DB->fetch_row($query) ) { $name=$row['name']; $ide=$row['ide']; $output .=" <tr> <td>$name<input name='name$ide' type='hidden' id='name$ide' value='$name'/> <input name='ide$ide' type='hidden' id='ide$ide' value='$ide'/></td> <td align='center'><input name='r$ide' type='text' id='r$ide' size='4' maxlength='4' /></td> <td align='center'><input name='days$ide' type='text' id='days$ide' size='3' maxlength='3' /> д, <input name='hours$ide' type='text' id='hours$ide' size='3' maxlength='3' /> ч, <input name='min$ide' type='text' id='min$ide' size='3' maxlength='3' /> м</td> <td align='center'> <input name='kills$ide' type='text' id='kills$ide' maxlength='255' /> </td> </tr>"; } //статичная часть таблицы $output .=" </table> <tr> <td colspan='4' align='center'> <input type='submit' name='submit' id='submit' value='Отправить' /> </td> </tr> </form> </td> </tr> "; К именам всех инпутов в форме цепляется $ide - уникальный для каждого ника номер, поэтому name инпутов пронумерованы отдельно для каждого ника, и не совпадают. Нужен обработчик для всей этой прелести.) В нормальном виде он выглядит так (некоторые поля опущу для простоты): PHP: <?php if ($mkportals->input['op'] == "reg_data") { $ide = $mkportals->input['ide']; $name = $mkportals->input['name']; $r = $mkportals->input['r']; $kills = $mkportals->input['kills']; $DB->query( "INSERT INTO mkp_stats (ide, name, r, kills) VALUES ('$ide', '$name', '$r', '$kills')"); } Но, вместо input['name'] например, теперь здесь должно быть что-то вроде input['name&number'] и этот обработчик нужно как-то зациклить по количеству уникальных ide в бд. В общем, то что это реализуемо, я понял, но из за нехватки фантазии не получается реализовать самому.) Надеюсь на вашу помощь.
дэжавю =) ничего не понял, но похоже, что тебе нужен массив в name http://www.php.net/manual/en/reserved.v ... .php#96902
Эм... кажется у меня вот-вот случится озарение, но пока ещё не совсем.)) Значит, если я запихну все значения в массивы, то смогу посчитать количество символов в массиве ide и по этому числу зациклить обработчик? Поправьте что не так: PHP: if ($mkportals->input['op'] == "reg_data") { $ide = $mkportals->input['ide'][]; $n = count($ide); until ($n=0) { $ide = $mkportals->input['ide'][$n]; $name = $mkportals->input['name'][$n]; $r = $mkportals->input['r'][$n]; $kills = $mkportals->input['kills'][$n]; $DB->query( "INSERT INTO mkp_stats (ide, name, r, kills) VALUES ('$ide', '$name', '$r', '$kills')"); $n=$n-1; } } Хотя, кажется, я ещё больше запутался...
сделай PHP: <?php header("Content-type: text/plain"); print_r($_POST); будет понятно как его обходить
Всё, проблема решена.) Сделал так: инпутам дал имена name[], тоесть они автоматически пронумеровались с нуля. А обработчик такой: PHP: if ($mkportals->input['op'] == "reg_data") { $ide = $mkportals->input['ide']; $name = $mkportals->input['name']; $r = $mkportals->input['r']; $kills = $mkportals->input['kills']; $n = count($ide); while( $n > 0 ) { $n=$n-1; $DB->query( "INSERT INTO mkp_stats (ide, name, r, kills) VALUES ('$ide[$n]', '$name[$n]', '$r[$n]', '$kills[$n]')"); } Вот что значит взяться на свежую голову.)