Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Problem przy zaznaczaniu
-Kercsdd-
post 16.06.2008, 10:42:11
Post #1





Goście







Piszę system newsów i mam problem. Chcę zrobić coś takiego przy usuwaniu i edytowaniu, że będzie usuwać zaznaczone elementy, no ale po zaznaczeniu nie usuwa. Co jest tego przyczyną ? Kod:

  1. <?php
  2.  
  3.  
  4. if (!isset($_SESSION['admin'])) {
  5. header ("Location: admin.html");
  6. }
  7.  
  8. else {
  9.  
  10. mysql_connect ('localhost','root','something');
  11. mysql_select_db('system');
  12. include ("main.php");
  13.  
  14. switch ($_GET['mod']) {
  15. default:
  16.  
  17. echo 'Yo, ' . $_SESSION['admin'];
  18.  
  19. break;
  20.  
  21. case 'addnews':
  22.  
  23. if (empty($_POST['subject']) && empty($_POST['news'])) {
  24. echo '<div id="use">
  25. <form action="admin.php?mod=addnews" method="post">
  26. <div id="form">
  27. <label>Subject: <input type="text" name="subject" /></label>
  28. <textarea name="news" rows="15" cols="40"></textarea>
  29. <input type="submit" value="Add" />
  30. </div>
  31. </form>
  32. </div>';
  33. }
  34.  
  35. else {
  36.  
  37. $date= date("d.m.y");
  38. $news= "INSERT INTO news (`subject`,`content`,`author`,`date`)
  39. VALUES ('".trim($_POST['subject'])."','".trim($_POST['news'])."'
  40. ,'".$_SESSION['admin']."','$date');";
  41. mysql_query ($news);
  42. echo 'News has been added';
  43.  
  44. }
  45.  
  46. break;
  47.  
  48. case 'manage':
  49.  
  50. echo '<div id="end">
  51. <ul>
  52. <li><a href="#">Edit</a></li>
  53. <li><a href="admin.php?mod=delete">Delete</a></li>
  54. </ul>
  55. </div>';
  56.  
  57. $show= htmlspecialchars("SELECT subject,date,author FROM news
  58. WHERE author='".$_SESSION['admin']."'");
  59. $showa= mysql_query($show);
  60.  
  61. while ($showall= mysql_fetch_assoc($showa)) {
  62. echo '<form action="admin.php?mod=manage" method="post">
  63. <div id="checkbox">
  64. <input type="checkbox" name="select" value="" />' . $showall['subject']
  65.  . $showall['date'] . $showall['author'] . '</div>' . '</form>';
  66. }
  67.  
  68. break;
  69.  
  70. case 'delete':
  71.  
  72. $del= $_POST['select']= $showall['subject'];
  73.  
  74. if (!empty($_POST['select'])) {
  75.  
  76. $delete= "DELETE FROM news WHERE `author`= '".$_SESSION['admin']."';";
  77. mysql_query($delete);
  78. echo 'Selected news has been deleted';
  79.  
  80. }
  81.  
  82. else {
  83. echo 'Select something';
  84. }
  85.  
  86. } //end switch
  87.  
  88. } // end else
  89.  
  90. ?>
Go to the top of the page
+Quote Post
bmL
post 16.06.2008, 19:13:41
Post #2





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


1.
  1. <?php
  2. $del= $_POST['select']= $showall['subject']
  3. ?>
co to ma na celu??
2.
  1. <?php
  2. $delete= "DELETE FROM news WHERE `author`= '".$_SESSION['admin']."';";
  3. ?>

Nie wiem jak wygląda struktura bazy dancyh ale to raczej usunie wszystkie newsy należące do admina nie uwzględniłeś tego, który new chcesz usunąć. Powinieneś w zapytaniu pobierania do formularza uwzględnić pobranie jakiegoś numeru_id newsa. I w zapytaniu usuwania uwzględnić usuwanie newsa który ma właśnie to id.

  1. <?php
  2. $show= htmlspecialchars("SELECT subject,date,author FROM news
  3. WHERE author='".$_SESSION['admin']."'");
  4. $showa= mysql_query($show);
  5. while ($showall= mysql_fetch_assoc($showa)) {
  6. echo '<form action="admin.php?mod=manage" method="post">
  7. <div id="checkbox">
  8. <input type="checkbox" name="select" value="" />' . $showall['subject']
  9.  . $showall['date'] . $showall['author'] . '</div>' . '</form>';
  10. }
  11. ?>

chyba powinno wyglądać tak:
  1. <?php
  2. $show= htmlspecialchars("SELECT subject,date,author,JAKIES_POLE_ID FROM news
  3. WHERE author='".$_SESSION['admin']."'");
  4. $showa= mysql_query($show);
  5. echo '<form action="admin.php?mod=manage" method="post">';
  6. while ($showall= mysql_fetch_assoc($showa)) {
  7. echo '<div id="checkbox">
  8. <input type="checkbox" name="select" value="$showall[JAKIES_POLE_ID]" />' . $showall['subject']
  9.  . $showall['date'] . $showall['author'] . '</div>';
  10. }
  11. echo '</form>';
  12. ?>

I
  1. <?php
  2. $delete= "DELETE FROM news WHERE `author`= '".$_SESSION['admin']."';";
  3. ?>

:
  1. <?php
  2. $delete= "DELETE FROM news WHERE `author`= '$_SESSION['admin']' AND `JAKIES_ID` = '$del'";
  3. ?>


ps. jeżeli string jest ujęty w cudzysłowy "przykład" to automatycznie jest przeszukiwany w poszukiwaniu zmiennych $ czyli nie musisz robić czegoś takiego:
  1. <?php
  2. $x = "jakis string ".$zmienna." dalej teskt"
  3. ?>

wystaczy
  1. <?php
  2. $x = "jakis string $zmeinna dalej teskt"
  3. ?>

takie coś ma zastosowanie tylko w przypadku stringów ujętych w apostrofy 'przykład' które nie są automatycznie przeszukiwane w poszukiwaniu zmiennych. Dla tego powinno się stringi okalać apostrofami zawsze trochę szybciej się parsuje. Tak przynajmniej wywnioskowałem jeżeli się mylę to niech mnie ktoś poprawi smile.gif

Ten post edytował bmL 16.06.2008, 19:32:06


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
marcio
post 16.06.2008, 19:27:55
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


  1. <?php
  2. $show= htmlspecialchars("SELECT subject,date,author,JAKIES_POLE_ID FROM news
  3. WHERE author='".$_SESSION['admin']."'");
  4. ?>

Co to za wybryk natury??


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
bmL
post 16.06.2008, 19:39:11
Post #4





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Takie zapytanie jak najbardziej powinno zadziałać nie rozumiem o co Ci chodzi chociaż jeżeli bijesz to ten kawałek: '".$_SESSION['admin']."' to napisałem o tym niżej.


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
marcio
post 16.06.2008, 19:41:31
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Nie chodzi mi tylko o $_SESSION['admin'] ale od kiedy daje sie htmlspecialchars() zapytanie??


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
bmL
post 16.06.2008, 19:45:53
Post #6





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Hmm faktycznie smile.gif niepotrzebne to zupełnie.

Ten post edytował bmL 16.06.2008, 19:47:06


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
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: 5.07.2025 - 23:15