Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [MySQL][PHP] Usuwanie pojedyńczych komentarzy przyciskiem
Th0e
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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



Witam! Chciałbym by na mojej stronce każdy komentarz dało się usunąć jednym przyciskiem. Długo się nad tym męczę i tak wygląda aktualny kod:

  1. $ajdi = 21; //ustawilem tyle bo pierwszy komentarz ma id 22
  2. $zapytanie = mysql_query("SELECT * FROM `komy` WHERE `typ`='$typ' ORDER BY `id` ASC");
  3. echo"<table class='duza'>";
  4. while($r = mysql_fetch_array($zapytanie)){
  5. echo '<tr><td align="center" valign="top" width="15%"><strong><font color="'. $r['kolor'] .'">'. $r['piszacy1'] .'</strong></font> <br /><img src="'. $r['avatar'] .'"></td><td align="left" valign="top">'. $r['kom1'] .' <br /><form method="POST">
  6. <input type="hidden" name="delete" value="'. $ajdi++ .'"/>
  7. <input type="submit" value="usuń" />
  8. </form></td></tr>';
  9.  
  10. }
  11. echo'</table>';
  12.  
  13. echo "$ajdi";
  14. //usuwanie komentarza
  15.  
  16. $usunieto ='post deleted';
  17. if(!empty($_POST['delete'])){
  18. mysql_query("update komy set kom1= '$usunieto' WHERE `id`='$ajdi'")or die(mysql_error());
  19. header("Location: 1.php?co=usunieto");
  20. }


tym sposobem przy każdym poście będzie przycisk do usunięcia, jednak gdy klikniemy jakikolwiek, to i tak usunie nam najnowszy komentarz (który ma największe id) ponieważ co wykonanie pętli id się zwiększa o 1. Naprawdę nie wiem jak to zrobić. Pomóżcie. Pozdrawiam.
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Zamiast $ajdi++ daj $r['id'].
`id`='$ajdi' zmień na mysql_real_escape_string($_POST['delete']);
Go to the top of the page
+Quote Post
Th0e
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


Cytat(Spawnm @ 1.02.2013, 16:46:09 ) *
Zamiast $ajdi++ daj $r['id'].
`id`='$ajdi' zmień na mysql_real_escape_string($_POST['delete']);



zrobiłem tak jak chiałeś i wyskoczyło:

  1. Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/sites/t/te/tes/test1997.za.pl/1.php on line 102


a oto aktualny kod:

  1. $zapytanie = mysql_query("SELECT * FROM `komy` WHERE `typ`='$typ' ORDER BY `id` ASC");
  2. echo"<table class='duza'>";
  3. while($r = mysql_fetch_array($zapytanie)){
  4. echo '<tr><td align="center" valign="top" width="15%"><strong><font color="'. $r['kolor'] .'">'. $r['piszacy1'] .'</strong></font> <br /><img src="'. $r['avatar'] .'"></td><td align="left" valign="top">'. $r['kom1'] .' <br /><form method="POST">
  5. <input type="hidden" name="delete" value="'. $r['id'] .'"/>
  6. <input type="submit" value="usuń" />
  7. </form></td></tr>';
  8.  
  9. }
  10. echo'</table>';
  11.  
  12. echo "$ajdi";
  13. //usuwanie komentarza
  14.  
  15. $usunieto ='post deleted';
  16. if(!empty($_POST['delete'])){
  17. mysql_query("update komy set kom1= '$usunieto' WHERE mysql_real_escape_string($_POST['delete'])")or die(mysql_error());
  18. header("Location: 1.php?co=usunieto");
  19. }


102 linijka to:

  1. mysql_query("update komy set kom1= '$usunieto' WHERE mysql_real_escape_string($_POST['delete'])")or die(mysql_error());
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




mysql_real_escape_string
Go to the top of the page
+Quote Post
Th0e
post
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


Cytat(Spawnm @ 1.02.2013, 18:37:47 ) *


czytałem to. nawet jak podam to po przecinku to i tak do zapytania nie mogę dać r['id'] bo będą się '' powtarzać.
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Poczytaj sobie przykład
  1. $query = sprintf("SELECT firstname, lastname, address, age FROM friends
  2. WHERE firstname='%s' AND lastname='%s'",

bo w tym momencie dowolnie wkłądasz kod PHP do zapytania niepoprawnie łącząc ciągi. I oprócz tego że tam kropek brakuje to jeszcze jest jakiś nawias. Wpisz to w edytorze z kolorowaniem składni.


--------------------
Go to the top of the page
+Quote Post
Th0e
post
Post #7





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


może mi ktoś zrobić gotowiec?
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Nie dajemy gotowców, zamykam.
Jeśli nie potrafisz sobie poradzić z użyciem funkcji,
to lepiej zleć to komuś w odpowiednim dziale za odpowiednie pieniądze.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:47