Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] usuwanie wpisów z MYSQL
Forum PHP.pl > Forum > Przedszkole
GranDi88
Witam,

jestem nowy na forum i szczerze nie za wiele poświęciłem na przyswojenie się. Wynika to jednak z małej ilości czasu a dużej potrzeby.

Nie będę za dużo się rozpisywał - na początek pokaże kod z którym ma problem.

  1. <?php
  2.  
  3. $dodaj = $_POST['dodaj'];
  4. $szukaj = $_POST['szukaj'];
  5.  
  6. if($szukaj == "szukaj")
  7. {
  8. //połączenie z bazą danych
  9. $polacz = mysql_connect ("localhost", "login", "haslo")
  10. or die("BŁĄD: nie można się połączyć z serverem MySQL");
  11.  
  12. mysql_select_db("baza danych")
  13. or die("Nie można wybrać danej bazy danych");
  14.  
  15. if($usun == "[usuń]")
  16. {
  17. //wykonanie zapytania usunięcia wpisu z bazy danych
  18. $zapytanie = ("DELETE FROM proba WHERE id = '$id' ");
  19.  
  20. $wykonaj = mysql_query($zapytanie)
  21. or die("Nie można usunąć rekordu");
  22.  
  23. //komunikat
  24. $komunikaty = "<p class='info_text'>wpis został usunięty z bazy</p>";
  25. }
  26. else
  27. {
  28. //wykonanie zapytania wyszukania
  29. $szukaj = ("SELECT * FROM proba WHERE firma LIKE '%$firma%' && imie LIKE '%$nazwisko%' && email LIKE '%$email%' && telefon LIKE '%$telefon%' && www LIKE '%$www%' && stanowisko LIKE '%$stanowisko%' && opis LIKE '%$opis%' && adres LIKE '%$adres%' ORDER BY id DESC");
  30.  
  31. $wykonaj = mysql_query($szukaj)
  32. or die("Wykonanie zapytania jest nie możliwe");
  33.  
  34. //wyświetlenie wyników
  35. while ($row = mysql_fetch_array($wykonaj))
  36. {
  37. $firma = $row[0];
  38. $nazwisko = $row[1];
  39. $email = $row[2];
  40. $telefon = $row[3];
  41. $www = $row[4];
  42. $stanowisko = $row[5];
  43. $opis = $row[6];
  44. $adres = $row[7];
  45.  
  46. ("
  47. <table width='100%' border='0' cellpadding='0' cellspacing='0'>
  48. <tr>
  49. <td width='21'>&nbsp;</td>
  50. <td width='300'>&nbsp;</td>
  51. <td width='300'>&nbsp;</td>
  52. <td width='300'>&nbsp;</td>
  53. <td width='21'>&nbsp;</td>
  54. </tr>
  55. <tr>
  56. <td width='21'>&nbsp;</td>
  57. <td width='300'><p class='podpisy_pol2'>nazwa firmy</p></td>
  58. <td width='300'><p class='podpisy_pol2'>imie i nazwisko</p></td>
  59. <td width='300'><p class='podpisy_pol2'>logo firmy</p></td>
  60. <td width='21'>&nbsp;</td>
  61. </tr>
  62. <tr>
  63. <td width='21'>&nbsp;</td>
  64. <td width='300' align='left' valign='middle'><p class='podpisy_pol2'><b>$row[0]</b></p></td>
  65. <td width='300' align='left' valign='middle'><p class='podpisy_pol2'><b>$row[1]</b></p></td>
  66. <td width='300' rowspan='4'></td>
  67. <td width='21' rowspan='4'></td>
  68. </tr>
  69. <tr>
  70. <td width='21'></td>
  71. <td width='300'><p class='podpisy_pol2'>adres email</p></td>
  72. <td width='300'><p class='podpisy_pol2'>telefon kontaktowy</p></td>
  73. </tr>
  74. <tr>
  75. <td width='21'></td>
  76. <td width='300' align='left' valign='middle'><p class='podpisy_pol2'><b><a href='mailto:$row[2]'>$row[2]</a></b></p></td>
  77. <td width='300' align='left' valign='middle'><p class='podpisy_pol2'><b>$row[3]</b></p></td>
  78. </tr>
  79. <tr>
  80. <td width='21'></td>
  81. <td width='300'><p class='podpisy_pol2'>adres strony www</p></td>
  82. <td width='300'><p class='podpisy_pol2'>stanowisko</p></td>
  83. </tr>
  84. <tr>
  85. <td width='21'></td>
  86. <td width='300' align='left' valign='middle'><p class='podpisy_pol2'><b><a href='http://$row[4]'>$row[4]</a></b></p></td>
  87. <td width='300' align='left' valign='middle'><p class='podpisy_pol2'><b>$row[5]</b></p></td>
  88. <td width='300'></td>
  89. <td width='21'></td>
  90. </tr>
  91. <tr>
  92. <td width='21'></td>
  93. <td width='300'><p class='podpisy_pol2'>opis firmy</p></td>
  94. <td width='300'></td>
  95. <td width='300'><p class='podpisy_pol2'>adres siedziby firmy</p></td>
  96. <td width='21'></td>
  97. </tr>
  98. <tr>
  99. <td width='21'></td>
  100. <td colspan='2' align='left' valign='top'><p class='podpisy_pol2'><b>$row[6]</b></p></td>
  101. <td width='300' align='left' valign='top'><p class='podpisy_pol2'><b>$row[7]</b></p>
  102. <br /></td>
  103. <td width='21'></td>
  104. </tr>
  105. <tr>
  106. <td width='21'></td>
  107. <td colspan='2' align='left' valign='top'>
  108. <form method='post'>
  109. <input type='hidden' name='iddd' value='$row[8]'>
  110. <input type='hidden' name='szukaj' value='szukaj'>
  111. <input name='usun' type='submit' class='knefel' value='[usuń]' />
  112. </form>
  113. </td>
  114. <td width='300' align='left' valign='top'></td>
  115. <td width='21'></td>
  116. </tr>
  117. </table>
  118. ");
  119. }
  120.  
  121. //komunikat
  122. $komunikaty = "<p class='info_text'>wyniki wyszukiwania znajdują się poniżej</p>";
  123. }
  124. //zamknięcie bazy danych
  125. mysql_free_result($wykonaj);
  126. mysql_close($polacz);
  127. }
  128. else if($dodaj == "dodaj")
  129. {
  130. $firma = $_POST['firma'];
  131. $nazwisko = $_POST['nazwisko'];
  132. $email = $_POST['email'];
  133. $telefon = $_POST['telefon'];
  134. $www = $_POST['www'];
  135. $stanowisko = $_POST['stanowisko'];
  136. $opis = $_POST['opis'];
  137. $adres = $_POST['adres'];
  138.  
  139. //połączenie z bazą danych
  140. $polacz = mysql_connect ("localhost", "login", "haslo")
  141. or die("BŁĄD: nie można się połączyć z serverem MySQL");
  142.  
  143. mysql_select_db("baza danych")
  144. or die("Nie można wybrać danej bazy danych");
  145.  
  146. //wykonanie zapytania dodania do bazy
  147. $zapytanie = ("INSERT INTO proba SET firma='$firma', imie='$nazwisko', email='$email', telefon='$telefon', www='$www', stanowisko='$stanowisko', opis='$opis', adres='$adres'");
  148.  
  149. $wykonaj = mysql_query($zapytanie)
  150. or die("Nie można dodać rekordu");
  151.  
  152. //zamknięcie bazy danych
  153. mysql_close($polacz);
  154.  
  155. //komunikat
  156. $komunikaty = "<p class='info_text'>wpis został dodany do bazy</p>";
  157. }
  158. else
  159. {
  160. //informacja o tym jak wyszukać
  161. echo ("jak szukać<br>");
  162. //informacja o tym jak dodać
  163. echo ("jak dodać");
  164. }
  165. ?>


Cały problem polega na tym, że po wciśnięciu przycisku "[usuń]" nie usuwa się nic i jak mniemam jest to spowodowane tym, iż nie jest przekazana informacja, które id ma być usunięte. Są to jednak tylko moje domysły. Pytanie do specjalistów: jak przekazać do zapytania odpowiednie id wpisu? Chodzi o to żeby usunięty był tylko ten wpis, pod któ®ym kliknięty został guzik "[usuń]"

Ok, problem znalazłem.
Zamieniłem:
  1. //wykonanie zapytania usunięcia wpisu z bazy danych
  2. $zapytanie = ("DELETE FROM klienci WHERE id = '$id'");

na
  1. $ktory = $_POST['id'];
  2.  
  3. //wykonanie zapytania usunięcia wpisu z bazy danych
  4. $zapytanie = ("DELETE FROM klienci WHERE id = '$ktory'");


no i oczywiście dodałem na samej górze
  1. $usun = $_POST['usun'];


Teraz mam inny problem. Co w stosunku do mojego kodu oznacza taki błąd:

"Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /baza danych/klienci.php on line 411" (411 to 'mysql_free_result($wykonaj);')
CuteOne
Jeżeli zapytanie zwróciło pusty wynik to mysql nie ma co zwalniać poza tym przy małej ilości danych mysql_free_result(), może pochłonąć więcej pamięci niż jej zwolnić tongue.gif
GranDi88
Czyli najprościej rzecz ujmując 'zdilejtować'?
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.