Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wykonywanie zapytań zależne od pól checkbox
Mody23
post 8.02.2012, 18:47:22
Post #1





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Witam!

Mam dziwny problem. Mianowicie po polach checkbox definiuję prawa użytkowników. Kod wygląda tak:

  1. if(isset($_GET['manage']) && isset($_GET['admin']) && $_SESSION['admin'] !== NULL && htmlspecialchars($_GET['admin'] == 'panel') && htmlspecialchars($_GET['manage'] == 'users') && $userdata['user_level'] == 1 && !(isset($_POST['delete'])) )
  2. {
  3. $sql = "SELECT * FROM `users` ORDER BY nick ASC";
  4. $result = mysql_query($sql)
  5. or die('Nie udało sie pobrac danych');
  6. while($row = mysql_fetch_assoc($result))
  7. {
  8. $idek = $row['id'];
  9. $name = $row['nick'];
  10. $email = $row['email'];
  11. $user_onoff = $row['user_on'];
  12. $session_time = $row['session_time'];
  13. $obecny_czas = time();
  14.  
  15. $admin = ($row['user_level'] == 1) ? 'checked="checked"' : '';
  16. $newsman = ($row['user_newsman'] == 1) ? 'checked="checked' : '';
  17.  
  18. $user_status = '';
  19. if ( $session_time > ($obecny_czas - board_config('session_time')) && $user_onoff == 1 )
  20. {
  21. $user_status = '<span style="color: green; font-weight: bold;">ONLINE</span>';
  22. }
  23. else
  24. {
  25. $user_status = '<span style="color: red; font-weight: bold;">OFFLINE</span>';
  26. }
  27. $tabela_userow .= '<tr align="center"><td><a href="loginek.php?admin=profile&id=' . $idek . '">' . $name . '</a></td><td>' . $email . '</td><td>' . $user_status . '</td><td><input type="checkbox" name="uid[]" value="' . $row['id'] . '"></td><td><input type="checkbox" ' . $admin . ' name="aid[]" value="' . $row['id'] . '"></td><td><input type="checkbox" ' . $newsman . ' name="wid[]" value="' . $row['id'] . '"></td></tr>';
  28. }
  29. $body = '<b>Witaj w panelu administracyjnym! Tutaj mozesz zarzadzac strona, oraz uzytkownikami!<br><a href="loginek.php"><b>STRONA GŁÓWNA</b></a> | <a href="loginek.php?admin=panel">PANEL - STRONA GLOWNA</a> | <a href="loginek.php?admin=panel&manage=website">USTAWIENIA STRONY</a> | <a href="loginek.php?admin=panel&manage=banned">BANLISTA</a><br><form action="loginek.php?admin=panel&manage=users" method="post"><table border="1"><tr><td><b>NICK</b></td><td><b>E-MAIL</b></td><td><b>STATUS</b></td><td>USUWANIE</td><td>ADMINISTRATOR</td><td>NEWSMAN</td></tr>' . $tabela_userow . '</table><input type="submit" name="delete" value="Zapisz"></form>';
  30. echo $body;
  31. }
  32. else if(isset($_GET['manage']) && isset($_GET['admin']) && $_SESSION['admin'] !== NULL && htmlspecialchars($_GET['admin'] == 'panel') && htmlspecialchars($_GET['manage'] == 'users') && $userdata['user_level'] == 1 && isset($_POST['delete']) )
  33. {
  34. if ( !empty($_POST['wid']) )
  35. {
  36. $del_idw = implode(',', $_POST['wid']);
  37. if ( isset($del_idw) AND !empty($del_idw) )
  38. {
  39. $sql = "UPDATE `users` SET user_newsman = 1 WHERE id IN ('".$del_idw."')";
  40. $result = mysql_query($sql)
  41. or die('Nie udało sie pobrac danych');
  42. }
  43. }
  44. if ( !empty($_POST['aid']) )
  45. {
  46. $del_ida = implode(',', $_POST['aid']);
  47. if ( isset($del_ida) AND !empty($del_ida) )
  48. {
  49. $sql = "UPDATE `users` SET user_newsman = 1 WHERE id IN ('".$del_ida."')";
  50. echo '<br>' . $sql;
  51. $result = mysql_query($sql)
  52. or die('Nie udało sie pobrac danych');
  53. }
  54. }
  55. if ( !empty($_POST['uid']) )
  56. {
  57. $del_ids = implode(',', $_POST['uid']);
  58. if ( isset($del_ids) AND !empty($del_ids) )
  59. {
  60. $sql = "DELETE FROM `users` WHERE id IN ('".$del_ids."')";
  61. $result = mysql_query($sql)
  62. or die('Nie udało sie pobrac danych');
  63. $sql = "DELETE FROM `private_messages` WHERE from_userid IN ('".$del_ids."') OR to_userid IN ('".$del_ids."')";
  64. $result = mysql_query($sql)
  65. or die('Nie udało sie pobrac danych');
  66. }
  67. }
  68. echo "Zmiany zostaly zapisane!";
  69. }


A na screenie prezentuje się to tak:



Teraz jak zaznaczam prawa administratora użytkownikowi, który ich jeszcze nie ma, to w bazie tego nie aktualizuje, pomimo że zapytanie jest poprawne:



Jak wykonuję zapytanie w phpmyadmin tez nic sie nie dzieje. Natomiast jak zamienie ID miejscami, to podmienia te wartości. Co jest nie tak?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post 8.02.2012, 18:49:35
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




co wy się macie do tych apostrofów.... uzywacie ich bez składu i ładu.

id in ('12,10')
Naprawde wg. ciebie to jest ok? Naprawdę masz id które jest tekstem '12,10' ?
A może masz ID 12 oraz id 10?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Mody23
post 8.02.2012, 20:48:07
Post #3





Grupa: Zarejestrowani
Postów: 276
Pomógł: 0
Dołączył: 30.06.2010

Ostrzeżenie: (10%)
X----


Rzeczywiście, ruszyło, dzięki wstydnis.gif
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: 19.07.2025 - 05:38