Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]Usuwanie usera z bazy za pomocą buttona
pspgor
post 2.03.2011, 17:16:04
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 27.02.2011

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


Witam. Mam sobie taką tabelkę:

  1. echo "<table width='750' border='1' rules='all' title='Member list'>
  2. <tr>
  3. <td><center><b>L.p</b></center></td>
  4. <td><center><b>ID</b></center></td>
  5. <td><center><b>Nick</b></center></td>
  6. <td><center><b>E-mail</b></center></td>
  7. <td><center><b>Kasa</b></center></td>
  8. <td><center><b>Ranga</b></center></td>
  9. <td><center><b>Data rejestracji</b></center></td>
  10. </tr>";
  11. $lp = 1;
  12. while($row = mysql_fetch_assoc($result)) {
  13.  
  14. echo "<tr>
  15. <td><center>".$lp."</center></td>
  16. <td><center>".$row['id']."</center></td>
  17. <td><center>".$row['nick']."</center></td>
  18. <td><center>".$row['email']."</center></td>
  19. <td><center>".$row['kasa']."<font color='green'>$</span></center></td>
  20. <td><center>";
  21. if($row['grupa'] == 4) {
  22. echo '<font color="black">User</font>'; }
  23. else if($row['grupa'] == 3) {
  24. echo '<font color="blue">V.I.P</font>';}
  25. else {
  26. echo '<font color="red">Admin</font>'; }
  27. echo "</center></td>
  28. <td><center>".date("d.m.Y, H:i", $row['data_rejestracji'])."</center></td>
  29. <td><center>";
  30. ?>
  31. <input class="delete" type="submit" name="cmd" value="Usuń">
  32.  
  33. <?
  34. if($cmd == "Usuń")
  35. {
  36. $id = $row['id'];
  37. $sql = "DELETE FROM users WHERE id=$id";
  38.  
  39. $result = mysql_query($sql);
  40.  
  41. echo "Dane zostały usuniete<Br>";
  42. echo "<a href=\"index.php\">Powrót do bazy</a>.";
  43. }
  44.  
  45. echo "</center></td>
  46. </tr>";
  47. $lp++;
  48. }
  49. echo "</table>";


I chodziłoby mi o to, żeby po kliknięciu na button 'Usuń' usuwało usera z danego wiersza. Nie mogę sobie z tym poradzić. Pozdrawiam.
Go to the top of the page
+Quote Post
erix
post 2.03.2011, 17:19:14
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Google: register globals.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
pspgor
post 2.03.2011, 17:25:51
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 27.02.2011

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


Patrzę na te przykłady. I za wiele nie mogę wywnioskować. Mógłbyś dorzucić coś więcej? smile.gif
Go to the top of the page
+Quote Post
erix
post 2.03.2011, 17:41:17
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przeczytaj jeszcze raz te przykłady, bo temat wałkowany setki razy.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
sadistic_son
post 2.03.2011, 19:19:07
Post #5





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


W tabelce w której wyświetlasz userów nie możesz ich id po prostu wyświetlać jako teks jeśli chcesz aby można było ich potem usunąć. Dwa wyjscia:

1) Jesli chcesz aby przy kazdym userze byl jeden przycisk do jego usuniecia to:
Kazdego usera opatrz w oddzielny formularz, dodaj pole <input type="hidden" name="userid" value="$row['id']" />
Warunek odbierający dane musi wyglądać podobnie jak u Ciebie z tą różnicą , że nie może być $cmd, tylko $_POST['cmd'] bo jak zauwazyl erix bez wlaczonej opcji register_globals ta zmienna bedzie nierozpoznawalna. Usuwasz usera o id=$_POST['userid']

2) Jesli chcesz aby byl jeden przycisk do usuwania wielu userow na raz a kazdy user mial oddzielnego checkboxa do zaznaczania/odznaczania go to.... to napisz ktora opcje wolisz bo nie chce mi sie pisac na darmo wink.gif


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
pspgor
post 2.03.2011, 19:46:30
Post #6





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 27.02.2011

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


W sumie wybrałbym tą opcję pierwszą. wink.gif

Rozumiem to co napisałeś. Tylko nie za bardzo wiem jak to 'podpiąć' do tej tabeli. To jest jedyna przeszkoda .. smile.gif
Go to the top of the page
+Quote Post
sadistic_son
post 2.03.2011, 20:47:58
Post #7





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


  1. <?
  2. echo "<table width='750' border='1' rules='all' title='Member list'>
  3. <tr>
  4. <td><center><b>L.p</b></center></td>
  5. <td><center><b>ID</b></center></td>
  6. <td><center><b>Nick</b></center></td>
  7. <td><center><b>E-mail</b></center></td>
  8. <td><center><b>Kasa</b></center></td>
  9. <td><center><b>Ranga</b></center></td>
  10. <td><center><b>Data rejestracji</b></center></td>
  11. </tr>";
  12. $lp = 1;
  13. while($row = mysql_fetch_assoc($result)) {
  14.  
  15. echo '<tr><form action="index.php" method="post"><input type="hidden" name="userid" value="'.$row['id'].'" />'."
  16. <td><center>".$lp."</center></td>
  17. <td><center>".$row['id']."</center></td>
  18. <td><center>".$row['nick']."</center></td>
  19. <td><center>".$row['email']."</center></td>
  20. <td><center>".$row['kasa']."<font color='green'>$</span></center></td>
  21. <td><center>";
  22. if($row['grupa'] == 4) {
  23. echo '<font color="black">User</font>'; }
  24. else if($row['grupa'] == 3) {
  25. echo '<font color="blue">V.I.P</font>';}
  26. else {
  27. echo '<font color="red">Admin</font>'; }
  28. echo "</center></td>
  29. <td><center>".date("d.m.Y, H:i", $row['data_rejestracji'])."</center></td>
  30. <td><center>";
  31. ?>
  32. <input class="delete" type="submit" name="cmd" value="Usuń"></form>
  33.  
  34. <?php
  35. }
  36. echo '</table>';
  37.  
  38. if(isset($_POST['cmd']) && isset($_POST['userid']))
  39. {
  40. $id = strip_tags(mysql_real_escape_string(intval($_POST['userid'])));
  41. $sql = "DELETE FROM users WHERE id=$id";
  42.  
  43. $result = mysql_query($sql);
  44.  
  45. echo "Dane zostały usuniete<Br>";
  46. echo "<a href=\"index.php\">Powrót do bazy</a>.";
  47. }
  48.  
  49. echo "</center></td>
  50. </tr>";
  51. $lp++;
  52. }
  53. echo "</table>";
Kolego.... radzę się douczyć podstaw. Nie miałeś domkniętej pętli while ani tabeli. Wszystko co było w Twoim warunku if($cmd='Usuń'){ nie miało prawa działać. Dlaczego? Bo skąd php miełby wiedzieć co to jest $cmd skoro ta zmienna nie istniałaby po przeładowaniu strony, czyli po kliknięciu w przycisk. Dalej... wszystkie zmienne $row w tym warunku, np. $id którego używasz do usuwania też by nie istniały. Te $row, które wykorzystujesz w pętli while, przestaną istnieć po przeładowaniu strony. I w ogóle to pododawałeś same przyciski bez formularzy, nie przekazywałeś nigdzie dalej id usera do usunięcia. No po prostu NIC nie miało prawa Ci tam działać.

Ten post edytował sadistic_son 2.03.2011, 20:57:00


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 00:47