Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z usunięciem rekordu
Forum PHP.pl > Forum > Przedszkole
szokmen
Witam,
za pomocą poniższego kodu chciałbym usunąć rekord jednak niestety robię coś nie tak :-( bo nie bardzo chce mi to działać. Prosiłbym dobrych ludzi o przejrzenie tego kodu i porady co robię nie tak.
  1. echo '<form action= "formularz.php" method="get">';
  2. echo '<input type ="hidden" name="wybor" value="szukaj">';
  3. echo '<input type= "text" name="napis">';
  4. echo '<input type= "submit" value="Szukaj imie">';
  5. echo '</form>';
  6.  
  7. echo '<div id="h3">';
  8. echo '<form action= "formularz.php" method="get">';
  9. echo '<input type ="hidden" name="wybor" value="DEL">';
  10. echo 'Id_klienta:<input type= "text" name="Id">';
  11. echo '<input type= "submit" value="Usun">';
  12. echo '</form>';
  13. echo '</div';
  14.  
  15.  
  16. if(isset($_POST["wybor"])== 'dodaj')
  17. {
  18. $imie1=$_POST['imie'];
  19. $nazwisko1=$_POST['nazwisko'];
  20. $nazwa1=$_POST['nazwa_firmy'];
  21. $telefon1=$_POST['telefon'];
  22.  
  23.  
  24. if($imie1 and $nazwisko1 and $nazwa1 and $telefon1)
  25. {
  26.  
  27. $ins =mysql_query("insert into Klienci set imie='$imie1', nazwisko='$nazwisko1', nazwa_firmy='$nazwa1',telefon='$telefon1'");
  28. if($ins) echo "Rekord został dodany poprawnie";
  29. else echo "Błąd nie udało się dodać nowego rekordu";
  30. }
  31. }
  32.  
  33. else if (isset($_GET["Id"]))
  34. {
  35. $zapytanie3="DELETE from klienci where id='$_GET[Id]'";
  36. if ($_GET["wybor"] == 'DEL')
  37. {
  38.  
  39. $del=mysql_query($zapytanie3);
  40. if($del) echo '<h5>rekord usuniety</5>';
  41. else echo '<h5>blad</h5>';
  42. }
  43. echo ("$_GET[Id]");
  44. echo ("$_GET[wybor]");
  45.  
  46. }

qasz
Nie wgłębiałem się w kod ale w jednym zapytaniu masz Klienci w drugim klienci, w mysql wielkość ma znaczenie.
tehaha
zmień 35 linijkę na:
  1. $zapytanie3="DELETE from klienci where id='".$_GET['Id']."'";


oraz zamiast 39 i 40 daj:
  1. if($del=mysql_query($zapytanie3) or die(mysql_error()) echo '<h5>rekord usuniety</5>';
szokmen
:-( ehhh tehaha zrobiłem jak proponowałeś i nic :-( proszę o jeszcze jakieś propozycje
qasz
A poprawiłeś wielkość liter?
szokmen
Z tego co wiem to wielkość liter w mysql nie ma znaczenia biggrin.gif co zresztą ma potwierdzenie w tym ze zmieniałem litery i w jednym i w drugim zapytaniu biggrin.gif
qasz
W nazwach tabel ma znaczenie.
szokmen
To odpal mysql i sprawdź sam u mnie zapytanie:
  1. SELECT *FROM klienci;

i
  1. SELECT *FROM Klienci;

działa tak samo biggrin.gif Tak wiec raczej nie w tym tkwi problem. Problem z moim kodem jest taki, że kiedy podaje mu id z bazy to ten zwraca mi napis "blad" z elsa, tak jakby to
  1. if($del) echo '<h5>rekord usuniety</5>';
zawsze było false. Ale nie wiem dlaczego tak się dzieje bo ten kawałek kodu:
  1. echo ("$_GET[Id]");
  2. echo ("$_GET[wybor]");

pokazuje że w zmiennych są poprawne wartości.
qasz
Na moich mysql : #1146 - Table 'baseq.Art' doesn't exist

Masz tutaj działające rozwiązanie :
  1. <?
  2. echo '<form action= "formularz.php" method="get">';
  3. echo '<input type ="hidden" name="wybor" value="szukaj">';
  4. echo '<input type= "text" name="napis">';
  5. echo '<input type= "submit" value="Szukaj imie">';
  6. echo '</form>';
  7.  
  8. echo '<div id="h3">';
  9. echo '<form action= "formularz.php" method="get">';
  10. echo '<input type ="hidden" name="wybor" value="DEL">';
  11. echo 'Id_klienta:<input type= "text" name="Id">';
  12. echo '<input type= "submit" value="Usun">';
  13. echo '</form>';
  14. echo '</div>';
  15.  
  16.  
  17. if(isset($_POST["wybor"])== 'dodaj')
  18. {
  19.  
  20. }
  21.  
  22. else if (isset($_GET["Id"]))
  23. {
  24. $zapytanie3="DELETE from Klienci where id=".$_GET['Id'];
  25. if ($_GET["wybor"] == 'DEL')
  26. {
  27.  
  28. $del = mysql_query($zapytanie3);
  29. if($del)
  30. {
  31. echo '<h5>rekord usuniety</h5>';
  32. }
  33. else
  34. {
  35. echo '<h5>blad</h5>';
  36. }
  37. }
  38. echo $_GET['id'];
  39. echo $_GET['wybor'];
  40.  
  41. }
  42.  
  43. ?>
  44.  
  45.  
szokmen
Niestety nie działa u mnie cały czas zwraca "blad" z elsa :-(
qasz
A mysql_error() co ci zwraca ?
szokmen
Tak wygląda strona po kliknięciu przycisku usuń.
Strona
nospor
rety.... przeciez w poprzednim poscie wyraźnie ci powiedzieli ze masz uzyc mysql_error...

Zanim napiszesz nastepny post zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie

szokmen
Przepraszam wczoraj było troszku późno i nie napisałem co się dzieję kiedy zastosuje taki kod:
  1. else if (isset($_GET["Id"]))
  2. {
  3. $zapytanie3="DELETE from Klienci where id=".$_GET['Id'];
  4. if ($_GET["wybor"] == 'DEL')
  5. {
  6.  
  7. if($del=mysql_query($zapytanie3) or die(mysql_error())) echo '<h5>rekord usuniety</5>';
  8. else
  9. {
  10. echo '<h5>blad</h5>';
  11. }
  12. }
  13. }
  14.  

a dzieje się to że jeszcze usuń nie kliknę a strona wygląda tak Strona2 a po wciśnięciu przycisku usuń nic się nie dzieję i strona nic nie robi.
nospor
ojejkuś.... przeciez masz podane jak masz to zalatwiac. A ty wklejasz jakies cuda nie widy

ciezko skopiowac kod:
  1. $sql = 'jakieś zapytanie';
  2. echo 'ZAPYTANIE:'.$sql;
  3. mysql_query($sql) or die('BŁĄD:'.mysql_error());

Bez osadzania calosci w jakies IFY? Parse errory dostajesz to i nic nie widzisz.
szokmen
Zrobiłem tak:
wkleiłem taki kod poza if-ami:
  1. $sql = "DELETE from Klienci where id=1;";
  2. echo 'ZAPYTANIE:'.$sql;
  3. mysql_query($sql) or die('BŁĄD:'.mysql_error());

i jak jest tak to strona wygląda jak Strona2 a jak dam:
  1. //mysql_query($sql) or die('BŁĄD:'.mysql_error());
jako komentarz to wtedy strona wygląda jak Strona1 tylko bez napisu "blad".
nospor
pokaz cały kod.

Musisz miec gdzies FATAL ERROR.
I włącz wyswietlanie wszystkich bledow. W linku co ci podałem masz o tym powiedziane
szokmen
Kod na pewno jest beznadziejny ale chciałbym zaznaczyć, że dopiero uczę się PHP :-)
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
  4. <title>Projekt bazy danych</title>
  5. <link rel="stylesheet" type="text/css" href="styl.css" />
  6. </head>
  7. <body>
  8. <div id="h2">
  9. <form action="formularz.php" method="post">
  10. <p align="right">
  11. <input type ="hidden" name="wybor" value="dodaj">
  12. <table>
  13. id klienta:<input type ="text" name="id"><br />
  14. imie:<input type ="text" name="imie"><br />
  15. nazwisko:<input type ="text" name="nazwisko"><br />
  16. nazwa firmy:<input type ="text" name="nazwa_firmy"><br />
  17. telefon:<input type ="text" name="telefon"><br />
  18. <input type ="submit" value="dodaj">
  19. </table>
  20. </p>
  21. </form>
  22. </div>
  23.  
  24.  
  25. <?php
  26. ini_set('display_errors','1');
  27.  
  28. mysql_connect("localhost", "xxxxx", "yyyyy") or die ("Nie można połączyć się z bazą");
  29. mysql_select_db ("firma") or die ("Nie można połączyć się z bazą firma");
  30. echo '<div id="h0">';
  31. echo '<form action= "formularz.php" method="get">';
  32. echo '<input type ="hidden" name="wybor" value="szukaj">';
  33. echo '<input type= "text" name="napis">';
  34. echo '<input type= "submit" value="Szukaj imie">';
  35. echo '</form>';
  36. echo '</div';
  37.  
  38. echo '<div id="h3">';
  39. echo '<form action= "formularz.php" method="get">';
  40. echo '<input type ="hidden" name="wybor" value="DEL">';
  41. echo 'Id_klienta:<input type= "text" name="Id">';
  42. echo '<input type= "submit" value="Usun">';
  43. echo '</form>';
  44. echo '</div';
  45.  
  46. $sql = "DELETE from Klienci where id=1;";
  47. echo 'ZAPYTANIE:'.$sql;
  48. mysql_query($sql) or die('BŁĄD:'.mysql_error());
  49.  
  50. if(isset($_POST["wybor"])== 'dodaj')
  51. {
  52. $imie1=$_POST['imie'];
  53. $nazwisko1=$_POST['nazwisko'];
  54. $nazwa1=$_POST['nazwa_firmy'];
  55. $telefon1=$_POST['telefon'];
  56.  
  57.  
  58. if($imie1 and $nazwisko1 and $nazwa1 and $telefon1)
  59. {
  60.  
  61. $ins =mysql_query("insert into klienci set imie='$imie1', nazwisko='$nazwisko1', nazwa_firmy='$nazwa1',telefon='$telefon1'");
  62. if($ins) echo "Rekord został dodany poprawnie";
  63. else echo "Błąd nie udało się dodać nowego rekordu";
  64. }
  65. }
  66.  
  67. /*else if (isset($_GET["Id"]))
  68. {
  69. $zapytanie3="DELETE from Klienci where id='$_GET[Id]';";
  70. if ($_GET["wybor"] == 'DEL')
  71. {
  72.  
  73. echo 'Brak bledu';
  74. {
  75. echo '<h5>blad</h5>';
  76. }
  77. }
  78. }
  79. */
  80.  
  81.  
  82. else if (isset($_GET["napis"]))
  83. {
  84.  
  85. $zapytanie2="SELECT *from klienci where imie='$_GET[napis]'";
  86. $wyk2=mysql_query($zapytanie2);
  87.  
  88. if ($_GET["wybor"]== 'szukaj')
  89. {
  90. if(mysql_num_rows($wyk2) > 0)
  91. {
  92.  
  93. echo ("<h1><b>Znaleziono</b></h1>");
  94. //echo '<div id="h6">';
  95. echo "<table cellpading=5 border=2>";
  96. echo "<tr>";
  97. echo "<td><b>Id_klienta</td></b>";
  98. echo "<td><b>Imie</td></b>";
  99. echo "<td><b>Nazwisko</td></b>";
  100. echo "<td><b>Nazwa firmy</td></b>";
  101. echo "<td><b>Telefon</td></b>";
  102. echo "</tr>\n";
  103. }
  104. else echo ("<h1><b>Nie ma</b></h1>");
  105.  
  106. echo '<br/>';
  107. while($rek=mysql_fetch_array($wyk2))
  108. {
  109. $id2 =$rek[0];
  110. $imie2=$rek[1];
  111. $nazwisko2=$rek[2];
  112. $nazwa_firmy2=$rek[3];
  113. $telefon2=$rek[4];
  114.  
  115. echo "<tr>";
  116. echo "<td><b>$id2</td></b>";
  117. echo "<td><b>$imie2</td></b>";
  118. echo "<td><b>$nazwisko2</td></b>";
  119. echo "<td><b>$nazwa_firmy2</td></b>";
  120. echo "<td><b>$telefon2</td></b>";
  121. echo "</tr>\n";
  122. //echo '</div>';
  123. }
  124. echo "</table>";
  125.  
  126. echo '<a href ="formularz.php"> Powrot do formularza</a>';
  127.  
  128. }
  129. }
  130.  
  131. $zapytanie1 = "SELECT *from klienci";
  132. $wyk1=mysql_query($zapytanie1);
  133.  
  134. //echo '<div id="h4">';
  135. echo "<table cellpading=5 border=2>";
  136. echo "<tr>";
  137. echo "<td><b>Id_klienta</td></b>";
  138. echo "<td><b>Imie</td></b>";
  139. echo "<td><b>Nazwisko</td></b>";
  140. echo "<td><b>Nazwa firmy</td></b>";
  141. echo "<td><b>Telefon</td></b>";
  142. echo "</tr>\n";
  143.  
  144. while($rekord=mysql_fetch_array($wyk1))
  145. {
  146. $id =$rekord[0];
  147. $imie=$rekord[1];
  148. $nazwisko=$rekord[2];
  149. $nazwa_firmy=$rekord[3];
  150. $telefon=$rekord[4];
  151.  
  152. echo "<tr>";
  153. echo "<td><b>$id</td></b>";
  154. echo "<td><b>$imie</td></b>";
  155. echo "<td><b>$nazwisko</td></b>";
  156. echo "<td><b>$nazwa_firmy</td></b>";
  157. echo "<td><b>$telefon</td></b>";
  158. //echo "<td><a href = \"formularz.php?wybor=usun&id=&id\">kasuj</a></td>";
  159. echo "</tr>\n";
  160. echo '</div>';
  161. }
  162. echo "</table>";
  163. //echo '</div>';
  164. ?>
  165.  
  166. </body>
  167. </html>
qasz
Pisałem ci poprawny kod, a ty nawet nie sprawdziłeś go, 37 i 45 linijka nie zamknąłeś diva.
szokmen
Z całym szacunkiem sprawdziłem i odpisałem, że nie chce u mnie działać. Z twoim rozwiązaniem strona wygląda tak Strona2
qasz
A pozamykałeś tagi co pisałem teraz powyżej, niedomknięty div powodował, że nie miałeś żadnych błędów w php w chromie masz fajne narzędzia programistyczne obejrzyj czy wszystko jest domknięte i czy nie widać w kodzie skryptu php.
szokmen
Problem rozwiązany dziękuje wszystkim za cierpliwość i za pomoc. Teraz idę szukać info na temat jak się robi kopię zapasową bazy danych. biggrin.gif biggrin.gif
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.