Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] [mysql] usuwanie i edycja rekordów...
kononowicz
post
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


witam.

poniżej jest kod wyświetlający tabelkę. Mam prośbę czy ktoś byłby w stanie wytłumaczyć mi jak usunąć i edytować dany wiersz tabeli?questionmark.gif? konkretnie o co chodzi w

  1. <?php
  2. <a href="index.php?a=del&id={$r['id']}">usuń</a>
  3. <a href="index.php?a=edit&id={$r['id']}">edytuj</a>
  4. ?>


prosiłbym w miarę łapotologicznie...

  1. <?php
  2. if(mysql_num_rows($wynik) > 0) {
  3. echo "<table cellpadding="2" border=1>";
  4. while($r = mysql_fetch_assoc($wynik)) {
  5. echo "<tr>";
  6. echo "<td>".$r['TOWARY']."</td>";
  7. echo "<td>".$r['KOD']."</td>";
  8. echo "<td>".$r['CENA']."</td>";
  9. echo "<td>".$r['DZIALY']."</td>";
  10. echo "<td>
  11.  <a href="index.php?a=del&id={$r['id']}">usuń</a>
  12.  <a href="index.php?a=edit&id={$r['id']}">edytuj</a>
  13.  </td>";
  14. echo "</tr>";
  15. }
  16. ?>


Z góry dziekuję exclamation.gif! smile.gif

Ten post edytował kononowicz 14.11.2006, 15:25:05


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
3 Stron V   1 2 3 >  
Start new topic
Odpowiedzi (1 - 19)
wipo
post
Post #2





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Usuwanie to po prostu daj
if (is_numeric($_GET['id'])){
if (mysql_query("delete from tabela where id=".$_GET['id']))
print "usuniete";
else
print "nie usunięte";
}

Co do edycji to musisz najpierw wyświetlić dane wartości a potem możesz zrobić $_POST do bazy
Poszukaj troche a znajdziesz


--------------------
Go to the top of the page
+Quote Post
kononowicz
post
Post #3





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


Cytat(wipo @ 13.11.2006, 15:28:16 ) *
Usuwanie to po prostu daj
if (is_numeric($_GET['id'])){
if (mysql_query("delete from tabela where id=".$_GET['id']))
print "usuniete";
else
print "nie usunięte";
}

Co do edycji to musisz najpierw wyświetlić dane wartości a potem możesz zrobić $_POST do bazy
Poszukaj troche a znajdziesz



to znaczy po wstawieniu tego skryptu powinien usuwać??
hmmm... nie działa mi... czy musze jeszcze coś zmienić questionmark.gif


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
wipo
post
Post #4





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Nie widze dokładnie jaką masz tabele
zobacz na zapytanie SQL


--------------------
Go to the top of the page
+Quote Post
kononowicz
post
Post #5





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


oczywiście tabele zmieniłem - `towary`

cos jeszcze zmienic??


dla ścisłosci tabela wygląda tak:



Ten post edytował kononowicz 13.11.2006, 16:14:58


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
wipo
post
Post #6





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


a wpisz mysql_error();


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





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


nie wiem czy dobrze łapię, bo jestem jeszcze raczkujący, ale wystarczy że w pliku index.php dasz (przed funkcją wyświetlającą) kod
  1. <?php
  2. if ($a="del") {
  3. delete from tabela where id=".$_GET['id'];
  4. print "usuniete";
  5. }
  6. else
  7. print "nie usunite";
  8. ?>

co do edycji, to zrobiłbym to na osobnym pliku, tzn zamiast
  1. <a href=\"index.php?a=edit&id={$r['id']}\">edytuj</a>

dałbym:
  1. <a href=\"edytuj.php?id={$r['id']}\">edytuj</a>

Wtedy w pliku edytuj.php będzie formularz, w którym będą wprowadzone dane z rekordu o podanym id i będzie można po prostu przeedytować poszczególne dane w formularzu i wysłać do bazy
Go to the top of the page
+Quote Post
kononowicz
post
Post #8





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


oto cały kod tego skrytu do wyświetlania:

  1. <html>
  2. <head>
  3. <title>baza mysql - usuwanie - test</title>
  4. </head>
  5. <body>
  6. <?php
  7. // nawiazujemy polaczenie
  8. $connection = @mysql_connect('localhost', '********', '*******')
  9. // w przypadku niepowodznie wyświetlamy komunikat
  10. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  11. // połączenie nawiązane ;-)
  12. echo "Połączono z serwerem<br />";
  13. // nawiązujemy połączenie z bazą danych
  14. $db = @mysql_select_db('*******', $connection)
  15. // w przypadku niepowodzenia wyświetlamy komunikat
  16. or die('Brak połączenia z bazą towarów <br />Błąd: '.mysql_error());
  17. // połączenie nawiązane ;-)
  18. echo "Połączono z bazą towarów<br /> ";
  19. // zamykamy połączenie
  20.  
  21.  
  22.  
  23. /* zapytanie do konkretnej tabeli */
  24. $wynik = mysql_query("SELECT `towary`.`TOWARY` , `towary`.`KOD` , `towary`.`CENA` , `dzialy`.`DZI
    ALY`
  25. FROM `towary` , `dzialy`
  26. WHERE `towary`.`ID_DZIALY` = `dzialy`.`ID`
  27. LIMIT 0 , 30 ;")
  28. or die('Błąd zapytania');
  29.  
  30. /*
  31. wyświetlamy wyniki, sprawdzamy,
  32. czy zapytanie zwróciło wartość większą od 0
  33. */
  34. if(mysql_num_rows($wynik) > 0) {
  35. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  36. echo "<table cellpadding="2" border=1>";
  37. while($r = mysql_fetch_assoc($wynik)) {
  38. echo "<tr>";
  39. echo "<td>".$r['TOWARY']."</td>";
  40. echo "<td>".$r['KOD']."</td>";
  41. echo "<td>".$r['CENA']."</td>";
  42. echo "<td>".$r['DZIALY']."</td>";
  43. echo "<td>
  44.  <a href="pokaz_test.php?a=del&amp;id={$r['id']}">usuń</a>
  45.  <a href="pokaz.php?a=edit&amp;id={$r['id']}">edytuj</a>
  46.  </td>";
  47. echo "</tr>";
  48. }
  49. echo "</table>";
  50. $ilosc_wierszy = mysql_num_rows($wynik);
  51. echo "<br>ilość danych w bazie: $ilosc_wierszy <br>";
  52. }
  53.  
  54. if (is_numeric($_GET['id'])){
  55. if (mysql_query("delete * from `towary` where id=".$_GET['id']))
  56. {
  57. print "usuniete";
  58. }
  59. else
  60. {
  61. print "nie usunięte";
  62. }
  63. }
  64.  
  65.  
  66. if(mysql_num_rows($wynik) == 0)
  67. {
  68. echo "<br>";
  69. echo "baza towarów jest pusta";
  70. }
  71. mysql_close($connection);
  72. ?>
  73.  
  74. </body>
  75. </html>


klikając na usuń nie sie nie dzieje... nie pojawia się nawet żaden błąd... cały czas wyświetla tabele.


a chodzi mi o to ,zeby pojawiała sie tabela i obok koło rekordu pojawiała sie opcja usun i edytuj akurat dla tego rekordu... po czym wraca mi ładnie do wyświetlania...


ps. ewentualnie gdyby ktoś miał jakis gotowy skrypt do wyświetlania z mozliwoscia edycji i usuniecia rekordu to byłbym wdzieczny smile.gif


po wstawieniu tego kodu do pętli wyświetlającej wychodzi mi :

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/*******************/pokaz_test.php on line 47

Ten post edytował kononowicz 13.11.2006, 16:40:36


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
wipo
post
Post #9





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Nie wiem czy zauważyłeś ale nie zgadza się wielkość liter (popatrz dokładnie)


--------------------
Go to the top of the page
+Quote Post
kononowicz
post
Post #10





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


chodzi o ID tak?? zmieniłem i nadal nic sadsmiley02.gif


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
Neojawor
post
Post #11





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


Ten kod:
  1. <a href=\"pokaz_test.php?a=del&id={$r['id']}\">usuń</a>

działa tak, po kliknięciu "usuń" ładuje Ci się plik pokaz_test.php i jednocześnie wysyła ci info, że w zmiennej a masz wartość "del", a w zmiennej id masz id danego rekordu (pod warunkiem, że będzie Ci się zgadzała wielkość liter). Oznacza to, że w pliku wywoływanym pokaz_test.php musisz umieścić skrypt usuwający rekord o podanym id, pod warunkiem że $a="del". To jest cała filozofia.
Napisz najpierw, czy ten podany przez Ciebie skrypt to jest plik pokaz_test.php, czy też jakiś inny?
Go to the top of the page
+Quote Post
kononowicz
post
Post #12





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


ten cały plik nazywa sie pokaz_test.php

komunikat

nie usunięte1064You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '* from `towary` where ID=' at line 1

wychodzi mi jak zrobiłem plik usun.php

  1. <?php
  2. if ($a="del"){
  3. if (mysql_query("delete * from `towary` where ID=".$_GET['ID']))
  4. {
  5. echo "usuniete";
  6. }
  7. else
  8. {
  9. echo "nie usunięte";
  10. }}
  11. ?>


wiecie moze co to oznacza??


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
wipo
post
Post #13





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


ale przez get przekazujesz małe id a nie duże


--------------------
Go to the top of the page
+Quote Post
Neojawor
post
Post #14





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


Więc wstaw to co ci wcześniej napisałem (kod usuwający rekord) przed linijkę:
  1. <?php
  2. if(mysql_num_rows($wynik)
  3. ?>

Musisz wsadzić to przed if-a, bo usunięcie ma być wykonane bez względu na wszystko (z wyjątkiem warunku że $a="del").
Gdybyś wsadził ten kod w pętlę, to chciałoby ci wywalić ten rekord tyle razy ile masz innych rekordów, a jeśli dasz go poniżej pętli wyświetlającej, to najpierw wyświetli Ci rekord wybrany do usunięcia, a dopiero później go usunie - wtedy będzie ryzyko, że klikniesz "usuń" lub "edytuj" dla rekordu, który został właśnie usunięty. Łapiesz o co chodzi?
aha i usuń to co podał wipo, bo to będzie powtórzenie funkcji usuwania.

i dla pewności - z tymi dużymi literami, to jeśli masz w tabeli ID, a nie id, to musisz mieć
  1. <a href=\"pokaz_test.php?a=del&id={$r['ID']}\">usuń</a>


edit:
mała pomyłka tongue.gif nie podałem kodu usówającego, więc po prostu weź ten kod co podał Ci wipo ale wstaw tam gdzie mówiłem

Ten post edytował Neojawor 13.11.2006, 18:01:01
Go to the top of the page
+Quote Post
skowron-line
post
Post #15





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. if(isset($_GET['id'])){
  3. if (is_numeric($_GET['id'])){
  4. if (mysql_query("delete from tabela where id=".$_GET['id']))
  5. print "usuniete";
  6. else
  7.  print "nie usunięte";
  8. }
  9. }
  10. ?>


Ten post edytował skowron-line 13.11.2006, 19:17:09


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
kononowicz
post
Post #16





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


a wiecie moze jak napisać mysql_query w skrypcie ktory ma usuwac??

wyzej w moim poscie jest screen z phpmyadmina z tabelą...


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
skowron-line
post
Post #17





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. mysql_query("delete  from `towary` where ID=".$_GET['ID'])
  3. ?>


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
kononowicz
post
Post #18





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


Cytat(skowron-line @ 13.11.2006, 21:48:44 ) *
  1. <?php
  2. mysql_query("delete  from `towary` where ID=".$_GET['ID'])
  3. ?>



hmmm... i tak własnie napisałem a tu mi wyświetla:
1064You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


plik usun.php:

  1. <?php
  2. if ($a="del")
  3. {
  4. if (mysql_query("delete from `towary` where ID=".$_GET['id']))
  5. {
  6. echo "usuniete";
  7. }
  8. else
  9. {
  10. echo "nie usunięte";
  11. }
  12. }
  13. ?>


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post
skowron-line
post
Post #19





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. mysql_query('delete  from `towary` where ID='.$_GET['ID'].' ')
  3. ?>


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
kononowicz
post
Post #20





Grupa: Zarejestrowani
Postów: 238
Pomógł: 0
Dołączył: 12.11.2006
Skąd: Białystok

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


czy na prawdę na forum z fachowcami od phpa nikt nie potrafi mi pomoc?questionmark.gif? dwa posty wyzej jest konkretne pytanie...


--------------------
gdy moderator śpi - budzą się demony ]:->
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:34