Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Usuwanie wątków na forum w PHP, Nie działa usuwanie postów
mozart2008
post 18.06.2010, 15:17:47
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

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


Witam.

Zrobiłem sobie niedawno skrypt na proste forum , o to on:


  1. <center>FORUM - TUTORIALE</center>
  2.  
  3. <?php
  4.  
  5. @mysql_connect('tajne','tajne','tajne')
  6. or die('Nieudane połączenie');
  7. @mysql_select_db('tajne')
  8. or die('Nieudane wybranie bazy');
  9. if(isset($_SESSION['zalogowany'])) {
  10. ?>
  11.  
  12. <div id="naglowek1">
  13. <br/>
  14. <b>OPCJE:</b>
  15. <br/><br/>
  16. </div>
  17.  
  18. <hr/>
  19. <form method='POST' action='index.php?url=tutoriale'>
  20. <input type="submit" name="odswiez" class="wyslij" value="Odśwież/Powrót" />
  21. <input type="submit" name="nowy_watek" class="wyslij" value="Nowy wątek" />
  22. </form>
  23. <hr/>
  24. <br/>
  25. <center>
  26. <div id="naglowek1">
  27. <br/>
  28. <b>WSZYSTKIE POSTY:</b>
  29. </div>
  30. </center>
  31.  
  32.  
  33. <?php
  34. if (isset($_POST['odswiez'])) {
  35. header ('Location:index.php?url=tutoriale') ;
  36. }
  37. if (isset($_POST['nowy_watek'])) {
  38. header ('Location:index.php?url=nowywatek') ;
  39. }
  40. ?>
  41. <hr/>
  42.  
  43. <div style="width: 1000px; height: 700px; overflow: scroll;">
  44. <?php
  45.  
  46.  
  47. function wypiszforum ($nr) {
  48.  
  49. global $fref; global $fdata; global $fosoba; global $ftytul;
  50.  
  51. $str = '';
  52. for ($i=count($fref); $i>=1; $i--) {
  53. if ($fref[$i] == $nr) {
  54. $str .= "<li><a href=\"http://alteringphotos.cba.pl/index.php?url=tutoriale&nr=$i\">$ftytul[$i]</a>, ".
  55. "<i>$fosoba[$i], $fdata[$i]</i>\n";
  56. $str .= wypiszforum ($i);
  57. $str .= "</li>";
  58. }
  59. }
  60. if($str != '')
  61. return "<ul>$str</ul>";
  62. else
  63. return $str;
  64. }
  65.  
  66.  
  67. if (isset($_POST['usunwatek'])) {
  68. $dwazapytanie = "DELETE FROM forumdyskusyjne WHERE nr=$nr ";
  69. $iddwazapytanie = mysql_query($dwazapytanie);
  70. }
  71.  
  72.  
  73. if(isSet($_GET['nr'])) $nr = $_GET['nr'];
  74. else $nr = '';
  75. if ($nr>0) {
  76. $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
  77. "FROM forumdyskusyjne WHERE nr=$nr");
  78. if ($rekord = mysql_fetch_array ($wynik)) {
  79. $tresc = $rekord[2]; $tytul = $rekord[1];
  80. print "<h3>$rekord[1]</h3>";
  81. print "<p>wysłany przez <b>$rekord[0]</b>, <b>$rekord[3]</b>:";
  82. print "</p><p>$rekord[2]</p><hr />";
  83. print "<a href=\"http://alteringphotos.cba.pl/pliki/dodajwatek.php?ref=$nr\">Wylij odpowiedź
  84. </a><hr />";
  85.  
  86.  
  87. ?>
  88. <form method='POST' action='?url=tutoriale'>
  89. <input type="submit" name="usunwatek" class="wyslij" value="Usuń post" onclick="if (!confirm('Czy na pewno chcesz usunąć swojego posta?')) return false"/>
  90. </form>
  91. <?php
  92. } else { $nr = 0; }
  93. } else { $nr = 0; }
  94.  
  95.  
  96. $wynik = mysql_query ("SELECT nr, osoba, tytul, data, ref ".
  97. "FROM forumdyskusyjne");
  98. while ($rekord = mysql_fetch_array ($wynik)) {
  99. $fref[$rekord[0]] = $rekord[4];
  100. $fdata[$rekord[0]] = $rekord[3];
  101. $ftytul[$rekord[0]] = $rekord[2];
  102. $fosoba[$rekord[0]] = $rekord[1];
  103. }
  104.  
  105.  
  106.  
  107. print wypiszforum ($nr);
  108.  
  109. ?>
  110. </div>
  111.  
  112.  
  113.  
  114.  
  115. <?php
  116. }else{
  117. ?>
  118. <br/><br/><br/>
  119. <center>
  120. Musisz być zalogowany aby oglądać tę stronę!!
  121. </center>
  122. <br/><br/><br/><br/><br/>
  123. <br/><br/><br/><br/><br/>
  124. <?php
  125. }
  126. ?>
  127. <br/>



