[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как осуществить задумку?
major28
Здравствуйте! Помогите пожалуйста с кодом. Вывожу из базы циклом всех пользователей и этим же циклом ставлю напротив каждого пользователя переключатель checkbox. Как сделать чтобы я мог удалять выбранных пользователей? Не могу сообразить как сделать...ведь если выводишь циклом то обработчику передается всегда одна и таже переменная checkbox'a. Помогите пожалуйста.


while($myrow5=mysql_fetch_array($result5))
{
echo "
<input name=
\"delete\" type=\"checkbox\" value=\"$myrow5[email]\" />
$myrow5[email]
<a href=''>Отправить email</a><Br>
"
;
}




Спустя 5 минут, 27 секунд (2.05.2010 - 10:26) Lenarfate написал(а):
сначала проверяешь, нажата ли кнопка Удалить, если да - делаешь запрос на удаление. Далее пишешь непосредственно сам вывод из базы с циклами и тп

Спустя 2 минуты, 6 секунд (2.05.2010 - 10:28) Lenarfate написал(а):
сам запрос на удаление может выглядеть примерно так

"DELETE FROM `table`
WHERE `id` IN ("
. implode(', ', array_map('intval', $checkboxName)) .")"


где $checkboxName - имя самого чекбокса

на выводе примерно так
<input type="checkbox" name="checkboxName[]" />

Спустя 7 минут, 39 секунд (2.05.2010 - 10:36) major28 написал(а):
чето я не понял) объясни пожалуйста подробнее? Вот смотри как мне сделать чтобы обработчику посылался уникальная переменная checkbox? А то у меня получается посылается всегда одна и таже переменная $delete.

Спустя 7 минут, 19 секунд (2.05.2010 - 10:43) Lenarfate написал(а):
ты передаешь в запрос массив данных из выбранных чекбоксов.
Цитата
<input type="checkbox" name="checkboxName[]" />

видишь скобки в имени? вот это переменная, которая пишется в массив. и не забудь инициализировать массив. что-то типа
$checkboxName = !empty($_POST['checkboxName']) ? $_POST['checkboxName'] : array();

Спустя 2 минуты, 53 секунды (2.05.2010 - 10:46) Lenarfate написал(а):
да и значением чекбоксу передай id из базы. к примеру, типа такого:
<input type="checkbox" name="checkboxName[]" value="<?php print $myrow['id'] ?>"/>

Спустя 6 минут, 37 секунд (2.05.2010 - 10:53) major28 написал(а):
Код выбора юзеров для удаления
while($myrow5=mysql_fetch_array($result5))
{
echo "
<input name=
\"checkboxName[]\" type=\"checkbox\" value=\"$myrow5[id]\" />
$myrow5[email]
";
}
echo "<input name=\"all_delete\" type=\"submit\" value=\"Удалить отмеченных\" />";


Код обработчика

$checkboxName = !empty($_POST['checkboxName']) ? $_POST['checkboxName'] : array();
DELETE FROM `table` WHERE `id` IN (". implode(', ', array_map('intval', $checkboxName)) .")


я правильно понял? этот код будет работать?

Спустя 6 минут, 19 секунд (2.05.2010 - 10:59) Lenarfate написал(а):
нет не будет biggrin.gif
во первых, имена в $myrow заключай в кавычки так
Цитата
$myrow['id']
,
во вторых, где твой запрос из базы на выборку?
в третьих,
Цитата
DELETE FROM `table` WHERE `id` IN (". implode(', ', array_map('intval', $checkboxName)) .")
- это тоже запрос!

удаление примерно так оформить можно

if($all_delete)
{
$result = mysql_query("DELETE FROM `table` WHERE `id` IN (". implode(', ', array_map('intval', $checkboxName)) .")");
}


я тебе привожу примеры, а не готовые исчерпывающие коды.

Спустя 2 минуты, 34 секунды (2.05.2010 - 11:02) major28 написал(а):
дело в том что я не могу понять логику работы скрипта......иначе бы я смог написать скрипт(((((((((((((((объясни подробнее че за массив для чего он и что он передает и как в дальнейшем работает? Буду благодарен от всей души)

Спустя 8 минут, 29 секунд (2.05.2010 - 11:10) Lenarfate написал(а):
1. для начала должны быть инициализованы переменные
2. нужно составить запрос на удаление при нажатии сабмита -
если(нажата) то {запрос на удаление}
3. далее делаешь выборку из базы
4. далее циклом выводишь и все

вот тебе и весь принцип

Спустя 1 минута, 3 секунды (2.05.2010 - 11:11) Lenarfate написал(а):
если ты не знаешь, что такое массив - прошу

Спустя 27 минут, 41 секунда (2.05.2010 - 11:39) major28 написал(а):
ааааааааааааа не понимаю ни черта((((((((((((((((((
допустим я передал обработчику
массив
checkboxName[0]=1;
checkboxName[1]=2;
checkboxName[2]=3;

мне не понятна строка

$checkboxName = !empty($_POST['checkboxName']) ? $_POST['checkboxName'] : array();

затем непонятно
WHERE `id` IN (". implode(', ', array_map('intval', $checkboxName)) .")


(((((((((((((

Спустя 6 минут, 9 секунд (2.05.2010 - 11:45) Lenarfate написал(а):
Цитата
$checkboxName = !empty($_POST['checkboxName']) ? $_POST['checkboxName'] : array();

тернарный оператор, альтернатива if'у.
можно записать так:
if(!empty($_POST['checkboxName']))
$checkboxName = $_POST['checkboxName'];
else
$checkboxName = array();



Цитата
затем непонятно
WHERE `id` IN (". implode(', ', array_map('intval', $checkboxName)) .")

гугли на функцию implode и оператор sql IN

и покажи уже свой запрос на выборку!

Спустя 3 минуты, 23 секунды (2.05.2010 - 11:48) major28 написал(а):
какую выборку мне нужно сделать?

Спустя 2 минуты, 1 секунда (2.05.2010 - 11:50) Lenarfate написал(а):
откуда у тебя вот это??
Цитата
while($myrow5=mysql_fetch_array($result5))
{
echo "
<input name=\"delete\" type=\"checkbox\" value=\"$myrow5[email]\" />
$myrow5[email]
<a href=''>Отправить email</a><Br>
";
}


откуда $result5??

Спустя 1 минута, 30 секунд (2.05.2010 - 11:52) major28 написал(а):
вот отсюда
$result5=mysql_query("SELECT * from user",$db);
$myrow5=mysql_fetch_array($result5);
mysql_data_seek($result5, "0");

Спустя 3 минуты, 19 секунд (2.05.2010 - 11:55) Lenarfate написал(а):
ну и все, а что еще не понятно, я все разложил.думай

Спустя 12 минут, 57 секунд (2.05.2010 - 12:08) major28 написал(а):
if(!empty($_POST['checkboxName']))
$checkboxName = $_POST['checkboxName'];
else
$checkboxName = array();


если нет переменной $_POST['checkboxName'] то в переменную $checkboxName присваиваю $_POST['checkboxName'] иначе этой переменной присваиваю пустой массив.

Не понимаю что это и для чего это? зачем пустой массив?

Спустя 3 минуты, 26 секунд (2.05.2010 - 12:12) major28 написал(а):
блин я конечно понимаю что ты не обязан мне объяснять, но когда человек не понимает можно же ему объянить доступно вместо того чтобы кидать много постов где куча непонятного кОда. Просто когда я сам помогаю кому либо всегда ориентируюсь на знание юзера. ((((

Спустя 2 минуты, 41 секунда (2.05.2010 - 12:14) Lenarfate написал(а):
http://irbis-team.com/15/5/11

если ты не знаешь основ, куда ж тебе лезть в работу с базами

Спустя 3 минуты, 23 секунды (2.05.2010 - 12:18) major28 написал(а):
ааааааа блин ну ты меня не понимаешь...........не суть в то м что я не знал альтернативу конструкции if-else. Я не понимаю что нам каждый кусок кода дает на деле?

Спустя 4 минуты, 40 секунд (2.05.2010 - 12:22) Lenarfate написал(а):
чтоб понимал, объясняй предельно точно.
а массив там для того, чтобы складывать в него выбранные значения из чекбокса.

по сути, весь рабочий код уже перед тобой. осталось только собрать все вместе

Спустя 3 минуты, 56 секунд (2.05.2010 - 12:26) major28 написал(а):
if(!empty($_POST['checkboxName']))
$checkboxName = $_POST['checkboxName'];
else
$checkboxName = array();


объяни пожалуйста словами что и как тут происходит?

Спустя 9 минут, 30 секунд (2.05.2010 - 12:36) Lenarfate написал(а):
уже объяснил

Спустя 24 минуты, 36 секунд (2.05.2010 - 13:00) major28 написал(а):

$result5=mysql_query("SELECT * from user",$db);
$myrow5=mysql_fetch_array($result5);
mysql_data_seek($result5, "0");
while($myrow5=mysql_fetch_array($result5))
{
echo "
<input name=
\"delete\" type=\"checkbox\" value=\"$myrow5[email]\" />
$myrow5[email]
<a href=''>Отправить email</a><Br>
"
;
}


код обработчика


if(!empty($_POST['checkboxName']))
$checkboxName = $_POST['checkboxName'];
else
$checkboxName = array();

if($all_delete)
{
$result = mysql_query("DELETE FROM `table` WHERE `id` IN (". implode(', ', array_map('intval', $checkboxName)) .")");
}


будет работать?

Спустя 5 минут, 26 секунд (2.05.2010 - 13:06) Lenarfate написал(а):
пробуй
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.