Проблем с изтриване на писма в сайт (inbox) |
|||||
|
|||||
|
|
|||||
![]() ![]() |
Здравейте,
Мъча се цял ден със следния проблем. На един inbox в сайт при получено ново писмо трябва първо да се отвори и от там да се изтрие с бутон "Изтрий". <a href="del.php?id=<?php echo $id; ?>">изтрий </а> Това което аз се опитвам да направя е още докато потребителя е в кутията без да отваря писмото срещу всяко писмо да има checkbox да се маркират писмата за изтриване и най-долу да има бутон "Изтрий" и по този начин да се изтриват всички маркирани писма.Ето го checkbox-а пред всяко писмо: <input type="checkbox" value="" name=""> и бутона долу: <input type="submit" value="изтрий" > ето файла del.php <?php session_start(); if (!isset($_SESSION['user'])) { Header("Location: /?"); } require_once('fun.php'); db_connect(); $result = mysql_query ("select id, to_ formt pm where id = '$id' and to_ ='$user'"); list ($id, $to_) = mysql_fetch_array($result); if ($user !=$id[1]) { Header("Location: /?"); } mysql_free_result($result); mysql_query(delete from pm where id ='$id'"); Header("Location: /?"); ?> Помогнете да направя връзката с del.php Ето това е кода на бутона изтрий когато писмото е отворено <a href="del.php?id=<?php echo $id; ?>">изтрий </а> и работи (изтрива отвореното писмо и връща в inbox), но по този начин е кофти защото всяко писмо трябва да бъде отворено за да се изтрие. Въпроса е как да се маркират с отмети в checkbox и при натискане на бутон изтрий най долу да изтрива всички маркирани писма. Благодарско! +1 +1 :) |
||||
|
---------------------------
Потребител от: 18.04.08 | Всички уроци от Moreny | Всички скриптове от Moreny |
|||||
|
|
|||||
|
|||||
|
|
|||||
![]() ![]() |
На този линк има това което искаш да направиш http://phpeasystep.com/mysql/8.html може да го преработиш направо за твоя скрип за теб е важно с амо да разбереш принципа му на работа
|
||||
|
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Да само дето не разбирам това:
<input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"> За какво checkbox[] и как така после се изкарва chechbox[num]?!? |
||||
|
---------------------------
Потребител от: 20.12.06 | Всички уроци от zipopro | Всички скриптове от zipopro Лъчезар Петров Лечев - 14 - Стара Загора - Уеб Програмист Винчета, болчета гайкии...! |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Обяснявам какво е checkbox[] това е масив в който се съхраняват id та който искаш да изтриеш, а масив е празен понеже не знамем колко полета имаме те нали се генерира динамично в php кода , а изтриването става тука
if($delete){ for($i=0;$i<$count;$i++){ $del_id = $checkbox[$i]; $sql = "DELETE FROM $tbl_name WHERE id='$del_id'"; $result = mysql_query($sql); } Обяснение на кода : Ако променливата $delete е сентата се изпълнява кода в конструкцията. Прменливата $count съдържа броя на редовете върнати от заявката селект. $checkbox[$i] съдържа id та който трябва да бъдат изтрити.Той е POST - тия масив от формата, а $i се явява ключа на отделния елемент. $result = mysql_query($sql) изпълнява заявкат а за изтриване. Ще бъдата изтрите редовете където имаме стойности в елементите. |
||||
|
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Да забеляза че кода е във HTML и е малко трудно да се повярва че
checkbox[] - което е низ(и е всъщност name-а на input-a) че е МАСИВ! |
||||
|
---------------------------
Потребител от: 20.12.06 | Всички уроци от zipopro | Всички скриптове от zipopro Лъчезар Петров Лечев - 14 - Стара Загора - Уеб Програмист Винчета, болчета гайкии...! |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
zipopro сега ще ти обясня за какво точно става на въпрос :
При избор на една или повече стойности се изпозва имеНаПоле[]. Поради факта, че полета input или други полета имат само по един атрибут име. Това означава, че PHP създава само по една променлива за всяко поле. Но ако има една променлива и множество избрани стойности, как PHP присвоява стойности на променливата? Тук е мястото къде се изпозва концепцията за масивите. Когато имаме избрани множество стойности, PHP присвоява всички избрани стойности като масив на съответната променлива. Ако не ти е ясно още ми кажи и ще напиша урок с примери как да се изпозват масиви при създаване и обработка на форми. Защото масивите са жизнено важна част от програмирането. |
||||
|
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace |
|||||
|
|
|||||
|
|
|||||
![]() ![]() ![]() |
Цитат от bgspace@03.08.2008 23:31: Ако не ти е ясно още ми кажи и ще напиша урок с примери как да се изпозват масиви при създаване и обработка на форми. Защото масивите са жизнено важна част от програмирането.И да му е станало ясно на него много хора може да не го знаят така че няма да е излишен един урок ако ти се пише. Поздрави! |
||||
|
---------------------------
Потребител от: 06.02.07 | Всички уроци от iwanov | Всички скриптове от iwanov Не е важно да си готин, готино е да си важен. 'Nemo saltat sobrius nisi forte insanit' - 'Nobody dances sober unless he's insane' - Ciccero :) |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Здравейте, отново ето как успях да го направя.
<?php if (isset($_POST['submit'])) { $del_msg = $_POST['del_msg']; $i = 0; $count = count($del_msg); while ($i < $count) { $dell[] = "id = '$del_msg[$i]'"; $i++; } if ($count > 0) { $dell = "(".implode(" OR ", $dell).")"; mysql_query("DELETE FROM pm WHERE $dell AND to_ = '$user'"); echo "Избраните съобщения бяха изтрити успешно!"; } else { echo "Не сте избрали съобщения за изтриване!"; } } ?> Дайте си мнението по кода. Мисля, че това е най оптимизирания вариант до момента ? Ако имате забележки и видите, че нещо може да се подобри моля да кажете :) Благодаря Ви! |
||||
|
---------------------------
Потребител от: 18.04.08 | Всички уроци от Moreny | Всички скриптове от Moreny |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
1. Кода ти изобщо не е подреден!
2. Какво е това $dell[] = "id = '$del_msg[$i]'"; О.о мн странно!3. Не знаех че ако зададеш името на някое HTML поле от форма като масив че тръгва! Това за първи път го чувам и затова ми стана мн интересно! Поздрави! |
||||
|
---------------------------
Потребител от: 20.12.06 | Всички уроци от zipopro | Всички скриптове от zipopro Лъчезар Петров Лечев - 14 - Стара Загора - Уеб Програмист Винчета, болчета гайкии...! |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Това където си го направил няма никакъв смисъл. То работи но логически не е правилно имаш грешка в логиката.
CODE
|
||||
|
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Цитат от bgspace@04.08.2008 12:57: Това където си го направил няма никакъв смисъл. То работи но логически не е правилно имаш грешка в логиката.CODE
Да прав си и по твоя начин работи, но защо пък да няма логика и в кода, който му дадох. Сега ще го обясня. CODE
|
||||
|
---------------------------
Потребител от: 19.06.08 | Всички уроци от HunteR666 | Всички скриптове от HunteR666 |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Май в този сайт на много хора не им се чете както гледам. Трябва всичко да ви се дава на готово без да се памъчите ни най-малко. HunteR666 ти да си чувал за така наречената оптимизация на кода. В момента ти което си направил с тоя цикъл while просот копираш един масив в друг коетомо може и да стане и така масивІ1 = масив2;. Но няма смисал да се копира този масив щом не правиш никакви промени в него. Защтото при всяко едно действие ти изпозваш ресурси. if конструкцията може да бъде преметен горе в цъкъла няма смъсъл да е доло. Твоя метод работи но си помисли малко ако имаш доста повече данни за обработка?. Може да прочетеш малко за оптимизация на php и mysql ако мислиш да се знимаваш с програмиране това ще ти е от същестрена важност за напред.
|
||||
|
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Логиката която използваш @HunteR666 е мн объркващ, неподреден и нерационален! Ето как трябва да изглежда кода:
CODE
|
||||
|
---------------------------
Потребител от: 20.12.06 | Всички уроци от zipopro | Всички скриптове от zipopro Лъчезар Петров Лечев - 14 - Стара Загора - Уеб Програмист Винчета, болчета гайкии...! |
|||||
|
|
|||||
|
|
|||||
![]() ![]() ![]() |
Вие не сте ли чували за foreach ?
|
||||
|
---------------------------
Потребител от: 07.01.07 | Всички уроци от CBeTHaX | Всички скриптове от CBeTHaX http://www.ricari-bg.com |
|||||
|
|
|||||
|
|
|||||
![]() ![]() |
Май само ти си чувал за foreach() но не знаеш за какво се използва
. Да ти обясня за какво се изпозва и да си помислиш дали е удобно в тоя случай да бъде изпозван :foreach конструкцията работи само с масиви и ще изведе грешка, ако се опитате да я използвате върху променлива от друг тип или върху неинициализирана променлива. foreach работи с копие от зададения масив, а не със самия масив. foreach има някои странични ефекти върху указателя на масива. Не разчитайте на указателя на масива по време или след изпълнението на foreach без да сте го изчистили изрично. Референцията между $value и последния елемент от масива остава дори и след приключването на цикъла foreach. foreach не поддържа възможността за подтискане на съобщения за грешка чрез използване на '@'. |
||||
|
---------------------------
Потребител от: 10.05.07 | Всички уроци от bgspace | Всички скриптове от bgspace |
|||||
|
|
|||||
| 1 посетител чете тази тема (0 потребители и 1 гост) | |||
|
Активни потребители:
---
|
|||
| |||














$dell[] = "id = '$del_msg[$i]'"; О.о мн странно!




. Да ти обясня за какво се изпозва и да си помислиш дали е удобно в тоя случай да бъде изпозван :