Wszystko ładnie działa:
lista jest,jak się kliknie dany wątek się wyświetla ale:


1.Nie działa mi kasowanie wątku na którym się jest.
Gdzie jest błąd?

2.Oraz jeżeli napiszę obojętnie co po tym kodzie na wyświetlanie listy wątków, no to ten napis jest hiperłączem.



PYTANIA:


Jak zamknąć wyświetlanie listy że pod listą będzie można normalnie wyświetlić tekst który jest zwykłym tekstem a nie hiperłączem??

Jak zrobić usuwanie wątku który aktualnie oglądamy?



Z góry wielkie dzięki za pomoc. biggrin.gif smile.gif sad.gif
Go to the top of the page
+Quote Post
patryczakowy
post 18.06.2010, 16:43:48
Post #2





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


Masz tak
  1. if (isset($_POST['usunwatek'])) {
  2. $dwazapytanie = "DELETE FROM forumdyskusyjne WHERE nr=$nr ";
  3. $iddwazapytanie = mysql_query($dwazapytanie);
  4. }

A w formularzu do wysyłania nie przekazujesz zmiennej z numerem wątku musisz dodać ją do parametrów


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
mozart2008
post 18.06.2010, 17:35:53
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

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


Zrobiłem tak i tez nie działa.;(

  1. <form method='POST' action='?url=tutoriale$nr=$nr'>
  2. <input type="submit" name="usunwatek" class="wyslij" value="Usuń post" onclick="if (!confirm('Czy na pewno chcesz usunąć swojego posta?')) return false"/>
  3. </form>
Go to the top of the page
+Quote Post
patryczakowy
post 18.06.2010, 18:20:02
Post #4





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


Jak już to tak
  1. <form method='POST' action='?url=tutoriale&nr=<?php echo $nr; ?>'>


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
mozart2008
post 18.06.2010, 18:57:40
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

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


Nie działa...sad.gif


  1. if(isSet($_GET['nr'])) $nr = $_GET['nr'];
  2. else $nr = '';
  3. if ($nr>0) {
  4. $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
  5. "FROM forumdyskusyjne WHERE nr=$nr");
  6. if ($rekord = mysql_fetch_array ($wynik)) {
  7. $tresc = $rekord[2]; $tytul = $rekord[1];
  8. echo ("<h3>$rekord[1]</h3>");
  9. echo ("<p>wysłany przez <b>$rekord[0]</b>, <b>$rekord[3]</b>:");
  10. echo emotki("</p><p>$rekord[2]</p><hr />");
  11. echo ("<a href=\"http://alteringphotos.cba.pl/index.php?url=nowywatek&ref=$nr\">Wylij odpowiedź
  12. </a><hr />");
  13. if (isset($_POST['usunwatek'])) {
  14. $zapytanie = "DELETE FROM `forumdyskusyjne` WHERE `nr` ='$nr' ";
  15. $idzapytania = mysql_query($zapytanie);
  16. }
  17.  
  18.  
  19. ?>
    1. <form method='POST' action='?url=tutoriale&nr=<span class="kw2"><?php</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$nr</span><span class="sy0">;</span> <span class="sy1">?></span>'></div></li><li class="li1"><div class="de1"><input type="submit" name="usunwatek" class="wyslij" value="Usuń post" onclick="if (!confirm('Czy na pewno chcesz usunąć swojego posta?')) return false"/></div></li><li class="li2"><div class="de2"></form></div></li><li class="li1"><div class="de1">
    <?php
  20. } else { $nr = 0; }
  21. } else { $nr = 0; }

Go to the top of the page
+Quote Post
patryczakowy
post 18.06.2010, 19:17:19
Post #6





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


daj sobie
  1. echo $dwazapytanie ;

i zobacz co ci pokazuje;


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
mozart2008
post 18.06.2010, 19:25:33
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

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


Poco $dwazapytanie??

Przecież nigdzie nie mam takiej zmiennej teraz mam taki kod i tez nie działa:


  1. if (isset($_POST['usunwatek'])) {
  2.  
  3. $zapytanie = "DELETE FROM `forumdyskusyjne` WHERE `nr` ='$nr' ";
  4.  
  5. $idzapytania = mysql_query($zapytanie);
  6.  
  7. }
  8.  
  9.  
  10.  
  11.  
  12.  
  13. ?>
  14.  
  15.  
  16. [HTML]
  17.  
  18.  
  19. <form method='POST' action='?url=tutoriale&nr=<span class="kw2"><?php</span> <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$nr</span><span class="sy0">;</span> <span class="sy1">?></span>'></div></li><li class="li1"><div class="de1"><input type="submit" name="usunwatek" class="wyslij" value="Usuń post" onclick="if (!confirm('Czy na pewno chcesz usunąć swojego posta?')) return false"/></div></li><li class="li2"><div class="de2"></form></div></li><li class="li1"><div class="de1">
  20.  
  21. [HTML]
  22.  
  23. <?php



jak zrobie:

echo ($nr) ;

i jeżeli jestem na jakimś poście noto wyśiwetla mi poprawny numer.

Ale czemu nie kasuje??

Może być tez tak że dlatego że właśnie oglądał to??
Go to the top of the page
+Quote Post
patryczakowy
post 18.06.2010, 19:35:12
Post #8





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


  1. if (isset($_POST['usunwatek'])) {
  2.  
  3. $zapytanie = "DELETE FROM `forumdyskusyjne` WHERE `nr` ='$nr' ";
  4. echo $zapytanie;
  5. $idzapytania = mysql_query($zapytanie);
  6. if (mysql_errno())
  7. echo "MySQL error ".mysql_errno().": ".mysql_error();
  8.  
  9. }

daj tak i powiedz co ci wyświetla

Ten post edytował patryczakowy 18.06.2010, 19:36:04


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
krzysztof_kf
post 18.06.2010, 19:38:55
Post #9





Grupa: Zarejestrowani
Postów: 1 135
Pomógł: 158
Dołączył: 19.03.2009
Skąd: Toruń

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


Debugowałeś skrypt używasz notatnika czy edytora ?
Go to the top of the page
+Quote Post
mozart2008
post 18.06.2010, 19:41:35
Post #10





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

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


  1. DELETE FROM `forumdyskusyjne` WHERE `nr` ='35'




Edytora - odpowiedź na pytanie krzysztofa

Ten post edytował mozart2008 18.06.2010, 19:42:43
Go to the top of the page
+Quote Post
patryczakowy
post 18.06.2010, 19:45:49
Post #11





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


czyli zmienna numer istnieje tylko pewnie masz coś w zapytaniu skopane może nazwa kolumny ale ja stawiam na te apostrofy lub na konstrukcje bazy
  1. DELETE FROM forumdyskusyjne WHERE nr = '35'


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
mozart2008
post 18.06.2010, 19:55:52
Post #12





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

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


Teraz mam tak i nic.
  1. if (isset($_POST['usunwatek'])) {
  2.  
  3.  
  4.  
  5. $zapytanie = "DELETE FROM forumdyskusyjne WHERE nr = '$nr' ";
  6.  
  7. $idzapytania = mysql_query($zapytanie);
  8.  
  9. if (mysql_errno())
  10.  
  11. echo "MySQL error ".mysql_errno().": ".mysql_error();
  12.  
  13.  
  14.  
  15. }


Działa;P
Go to the top of the page
+Quote Post
patryczakowy
post 18.06.2010, 19:59:04
Post #13





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


to działa czy nie?


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
mozart2008
post 18.06.2010, 20:12:36
Post #14





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 6.05.2010

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


Działa tylko jest jeszcze jeden problem.... zostaje takie coś:

, ,




Porpostu z bazy zostaje usuniętę ale na liście są 2 przecinki.


Czyli np:

pRZED USUNIĘCIEM:

Tytułwinksmiley.jpg , Patryk winksmiley.jpg, 2010-06-18 17:38:55

pO USUNIĘCIU

, ,





Ale z bazy danych usuwa..

czyli jak mam usunąć te 2 przecinki??



Kod do wczytywania listy wątków:


  1. <center>FORUM - TUTORIALE</center>
  2.  
  3. <?php
  4.  
  5. @mysql_connect('tajne','tajne','tajne')
  6. or die('Nieudane połączenie');
  7. @mysql_select_db('tajne')
  8. or die('Nieudane wybranie bazy');
  9. if(isset($_SESSION['zalogowany'])) {
  10. ?>
  11.  
  12. <div id="naglowek1">
  13. <br/>
  14. <b>OPCJE:</b>
  15. <br/><br/>
  16. </div>
  17.  
  18. <hr/>
  19. <form method='POST' action='index.php?url=tutoriale'>
  20. <input type="submit" name="odswiez" class="wyslij" value="Odśwież/Powrót" />
  21. <input type="submit" name="nowy_watek" class="wyslij" value="Nowy wątek" />
  22. </form>
  23. <hr/>
  24. <br/>
  25. <center>
  26. <div id="naglowek1">
  27. <br/>
  28. <b>WSZYSTKIE POSTY:</b>
  29. </div>
  30. </center>
  31.  
  32.  
  33. <?php
  34. if (isset($_POST['odswiez'])) {
  35. header ('Location:index.php?url=tutoriale') ;
  36. }
  37. if (isset($_POST['nowy_watek'])) {
  38. header ('Location:index.php?url=nowywatek') ;
  39. }
  40. ?>
  41. <hr/>
  42.  
  43. <div style="width: 1000px; height: 700px; overflow: scroll;">
  44. <?php
  45.  
  46.  
  47. function wypiszforum ($nr) {
  48.  
  49. global $fref; global $fdata; global $fosoba; global $ftytul;
  50.  
  51. $str = '';
  52. for ($i=count($fref); $i>=1; $i--) {
  53. if ($fref[$i] == $nr) {
  54. $str .= "<li><a href=\"http://alteringphotos.cba.pl/index.php?url=tutoriale&nr=$i\">$ftytul[$i]</a>, ".
  55. "<i>$fosoba[$i], $fdata[$i]</i>\n";
  56. $str .= wypiszforum ($i);
  57. $str .= "</li>";
  58. }
  59. }
  60. if($str != '')
  61. return "<ul>$str</ul>";
  62. else
  63. return $str;
  64. }
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. if(isSet($_GET['nr'])) $nr = $_GET['nr'];
  74. else $nr = '';
  75. if ($nr>0) {
  76. $wynik = mysql_query ("SELECT osoba, tytul, tresc, data ".
  77. "FROM forumdyskusyjne WHERE nr=$nr");
  78. if ($rekord = mysql_fetch_array ($wynik)) {
  79. $tresc = $rekord[2]; $tytul = $rekord[1];
  80. echo ("<h3>$rekord[1]</h3>");
  81. echo ("<p>wysłany przez <b>$rekord[0]</b>, <b>$rekord[3]</b>:");
  82. echo emotki("</p><p>$rekord[2]</p><hr />");
  83. echo ("<a href=\"http://alteringphotos.cba.pl/index.php?url=nowywatek&ref=$nr\">Wylij odpowiedź
  84. </a><hr />");
  85.  
  86.  
  87.  
  88. if (isset($_POST['usunwatek'])) {
  89.  
  90.  
  91.  
  92. $zapytanie = "DELETE FROM forumdyskusyjne WHERE nr = '$nr' ";
  93.  
  94. $idzapytania = mysql_query($zapytanie);
  95.  
  96. if (mysql_errno())
  97.  
  98. echo "MySQL error ".mysql_errno().": ".mysql_error();
  99.  
  100. ?>
  101. <script type="text/javascript">
  102. alert ("Usunąłeś swojego posta!") ;
  103. window.location ="http://www.alteringphotos.cba.pl/index.php?url=tutoriale";
  104. </script>
  105.  
  106. <?php
  107.  
  108.  
  109.  
  110. }
  111.  
  112.  
  113.  
  114. ?>
  115. <form method='POST' action='?url=tutoriale&nr=<?php echo $nr; ?>'>
  116. <input type="submit" name="usunwatek" class="wyslij" value="Usuń post" onclick="if (!confirm('Czy na pewno chcesz usunąć swojego posta?')) return false"/>
  117. </form>
  118. <?php
  119. } else { $nr = 0; }
  120. } else { $nr = 0; }
  121.  
  122.  
  123. $wynik = mysql_query ("SELECT nr, osoba, tytul, data, ref ".
  124. "FROM forumdyskusyjne");
  125. while ($rekord = mysql_fetch_array ($wynik)) {
  126. $fref[$rekord[0]] = $rekord[4];
  127. $fdata[$rekord[0]] = $rekord[3];
  128. $ftytul[$rekord[0]] = $rekord[2];
  129. $fosoba[$rekord[0]] = $rekord[1];
  130. }
  131.  
  132.  
  133.  
  134. print wypiszforum ($nr);
  135.  
  136. ?>
  137. </div>
  138.  
  139.  
  140.  
  141.  
  142. <?php
  143. }else{
  144. ?>
  145. <br/><br/><br/>
  146. <center>
  147. Musisz być zalogowany aby oglądać tę stronę!!
  148. </center>
  149. <br/><br/><br/><br/><br/>
  150. <br/><br/><br/><br/><br/>
  151. <?php
  152. }
  153. ?>
  154. <br/>
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: 30.06.2025 - 10:51