Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] kasuje/updatuje wszystkie rekordy
Forum PHP.pl > Forum > Przedszkole
adek-
Witam, mam kolejny problem z kasowaniem pojedynczego rekordu. Proszę zwrócić uwagę na końcówkę SART i STOP, gdzie tymczasowo zamieniłem DELETE na UPDATE, aby nie dodawać co próbę rekordów.
Wpis ten wyświetla id przed i po formularzu, nawet zamieniłem $wymien['id'] na zmienną $idd bo myślałem że źle je rozpoznaje i zamiast kasować/zmieniać wybrane id, to on robi to ze wszystkimi.
zahaczyłem znacznikami php kawałek kodu żeby było wiadomo która część mi nie działa, oczywiście w źródle ich tam nie ma wink.gif

  1. $q = "SELECT * FROM $tabela_users ORDER BY id ASC";
  2. $r = mysql_query($q);
  3. // TABELA WYSW DANYCH
  4. $i=0;
  5.  
  6. while($wymien = mysql_fetch_assoc($r)) {
  7. $color = ($i % 2 == 0) ? '' : '';
  8. $bgcolor = ($i % 2 == 0) ? 'fafafa' : '';
  9.  
  10. echo '<tr bgcolor="'.$bgcolor.'" style="color:'.$color.';">
  11. <td>'.$wymien['id'].'.</td>
  12. <td> '.$wymien['kantor'].' </td>
  13. <td> '.$wymien['login'].'</td>
  14. <td>'.$wymien['imie'].' '.$wymien['nazwisko'].'</td>
  15. <td> '.$wymien['email'].'</td>
  16. <td> &nbsp; '.$wymien['tel'].'</td>
  17. <td valign="middle"> ';
  18. echo '</td><td>';
  19. <?php
  20. //####### START ######
  21. echo '<form class="form" action="uzytkownicy.php" method="post">
  22. <input type="hidden" name="kasujusera" value="TRUE" />
  23. <input type="submit" class="button smallx" value="x" />
  24. </form>';
  25.  
  26. $idd = $wymien['id']; // zrobiłem to dla testów bo myslałem że samego wymien['id'] mi nie widzi...
  27. echo $idd;
  28. if ($wymien['status'] == 1) {
  29. if (isset($_POST['kasujusera']) && !empty($_POST['kasujusera'])) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  30. //$sql = mysql_query("DELETE FROM $tabela_users WHERE id='$wymien[id]' ");
  31. $sql = mysql_query("UPDATE $tabela_users SET status=0 WHERE id=$idd "); }
  32. } else {
  33. if (isset($_POST['kasujusera']) && !empty($_POST['kasujusera'])) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  34. //$sql = mysql_query("DELETE FROM $tabela_users WHERE id='$wymien[id]' ");
  35. $sql = mysql_query("UPDATE $tabela_users SET status=1 WHERE id=$wymien[id] "); }
  36. }
  37. echo $wymien[id]; //sprawdzałem czy wyświetla jeszcze wpisy id z tablicy
  38. //####### STOP #######
  39. ?>
  40. $i++;
  41.  
  42. echo '</tr>';
  43. }
  44. echo '</table>';
kadlub
jak to wszystko robisz w pętli to się nie dziwię
ten warunek w który usuwasz usera wyrzuć z pętli while i wstaw za nią a tym postem przesyłaj id tego usera i podstaw do zapytania kasującego
adek-
kadlub nie wiem czy o takie coś Ci chodziło
  1.  
  2. echo '<form class="form" action="uzytkownicy.php" method="post">
  3. <input type="hidden" name="kasujusera" value="TRUE" />
  4. <input type="submit" class="button smallx" value="x" />
  5. <input type="text" name="id" value='.$wymien[id].' />
  6. </form>';
  7.  
  8. $ide = $wymie['id'];
  9. echo $ide;
  10.  
  11. $i++;
  12. echo '</tr>';
  13. } // tutaj jest koniec tego while... i po nim wstawiony warunek if
  14.  
  15. //####### start
  16. if ($wymien['status'] == 1) {
  17. if (isset($_POST['kasujusera']) && !empty($_POST['kasujusera'])) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  18. //$sql = mysql_query("DELETE FROM $tabela_users WHERE id='$wymien[id]' ");
  19. $sql = mysql_query("UPDATE $tabela_users SET status=0 WHERE id=$ide "); }
  20. } else {
  21. if (isset($_POST['kasujusera']) && !empty($_POST['kasujusera'])) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  22. //$sql = mysql_query("DELETE FROM $tabela_users WHERE id='$wymien[id]' ");
  23. $sql = mysql_query("UPDATE $tabela_users SET status=1 WHERE id=$ide "); }
  24. }
  25. echo $wymien[id];
  26. //####### koniec
  27. '</table>';


nie jestem pewien, ale chyba nie przechodzi mi 'id' do warunku... skrypt nic nie robi, zmienna $ide jest dlatego bo wyżej mam $id w czymś innym.
kadlub
id usera który ma być zmieniony czy usunięty przesyłasz metodą post a gdzie w zapytaniu zmieniającym masz podstawione tą zmiennąquestionmark.gif
przesyłasz ją :
<input type="text" name="id" value="'.$wymien[id].'"' />
więc
w zapytaniu daj:
  1. $sql = mysql_query("UPDATE $tabela_users SET status=0 WHERE id='".$_POST['id']."' ";

chociaż nie wiem po co aż do tego formularz zwykły link i metoda GET by wystarczyła
a i co to jest ten z $wymien['status'] jeśli chcesz to sprawdzić to też musisz to przesłać z tej pętli
adek-
Fantastyczne dzięki kadłub, jesteś wielki wink.gif
A zmienna status=1/0 to była zmienna stworzona dla potrzeb rozwiązania tego problemu, żeby nie wrzucać ciagle userów do bazy, w każdym bądź razie wszysciutko jak do tej pory dziala smile.gif
Pozdrawiam i życze wyskokowego nowego roku!

---- dytowano

PS a da się zrobić coś aby był jakiś monit, bądź zapytanie "czy usunąć użytkownika" bez jakichś js, ajaxów i innych, tylko za pomocą prostej zmiany w/w kodu? bo właśnie posłałem przypadkiem jednego w diabły ;D
i żeby automatycznie odświeżyć stronę po zmianie, tak żeby pokazało już wczytaną opcję po zmianie to już nie php? czy jest możliwość na jakiś skrypcik co odświeży automatycznie po wciśnięciu ok?
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.