Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][MySQL][PHP]Usuwanie rekordów z potwierdzeniem decycji
Forum PHP.pl > Forum > Przedszkole
Lucky Luke
Witam. Kończę robić swój własny skrypt ogłoszeń, stanąłem na etapie usuwania rekordów. Mianowicie mam stronę w której podaję nr id ogłoszenia i hasło do ogłoszenia, po podaniu hasła przechodzi do następnej strony w której prosi o ostatnią decyczję czy usunąć i tutaj mam problem.

1. Formatka w której prosi o decyzję czy usunąć:
  1. <?
  2. require("config.php");
  3. include("conf/config_main_options.php");
  4. include("conf/config_cat.php");
  5. include("ads_add_form.php");
  6. include("db_connect.php");
  7. connect_to_db();
  8. $idnum=$row['idnum'];
  9. $id_get=$_GET['idnum'];
  10. $id_get = mysql_escape_string($id_get);
  11. $zap = mysql_query("SELECT * FROM baza WHERE idnum Like '%".$_POST['delete_id']."%'");
  12. while($rek = mysql_fetch_array($zap)) {
  13.  
  14. $idnum = $rek[0];
  15. $title = $rek[11];
  16. $passw = $rek[23];
  17. }
  18. echo $html_header;
  19. echo '<div id="content">';
  20.  
  21. if($passw === $_POST['passw']){
  22. <form action="delete_ads.php" method="post" name="edycja">
  23. <input type="hidden" name="idnum" value="'.$idnum.'">
  24. <TABLE BORDER=0 WIDTH=750 bgcolor=#FFFFFF cellspacing=1 cellpadding=1>
  25. <tr>
  26. <td colspan=2 width=700 bgcolor=#EBEBEB><center>
  27. <font FACE=ARIAL COLOR=990033 size=3><b>Uwaga!</b></font><br>
  28. <font FACE=ARIAL COLOR=000000 size=2>To jest ostatni etap usuwania ogłoszenia.<br>
  29. Jesteś pewny, że chcesz usunąć ogłoszenie: <font FACE=ARIAL COLOR=990033 size=2><b>'.$title.'</b></font> które ma ID: <font FACE=ARIAL COLOR=990033 size=2><b>#'.$idnum.'</b> </font>?
  30. </font><br><br>
  31. <p align="center">
  32. <input type="submit" value="Tak!" class=formst STYLE="FONT-WEIGHT: bold; width: 150px;">
  33. <input type="button" name="backButton" id="backButton" value="Nie" onclick="java script:history.go(-2)" class=formst STYLE="FONT-WEIGHT: bold; width: 150px;"></p><br>
  34. </form>
  35. </center>
  36. </td>
  37. </tr>
  38. </table>
  39. ';
  40. }else
  41. <br>
  42. <font FACE="ARIAL" COLOR="#c90000" size="3"><b>Podałeś złe hasło</b></font><br>
  43. <font FACE="ARIAL" COLOR="#000000" size="2">Kliknij <a href="java script:history.back()"><b> wstecz </b></a> i podaj poprawne hasło dla ogłoszenia.</font><br>
  44. <font FACE="ARIAL" COLOR="#c90000" size="1"><b>Jesli napotkales jakies problemy prosimy o <a href="contact.php"> kontakt</a> z administratorem.</b></font><br>
  45. ';
  46. echo '</div>';
  47. echo $html_footer;
  48. ?>


2. Formatka wykonująca kod usunięcia rekordu z podanym id
  1. <?
  2. include("conf/config_main_options.php");
  3. $id = $_POST['idnum'];
  4. $base = @mysql_connect("$host_name","$db_user","$db_password")
  5. or die('Brak polaczenia z MySQL');
  6. $db = @mysql_select_db("$db_name", $base)
  7. or die('Nie moge polaczyc sie z baza');
  8.  
  9.  
  10. if($_POST['submit']) {
  11. $zap = @mysql_query("DELETE FROM baza WHERE idnum Like '%".$_POST['delete_id']."%'");
  12. if($zap)
  13. echo $html_header;
  14. <div id=content>
  15. <table width=750 bgcolor=#FFFFFF border=0 cellspacing=0 cellpadding=0>
  16. <TR>
  17. <td width=750>
  18. <center>
  19. <br>
  20. <p><b><font FACE=ARIAL COLOR=#aa0000 size=-1>
  21. <META HTTP-EQUIV='Refresh' CONTENT='3; URL=index.php'>
  22. Ogłoszenie usunięte. </font> </b>
  23. </center><p>
  24. </td></TR>
  25. </table> </div>
  26. ";
  27. echo $html_footer;
  28. mysql_close($base);
  29. }
  30. ?>


