Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MYSQL] UPDATE - Pierwsze starcie
conix
post
Post #1





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Witam wszystkich,
próbuje od 10 minut zrobic edycje artów. Niby wszystko jest ok, ale dane sie nie aktualizuja :/
Oto strona, na ktorej wyswietlam artykul do edycji:
  1. <?php
  2. include('config.php');
  3. $id = $_GET['id'];
  4. $query = mysql_query("select * from arty where id='$id'");
  5. while($rekord = mysql_fetch_array($query))
  6. echo"Tytuł:<br><textarea name='tytul' rows='1' class='textbox' style='width:295px'>
  7. $rekord[1]
  8. </textarea><br>
  9. Treść:  <br>
  10. <textarea name='tresc' rows='28' class='textbox' style='width:695px'>
  11. $rekord[2]
  12. </textarea>  <br>
  13. Kategoria (JustCause, JustCause2 lub Strona:  <br>
  14. <textarea name='kategoria' rows='1' class='textbox' style='width:295px'>
  15. $rekord[3]
  16. </textarea>
  17. <br>
  18. <br>
  19. <a href='edit.php'>Gotowe</a>";
  20. ?>

A oto strona edit.php, czyli ta ktora ma na zadanie wprowadzic zmiany do bazy:
  1. <?php
  2.  include('config.php');
  3. $id = $_GET['id'];
  4. $edytuj = ("UPDATE arty SET tytul = '$rekord[1]', tresc = '$rekord[2]', kategoria = '$rekord[3]' WHERE id='$id' ");
  5. if(mysql_query($edytuj))
  6. {
  7.  print "Artykuł został edytniety, klikni <a href='index.html'>tutaj</a>";
  8. }
  9.  
  10. {
  11. print "Wystąpił błąd podczas edycji";
  12. }
  13. ?>

Prosze o pomoc, jak to rozwiazac by edytowało smile.gif


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
próbuje od 10 minut zrobic edycje artów
poswiec jeszcze godzine a dopiero potem na forum.
$id = $_GET['id'];
przeciez jak masz linka do edit.php to nie przekazujesz w url tego id.
O polach ktore wypelniles juz nie wspomne. Zamien to na forma i wysylaj formem dane.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Nie masz żadnego formularza który by przesyłał dane do pliku gdzie miałaby nastąpić edycja. Przycisk "Gotowe" to tylko link do tej strony.

Żeby zadziałała edycja musisz wysłać id aktualizowanego rekordu i wszystkie pozostałe dane do edycji.

Rozwiązanie w krokach.
- zrobić formularz
- pola w formularzu wypełnić danymi aktualnymi
- dodać pole typu hidden i przekazać za jego pomocą id rekordu ( albo jeden z innych sposobów na przekazanie danych )
- zatwierdzając formularz przechodzisz do pliku z zapytaniem UPDATE
- odpowiednio tworzysz zapytanie UPDATE które wykonujesz w bazie danych.


--------------------
404
Go to the top of the page
+Quote Post
conix
post
Post #4





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Ale gdy edytuje arta, to w adresie mam:
edycja_a.php?id=3
wiec pobiera id z url'a


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no ale do zapisu tej edycji masz taki link:
<a href='edit.php'>Gotowe</a>";
zero id, zero danych z formularza. nic.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
conix
post
Post #6





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Ok, potem znajde chwile to poprawie i dam znac jak mi poszlo.


Ok, zrobiłem cos takiego:
  1. <?php
  2.  if (!empty($_POST['wstaw']))
  3. {
  4. $id = $_GET['id'];
  5. include('config.php');
  6. $edytuj = ("UPDATE arty SET tytul = '$rekord[1]', tresc = '$rekord[2]', kategoria = '$rekord[3]' WHERE id='$id' ");
  7.  
  8. echo " Dziekujemy za edycje artykulu, by kontynuowac kliknij <a href='index.php'>tutaj</a>";
  9. }
  10. else
  11. {
  12. include('config.php');
  13. $id = $_GET['id'];
  14. $tytul = $_POST['tytul'];
  15. $tresc = $_POST['tresc'];
  16. $kategoria = $_POST['kategoria'];
  17. $query = mysql_query("select * from arty where id='$id'");
  18. while($rekord = mysql_fetch_array($query))
  19.  
  20.  
  21. echo' <form action="edycja_a.php?submit=dodano" method="post">
  22. Tytuł: <input type="text" name="tytul" />
  23. <br /><br />Treść </br><textarea name="tresc" rows="30" cols="80">'.$rekord[2].'</textarea><BR>
  24. <input type="checkbox" name="kategoria" value="JustCause" />Just Cause<BR><input type="checkbox" name="kategoria" value="JustCause2" />Just Cause 2<input type="checkbox" name="kategoria" value="Strona" />Strona
  25. <br /><br /><input type="submit" name="wstaw" value="Dodaj" /></form>
  26.  
  27. ';
  28. }
  29. ?>

Ale nie zmienia danych w bazie


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #7





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


  1. <?php
  2. $edytuj = ("UPDATE arty SET tytul = '$rekord[1]', tresc = '$rekord[2]', kategoria = '$rekord[3]' WHERE id='$id' ");
  3. ?>
a gdzie mysql_query, zrób tak:
  1. <?php
  2. $edytuj = "UPDATE arty SET tytul = '$rekord[1]', tresc = '$rekord[2]', kategoria = '$rekord[3]' WHERE id='$id'";
  3. mysql_query($edytuj) or die(mysql_error());
  4. ?>
Go to the top of the page
+Quote Post
conix
post
Post #8





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Nic nie dało


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #9





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


a tak:
  1. <?php
  2. $id=$_GET['id'];
  3. $tytul=$_POST['tytul'];
  4. $tresc=$_POST['tresc'];
  5. $kategoria=$_POSt['kategoria'];
  6. $edytuj = "UPDATE arty SET tytul = '$tytul', tresc = '$tresc', kategoria = '$kategoria' WHERE id='$id'\";
  7. mysql_query($edytuj) or die(mysql_error());
  8. ?>

tak powinno być dobrze bo niemam pojęcia skąd masz to $rekord[0] etc...

Ten post edytował ExPlOiT 14.03.2008, 15:44:13
Go to the top of the page
+Quote Post
conix
post
Post #10





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Zero reakcji


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #11





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


  1. <?php
  2.  if ($_POST['wstaw']=='Dodaj')
  3. {
  4. $id = $_GET['id'];
  5. include('config.php');
  6.  
  7. $id=$_GET['id'];
  8. $tytul=$_POST['tytul'];
  9. $tresc=$_POST['tresc'];
  10. $kategoria=$_POSt['kategoria'];
  11. $edytuj = "UPDATE arty SET tytul = '$tytul', tresc = '$tresc', kategoria = '$kategoria' WHERE id='$id'";
  12. mysql_query($edytuj) or die(mysql_error());
  13.  
  14.  
  15. echo " Dziekujemy za edycje artykulu, by kontynuowac kliknij <a href='index.php'>tutaj</a>";
  16. }
  17. else
  18. {
  19. include('config.php');
  20. $id = $_GET['id'];
  21. $tytul = $_POST['tytul'];
  22. $tresc = $_POST['tresc'];
  23. $kategoria = $_POST['kategoria'];
  24. $query = mysql_query("select * from arty where id='$id'");
  25. while($rekord = mysql_fetch_array($query))
  26.  
  27.  
  28. echo' <form action="edycja_a.php?submit=dodano" method="post">
  29. Tytuł: <input type="text" name="tytul" />
  30. <br /><br />Treść </br><textarea name="tresc" rows="30" cols="80">'.$rekord[2].'</textarea><BR>
  31. <input type="checkbox" name="kategoria" value="JustCause" />Just Cause<BR><input type="checkbox" name="kategoria" value="JustCause2" />Just Cause 2<input type="checkbox" name="kategoria" value="Strona" /><input type="hidden" name="wstaw" value="Dodaj">Strona
  32. <br /><br /><input type="submit" value="Dodaj" /></form>
  33.  
  34. ';
  35. }
  36. ?>
Go to the top of the page
+Quote Post
bartg
post
Post #12





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


  1. <?php
  2. $id = $_GET['id'];
  3. ?>


A gdzie wysyłacie id?


--------------------
Go to the top of the page
+Quote Post
PawelC
post
Post #13





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


conix wklej przykładowy link z którego pobierasz id, a później dane do formularza.
Go to the top of the page
+Quote Post
conix
post
Post #14





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


edit_a.php?id=3
Wyswietla mi w polu tresc newsa, wiec powinno dzialac


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #15





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Mi też wyświetla normalnie treść newsa oraz jego tytul

Ten post edytował ExPlOiT 14.03.2008, 16:16:26
Go to the top of the page
+Quote Post
conix
post
Post #16





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


Mi tez newsy wyswietla, co to ma do rzeczy?


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #17





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


A to że testowałem skrypt u siebie i bezproblemowo działa.
Go to the top of the page
+Quote Post
Cienki1980
post
Post #18





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


a gdzie w formularzu przesyłasz ponownie id do tego miejsca gdzie wstawiasz je do zapytania ?
nie ma ani śladu ... szczególnie, że formularz wysyłasz POSTem a id poibierasz z GET'a
Dorób przekazywanie id w formularzu i musi zadziałać.


--------------------
404
Go to the top of the page
+Quote Post
conix
post
Post #19





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 8.02.2008

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


U mnie nie działa :/
Przekazywanie id w formularzu jest.


--------------------
Jeśli pomogłem kliknij na Pomógł
Jeśli nie pomogłem kliknij na Pomógł
Go to the top of the page
+Quote Post
PawelC
post
Post #20





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


  1. <?php
  2. include('config.php');
  3. $id = $_GET['id'];
  4. $tytul = $_POST['tytul'];
  5. $tresc = $_POST['tresc'];
  6. $kategoria = $_POST['kategoria'];
  7. $pobierz="select * from arty where id='$id'";
  8. $query = mysql_query($pobierz);
  9. while($rekord = mysql_fetch_array($query))
  10.  
  11.  
  12. echo' <form action="?id='.$id.'" method="post">
  13. Tytuł: <input type="text" name="tytul" value="'.$rekord['tytul'].'" />
  14. <br /><br />Treść </br><textarea name="tresc" rows="30" cols="80">'.$rekord['tresc'].'</textarea><BR>
  15. <select name="kategoria">
  16. <option value="Just Cause">Just Cause</option>
  17. <option value="Just Cause2">Just Cause2</option>
  18. <option value="Strona">Strona</option>
  19. </select><input type="hidden" name="wstaw" value="Dodaj">
  20. <br /><br /><input type="submit" value="Dodaj" /></form>
  21.  
  22. ';
  23. ?>
  24.  
  25. <?php
  26. if ($_POST['wstaw']=='Dodaj')
  27. {
  28. $id = $_GET['id'];
  29. include('config.php');
  30.  
  31. $id=$_GET['id'];
  32. $tytul=$_POST['tytul'];
  33. $tresc=$_POST['tresc'];
  34. $kategoria=$_POST['kategoria'];
  35. $edytuj = "UPDATE arty SET tytul = '$tytul', tresc = '$tresc', kategoria = '$kategoria' WHERE id='$id'";
  36. mysql_query($edytuj) or die(mysql_error());
  37.  
  38.  
  39. echo " Dziekujemy za edycje artykulu, by kontynuowac kliknij <a href='index.php'>tutaj</a>";
  40. }
  41.  
  42. ?>

A tutaj działa ten sam kod:
http://exploitek.info/oo.php?id=1 wpisz tam cokolwiek dodaj, i poźniej odśwież zobaczysz że działa

Ten post edytował ExPlOiT 14.03.2008, 17:31:55
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.08.2025 - 20:00