Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP+MySQL]Usuwanie użytkowników..., Jak wykonać formularz usuwający wybranych userów
Heweljusz
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.05.2006

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


Witam
Chciałem napisać skrypt usuwający wybranych userów, poprzez formularz
Kod formularza jest generowany automatycznie w pętli while(Skrypt ma usuwać tylko zaznaczonych - pole checkbox).
Podam kawałek z tym polem:
  1. <input class='textbox' type='checkbox' name='' value='' />

Nie wiem jak wypełnić pola name i value, i jaki kod php napisać, żeby aktualizowało rekordy dla zaznaczonych użytkowników. Każdy user ma swój unikalny ID.
Nie mogę wymyślić jak to zrobić, ponieważ tablica $_POST zawiera jeszcze kilka wartości i w żaden sposób to nie wychodzi.
W razie braku jakiejś informacji proszę napisać, na pewno się zrehabilituje.
Zapytanie sql:
  1. UPDATE ".$db_prefix."users SET user_clan_id='0', user_clan_rank='0' WHERE user_id='".$_POST["$i"]."'"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
NoiseMc
post
Post #2





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Daj tak (to tylko zarys kodu):
  1. foreach ($users as $user)
  2. {
  3. ?> <input type="checkbox" name="user[<?=$user['UserID'] ?>]" value="" /> <?
  4. }

Dostaniesz na przyklad:
  1. <input type="checkbox" name="user[1]" value="1" />
  2. <input type="checkbox" name="user[8]" value="1" />
  3. <input type="checkbox" name="user[15]" value="1" />

a zapytanie:
  1. <?php
  2. foreach ($_POST['user'] as $userID => $value)
  3. {
  4.  $db->execute ('UPDATE ' . $db_prefix . 'users SET user_clan_id = 0, user_clan_rank = 0 WHERE user_id = ' . $userID);
  5. }
  6. ?>
Go to the top of the page
+Quote Post
Heweljusz
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.05.2006

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


Jest problem: jest jeszcze wyswietlanie listy userów, zrobiono w pętli while.
  1. <?php
  2. while($row = mysql_fetch_array($result)) {
  3.  
  4. echo "
  5. <tr>
  6. <td class='tbl1' width='2' align='center'>
  7. <input class='textbox' type='checkbox' name='".$x."' value='".$row['user_id']."' />
  8. </td>
  9. <td class='tbl1' width='1'>".$x."</td>
  10. <td class='tbl1' align='center'>".$row['user_id']."</td>
  11. <td class='tbl1' align='center'>".$row['user_name']."</td>
  12. <td class='tbl1' align='center'>".rank($row['user_clan_rank'])."</td>
  13. </tr>
  14. ";
  15. ?>

To jest wtyczka do php-fusion, więc trzeba wykluczyć obiektowe programowanie
Gdyby przemianować ją na foreach, to może by się udało

Ten post edytował Heweljusz 26.07.2007, 21:41:09
Go to the top of the page
+Quote Post
Fixus
post
Post #4





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


po prostu nazwij checkbox`y numerami od 1 w górę. Potem jak będziesz sprawdzał które checkbox`y są zaznaczone zrób tak:
Kod
$query="SELECT * FROM user";
$result = mysql_query($query);
$ilosc = mysql_num_rows($result);
for($i=1; $i<=$ilosc; $i++) {
if(isset($_POST[$i])) {
//zapytanie sql
} else {}

i po sprawie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Heweljusz
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.05.2006

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


Nie ma sensu sprawdzać ID dla wszystkich userów.
Problem nadal nie jest rozwiązany (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Edit: No i musze wysyłać dwa zapytania, a kod i tak już za dużo obciąża bazę.

Ten post edytował Heweljusz 27.07.2007, 20:20:06
Go to the top of the page
+Quote Post
Fixus
post
Post #6





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

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


słuchaj to może tak...kiedy wyciągasz dane twórz zawsze dwa pola
checkbox i input type='hidden'...oba nazywaj wg. zmiennej $i jak podałem we wcześniejszym poście tylko, że do inputa o typie hidden wrzucaj jeszcze atrybut value który będzie przechowywał albo id użytkownika albo jego unikalny login...
następnie wystarczy, że bedzięsz sprawdzał które pola są zaznaczone za pomocą pętli jak napisałem wcześniej
jeżeli checkbox jest ustawiony dajesz zapytanie któe kasuje wg. ID czy loginu...to nie obciąża bardzo serwa
Go to the top of the page
+Quote Post
Heweljusz
post
Post #7





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 16.05.2006

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


Spox, narazie zostawię jak jest, ale będę kombinował.
Dzięki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Edit:
Wymyśliłem jeszcze coś takiego:
  1. <?php
  2. $i = 1;
  3. foreach($_POST as $user => $i) {
  4. if(isset($_POST[$i])) {
  5. dbquery("UPDATE ".$db_prefix."users SET user_clan_id='0', user_clan_rank='0' WHERE user_id='".$_POST[$i]."'");
  6. $i++;
  7. }
  8. }
  9. ?>

W input name i value ustawiłem na id użytkownika z bazy, kod narazie działa (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Heweljusz 28.07.2007, 17:16:24
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 - 15:42