problem mam w tej formatce która kasuje ogłoszenie. Na pewno błąd jest tutaj:
  1. if($_POST['submit']) {
  2. $zap = @mysql_query("DELETE FROM baza WHERE idnum Like '%".$_POST['delete_id']."%'");
  3. if($zap)
  4. echo $html_header;
  5. <div id=content>
  6. <table width=750 bgcolor=#FFFFFF border=0 cellspacing=0 cellpadding=0>
  7. <TR>
  8. <td width=750>
  9. <center>
  10. <br>
  11. <p><b><font FACE=ARIAL COLOR=#aa0000 size=-1>
  12. <META HTTP-EQUIV='Refresh' CONTENT='3; URL=index.php'>
  13. Ogłoszenie usunięte. </font> </b>
  14. </center><p>
  15. </td></TR>
  16. </table> </div>
  17. ";
  18. echo $html_footer;
  19. mysql_close($base);
  20. }

chodzi mi o to, żeby po potwierdzeniu kliknięcia "tak" kasowało rekord i wyskoczyła informacja, że ogłoszenie usunięte dlatego dałem zapytanie if, nakierujcie mnie jak powinno wyglądać to zapytanie. Z góry wielkie dzięki.
Ulysess
Like w delete questionmark.gif coś nie za bardzo daj po prostu
  1. @mysql_query("DELETE FROM baza WHERE idnum ='".(int)$_POST['delete_id']."' LIKE 1");
gigzorr
  1. $zap = @mysql_query("DELETE FROM baza WHERE idnum Like '%".$_POST['delete_id']."%'");

nie tłum błedów(@) i pod tym zapytaniem daj
  1. print_r($zap);


i zobaczysz co jest nie tak.


delete tak samo jak i select moze miec "like".
Lucky Luke
Cytat(gigzorr @ 5.01.2011, 16:04:34 ) *
  1. $zap = @mysql_query("DELETE FROM baza WHERE idnum Like '%".$_POST['delete_id']."%'");

nie tłum błedów(@) i pod tym zapytaniem daj
  1. print_r($zap);


i zobaczysz co jest nie tak.


delete tak samo jak i select moze miec "like".


po dodaniu, jak i bez, wyświetla białą czystą stronę. Funkcja If która tutaj chce dodać ma sprawdzać czy wciśnięto button "tak" i wykonać dalsze polecenia w tym przypadku delete i wyświetlenie informacji o usunięciu a ja dałem if($_POST['submit']) ... i tutaj nie tkwi błąd?
daros17
a spróbuj tak
  1. if (isset($_POST['submit']))
  2. {
  3. //instrukcje
  4. }
Lucky Luke
Cytat(daros17 @ 5.01.2011, 16:47:14 ) *
a spróbuj tak
  1. if (isset($_POST['submit']))
  2. {
  3. //instrukcje
  4. }


  1. if (!isset($_POST['submit']))
  2. {
  3. //kod
  4. }

zabrakło Ci ! i to działa, tylko usunęło mi wszystkie rekordy, trzeba jeszcze zawęzić usuwanie do tego jednego rekordu
daros17
spróbuj tak
  1. $connection = mysql_query("DELETE FROM baza WHERE nazwa_kolumny='".$_POST['delete_id']."' LIMIT 1")or die (mysql_error());
  2.  
  3.  
Lucky Luke
Cytat(daros17 @ 5.01.2011, 17:30:31 ) *
spróbuj tak
  1. $connection = mysql_query("DELETE FROM baza WHERE nazwa_kolumny='".$_POST['delete_id']."' LIMIT 1")or die (mysql_error());
  2.  
  3.  


też nie działało, dopiero poszło w taki sposób:

  1. $zap = @mysql_query("DELETE FROM baza WHERE idnum Like '%".$_POST['delete_id']."%' LIMIT 1");


temat już rozwiązany smile.gif dzięki za pomoc
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.