Все равно не пойму! Код (PHP): Array ( [1] => 1 ) Array ( [lolo] => lolo [zoloto] => zoloto ) Вот два массива! И как их объединить в одно целое для обновления (изменения записи)?????? Добавлено спустя 5 минут 35 секунд: Все до меня дошло!!!!! Спасибо ВСЕМ Специалистам! Мой косяк!!!! Код (PHP): //я забыл про name = 'tech1[{$row[id]}]' foreach($tech1 AS $key=>$value){ for($i=0; $i<$length; $i++){ $query = "UPDATE table SET tech1='$value', tech2='$tech2' WHERE `id`='$key'"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die (mysql_error()); } }
Еще вопрос. Как сделать по чекбоксу сохранение записей? Т.е. когда отправляешь запрос, те которые выбранные те и сохранять? Спасибо!
А подробнее пожалуйста опишите я вижу это вот так: Код (PHP): if(isset($_POST['check']) { $schek=$_POST['check']; $lenght=count($schek); foreach($check AS $key=>$value){ for($i=0; $i<$length; $i++){ $query = "UPDATE table SET tech1='".$value."', WHERE `id`='".$key."'"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die (mysql_error()); } } } Только че-то не работает.
Код (PHP): echo ("<form method=\"post\" action= \"edit.php\" name=\"edit_form\">\n <th align=\"center\"><b><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить" /></b></th> "); while ($row = mysql_fetch_array($res)) { echo "<input type=\"hidden\" name=\"id\" value=\"".$row["id"]."\" />\n"; echo "<tr>\n"; echo "<td>".$row["id"]."</td>\n"; echo "<td>".$row['name']."</td>\n"; echo "<td>".$row['email']."</td>\n"; echo "<td>".$row['theme']."</td>\n"; echo " <td style='text-align: center;'> <a href='' class='spoiler_links'> <input type='button' value='Показать' onclick='dawn(this)'> </a> <div class='spoiler_body'> ".$row['message']."</div></td>\n"; echo "<td>"; include('spt.php'); echo "</td>\n"; echo "<td>"; include('spt2.php'); echo "</td>\n"; echo "<td><input size='7' readonly type=\"text\" value=\"".$row['dreg']."\" name=\"dreg\"/></td>\n"; echo "<td><input size='7' readonly type=\"text\" value=\"".$row['drun']."\" name=\"drun\"/> <input type=checkbox name='top[{$row[id]}]' value='on'> </td>\n"; } echo"<td align=\"center\"><input type=\"submit\" name=\"submit_edit\" class=\"buttons\" value=\"Сохранить\" /></td>"; echo "</tr></td></table>"; echo "</tr>\n"; echo "</form>\n\n";
Если ничего не выбрано то: Код (PHP): NULL Если выбираю 2 чека то: Код (PHP): array(2) { [1]=> string(2) "on" [2]=> string(2) "on" }
"приму к сведению" говорят когда не хотят что-то делать, а надо делать именно так. =) ну айдишники записей ты получил, какие хотел. поздравляю. Дальше делай с этими записями в бд что задумал, только экранировать не забывай, в данном случае достаточно будет (int)$var
New_neo, смотри для обоих переменных массива оба значения "on" подставь нужный id в value и ты получишь нужные id. Добавлено спустя 2 минуты 44 секунды: в итоге массив примет такой вид Код (PHP): array(2) { [1]=> string(2) "твой id" [2]=> string(2) "твой id" }
блять Эти: Добавлено спустя 1 минуту 3 секунды: поставь галочку в чекбокс через один и посмотри на номерки, которые придут.
Вот те самые номерки которые вы просили: Код (PHP): array(3) { [13647]=> string(5) "13647" [14127]=> string(5) "14127" [14138]=> string(5) "14138" } Добавлено спустя 2 минуты 19 секунд: как вытянуть эти id-ники из массива? Код (PHP): foreach(var_dump($_POST['top']) as $KEY=>$VALUE) { } НЕ получается!!!!!
а, ну вардамп-то не возвращает ничего, он выводит на экран, это просто функция такая. foreach($_POST['top'] as $k=>$v)
Это я понял! Я тут наваял след: Код (PHP): $topcheck=$_POST['top']; if(isset($_POST['top'])) { $lencheck= count($topcheck); foreach($topcheck as $keyc=>$valuec) { for($i=0; $i<$lencheck; $i++){ foreach($tech1 AS $key=>$value){ $query = "UPDATE table SET tech1='$value' WHERE `id`='$valuec'"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die (mysql_error()); } foreach($tech2 AS $key2=>$value2){ $query = "UPDATE table SET tech2='$value2' WHERE `id`='$valuec'"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die (mysql_error()); } } } Только он все равно сохраняет все записи(выбраные и не выбранные)! А мне нужно только выбранные чекбоксы!
используй IDE Добавлено спустя 27 секунд: Код (PHP): $topcheck = $_POST['top']; if (isset($_POST['top'])) { $lencheck = count($topcheck); foreach ($topcheck as $keyc => $valuec) { for ($i = 0; $i < $lencheck; $i++) { foreach ($tech1 AS $key => $value) { $query = "UPDATE table SET tech1='$value' WHERE `id`='$valuec'"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die (mysql_error()); } foreach ($tech2 AS $key2 => $value2) { $query = "UPDATE table SET tech2='$value2' WHERE `id`='$valuec'"; /* Выполняем запрос. Если произойдет ошибка - вывести ее. */ mysql_query($query) or die (mysql_error()); } } } } Добавлено спустя 20 секунд: тогда будут отступы. Добавлено спустя 57 секунд: бредово проверять существование переменной, которую уже не используешь, да ещё и после того, как её использовал выше. Добавлено спустя 37 секунд: это что вообще? о_О глаза на лоб лезут =) вчитайся.