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
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
Post #2





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




Google: register globals.
Go to the top of the page
+Quote Post
pspgor
post
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? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
erix
post
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.
Go to the top of the page
+Quote Post
sadistic_son
post
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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
pspgor
post
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ą. (IMG:style_emoticons/default/wink.gif)

Rozumiem to co napisałeś. Tylko nie za bardzo wiem jak to 'podpiąć' do tej tabeli. To jest jedyna przeszkoda .. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sadistic_son
post
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
Go to the top of the page
+Quote Post

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: 22.08.2025 - 11:48