Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wykonywanie zapytań zależne od pól checkbox
Forum PHP.pl > Forum > Przedszkole
Mody23
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?
nospor
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?
Mody23
Rzeczywiście, ruszyło, dzięki wstydnis.gif
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.