Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Problem z MYSQL DELETE
honytowk
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 3
Dołączył: 11.09.2008
Skąd: Gliwice

Ostrzeżenie: (0%)
-----


Witam nie mogę sobie poradzić z funkcją DELETE. Update działa tak jak powinien wszystko ok, a
DELETE FROM nie odpowiada w ogolę, nie usuwa pożądanego rekordu
jak to naprawić?
rekordy w bazie zapisują się w taki sposób: " 10.11.12.13 "
  1. if (isset($update_profile)) {
  2. $result = dbquery("UPDATE ".$db_prefix."users SET grupy='".$userdata['grupy'].".".$grupa."' WHERE user_id='".$userdata['user_id']."'");
  3.  
  4. }
  5. if (isset($delete_profile)) {
  6. $result = dbquery("DELETE FROM ".$db_prefix."users WHERE grupy='.".$grupa."' AND user_id='".$userdata['user_id']."'");
  7. }
  8.  
  9. }
  10.  
  11.  
  12.  
  13. echo "<form name='inputform' method='post' action='' enctype='multipart/form-data'>\n";
  14. echo "<table align='center' cellpadding='0' cellspacing='0'>\n";
  15. if ($userdata['grupy'] != $grupa) {
  16. echo "
  17.  
  18. <center><input type='submit' name='update_profile' value='Zapisz się' class='button'>
  19. </center></form> ";
  20. echo "
  21. <form name='inputform' method='post' action='' enctype='multipart/form-data'>
  22. <center><input type='submit' name='delete_profile' value='usun się' class='button'>
  23. </center> ";
  24. }
  25.  
  26.  
  27.  
  28.  
  29. </td>
  30. </tr>
  31. </table>
  32. </form>\n";
  33.  
  34.  
  35. ";
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zrób może według takiego wzorca:
  1. $string_grup = 'tu_są_te_grupy_z_kropkami_pomiędzy';
  2. $grupa = 'tu_jest_numer_grupy_do _usunięcia';
  3. $temp = explode('.', $string_grup);
  4. $key = array_search( $grupa, $temp ); //sprawdzenie czy taka grupa istnieje pomiędzy tymi w jakich jest user
  5. if( $key )
  6. unset( $temp[$key] ); //usunięcie grupy
  7. $po_usunięciu = implode('.', $temp); //złożenie do kupy

Zauważ, że jeśli usuniesz w ten sposób ostatni element to otrzymasz w wyniku ciąg pusty. Po explode pierwszy element tablicy jest ciągiem pustym, ale jeśli usuniesz ostatnią grupę to implode jednoelementowej tablicy daje w wyniku string o wartości tego elementu, a więc pusty string tak czy inaczej. Takowy możesz potem przesłać jako wartość w UPDATE bez problemu (de facto wpisanie tam wartości pustej będzie jak wywalenie usera z wszystkich grup). Na upartego mógłbym wywalić IF i od razu po search robić unset ale wolę to sprawdzić dla bezpieczeństwa. Mógłbym też (znów na upartego) zabezpieczyć się przed sytuacją, gdy user jest kilkukrotnie w tej samej grupie wpisany i zamiast array_search użyć array_keys i potem robić unset w pętli foreach po zwróconych mi kluczach. Ale to już nadmierne zabezpieczanie się, choć możliwe, że będzie konieczne jeśli nie pilnujesz czy user jest już przypisany do danej grupy.

Ten post edytował thek 6.11.2009, 00:19:24
Go to the top of the page
+Quote Post

Posty w temacie
- honytowk   [PHP][MySQL]Problem z MYSQL DELETE   5.11.2009, 18:11:50
- - potreb   Daj po delete echo mysql_error(); i zobacz czy wyw...   5.11.2009, 18:26:10
- - honytowk   nie wywala żadnego błędu, wie ktoś jak ułożyć leps...   5.11.2009, 20:32:38
- - Zosiek   $result = dbquery("DELETE FROM "....   5.11.2009, 20:54:12
|- - honytowk   Cytat(Zosiek @ 5.11.2009, 20:54:12 ) ...   5.11.2009, 21:07:52
- - potreb   Ale i tak kasujesz tylko użytkownika to po co chce...   5.11.2009, 21:33:33
|- - honytowk   Cytat(potreb @ 5.11.2009, 21:33:33 ) ...   5.11.2009, 22:02:55
|- - skowron-line   Cytat(honytowk @ 5.11.2009, 22:02:55 ...   5.11.2009, 22:12:32
|- - potreb   Cytat(honytowk @ 5.11.2009, 22:02:55 ...   5.11.2009, 22:38:49
|- - honytowk   Cytat(potreb @ 5.11.2009, 22:38:49 ) ...   5.11.2009, 22:47:54
- - skowron-line   1. Czy warunek jest spełniony 2. Zrzuć sobie zapy...   5.11.2009, 21:40:22
- - honytowk   no usuwać grupę chce zapytaniem: [PHP] pobierz, pl...   5.11.2009, 22:37:35
- - potreb   [PHP] pobierz, plaintext $groupuser = dbarray...   5.11.2009, 23:05:52
- - thek   Moim zdaniem źle zrobiłeś używając do oznaczeń lic...   5.11.2009, 23:11:49
|- - potreb   Cytat(thek @ 5.11.2009, 23:11:49 ) ED...   6.11.2009, 00:04:45
- - honytowk   działa, ale jest jeden mankament: jak usunę parę g...   5.11.2009, 23:38:56
- - thek   Zrób może według takiego wzorca:[PHP] pobierz, pla...   6.11.2009, 00:17:07
- - honytowk   if (isset($delete_profile)) { $st...   6.11.2009, 15:16:25
- - thek   Więc popatrz co zawierają wszystkie te zmienne i z...   6.11.2009, 15:22:34
- - honytowk   okej, wszystko przeanalizowałem, poprawiłem teraz ...   7.11.2009, 10:48:26
- - thek   Jeśli chcesz ograniczać wyniki na stronach to pocz...   7.11.2009, 13:00:52


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 20:43