Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Usuwanie usera z bazy za pomocą buttona
Forum PHP.pl > Forum > Przedszkole
pspgor
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.
erix
Google: register globals.
pspgor
Patrzę na te przykłady. I za wiele nie mogę wywnioskować. Mógłbyś dorzucić coś więcej? smile.gif
erix
Przeczytaj jeszcze raz te przykłady, bo temat wałkowany setki razy.
sadistic_son
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
pspgor
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
sadistic_son
  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ć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.