Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Usuwanie pojedyńczych komentarzy przyciskiem
Forum PHP.pl > Forum > Przedszkole
Th0e

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.
Spawnm
Zamiast $ajdi++ daj $r['id'].
`id`='$ajdi' zmień na mysql_real_escape_string($_POST['delete']);
Th0e
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());
Spawnm
mysql_real_escape_string
Th0e
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ć.
viking
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.
Th0e
może mi ktoś zrobić gotowiec?
Spawnm
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.
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.