Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Update danych przez formularz
kasjus
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.11.2005
Skąd: Bielsko-Biała

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


Mam problem: jest baza danych. Rekordy dodawane przez formularze. Usuwanie też działa ale problem z update - nie mam zielonego pojęcia jak zrobić.
Nie będę przedstawiał tutaj kodu, gdyż nie wiem jak podejść do tematu. Próbowałem "pakować" wybrany rekord w formularz dodawania nowego studenta - wartości pobrane z bazy były przypisywane w inputach - value="pole_rekordu"... Myślałem że zmiany dokonane ręcznie w takim formularzu będą przekazywane dalej do następnej strony. Niestety - chyba zły tok myślenia. Prosze o przykładowy kod, najprostszy jak sie da.
Załóżmy że: baza wps, user root, hasło mat,
jest 1 tabela: student - pola imie i nazwisko
Mamy w bazie studenta Marian Koniuszko
Chcemy mu zmienić imie na Stefan.
Wiem jak zrobić samo UPDATE na bazie, ale nie wiem jak zrobić by formularz
wyświetlił pobrane dane, pozwolił na zmiane ich i przekazał zmienione dane do następnej strony

Zadania:
1. wybranie rekordu z bazy (a.php).
2. wyświetenie ich na stronie z możliwością edycji (a.php)
3. zapis (strona b.php)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
ActivePlayer
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

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


  1. <?
  2. if(isset($_POST['submit'])){
  3.  if(!empty($_GET['id'])){
  4. // update
  5.  }
  6.  else{
  7. // insert
  8.  }
  9. }
  10. else{
  11.  if(!empty($_GET['id'])){
  12. // pobranie danych do edycji, potem wstawiasz w formularz
  13.  }
  14. ?>
  15. Pokazanie forma
  16. <form action="?id=<?$_GET['id'];?>">
  17. ...
  18. <input type="submit" name="submit"/>
  19. </form>
  20. <?
  21. }


mam nadzieje ze sie nigdzie nie machnalem
Go to the top of the page
+Quote Post
kasjus
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 1.11.2005
Skąd: Bielsko-Biała

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


nie do końca wiem jak przekształcić to na mój kod więc zmienię pytanie na bardziej konkretne

selecta z bazy pomijam:
dane pobrane z bazy to: $imie=Marian, $nazwisko=Koniuszko
strona modyf.php; pomijam html.., form... itp

  1. <?
  2. echo '<tr><td align="right">Imie: </td>
  3. <td align="left"><input type="text" name="imie" size="15" maxlength="15" value="'.$imie.'"></td></tr>';
  4. echo '<tr><td align="right">Nazwisko: </td>
  5. <td align="left"><input type="text" name="nazwisko" size="15" maxlength="15" value="'.$nazwisko.'"></td></tr>';
  6. <tr><INPUT TYPE="button" VALUE="Dalej" onClick=" parent.location.href='potwierdz_zmiany.php ' "></tr>
  7. ?>


Czy w takiej postaci jest szansa na to by na stronie modyf.php kliknąć w pole, gdzie wyświetli się MARIAN i poprostu wpisać STEFAN a kliknięcie przycisku DALEJ prześle do strony potwierdz_zmiany.php dane po zmnianie.
Jeśli nie - to co trzeba zmienić - bo tak właśnie chcę żeby działało
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




moze bys tam kodem rzucil co update robisz?


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

"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
thunderstorm
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.12.2005

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


Oto moj kod. W pełni działający (((( a.php ))))
  1. <?
  2. $db = mysql_connect ("***", "***", "***");
  3. mysql_select_db ("stormnet");
  4. $result = mysql_query("SELECT * FROM users");
  5. echo "<table width = '800' align='center' border='1' cellpadding='0' cellspacing='0' bgcolor='#7C7C7C' bordercolor='#363634'>";
  6. echo "<tr><td>Nick<td>email<td>Wiek<td>GG<td>Stats<td>Miejscowosc<td>Ranga<td>Edytuj<td>Usun</a></td></tr>";
  7.  
  8. while ($rows = mysql_fetch_row($result))
  9. {
  10. echo "<form name='form2' method='post' action='b.php'>";
  11.  
  12. echo "<tr><td>
  13. <input name='id' type='hidden' value='$rows[0]' checked>
  14. <input name='nick' type='text' value='$rows[1]'><td>
  15. <input name='mail' type='text' value='$rows[2]'><td>
  16. <input name='wiek' type='text' value='$rows[3]' size='4'><td>
  17. <input name='gg' type='text' value='$rows[4]' size='5'><td>
  18. <input name='stats' type='text' value='$rows[5]'><td>
  19. <input name='city' type='text' value='$rows[6]'><td>
  20. <select name='rang'>
  21.   <option value='1'>W&oacute;dz</option>
  22.   <option value='2'>Szaman</option>
  23.   <option value='3'>Rekrut</option>
  24. </select>
  25. <td>
  26. <input name='Edytuj' type='submit'  value='Edytuj'>
  27. <td>
  28. <input name='Usun' type='submit'  value='Usun'>
  29. </a></td></tr>";
  30.  
  31. echo "</form>";
  32. }
  33. echo "</table>";
  34. ?>


I (((( b.php ))))
  1. <?
  2. $db = mysql_connect ("****", "****", "****");
  3. mysql_select_db ("stormnet");
  4. //zmienne
  5. $id = $_POST['id'];
  6. $nick = $_POST['nick'];
  7. $mail = $_POST['mail'];
  8. $wiek = $_POST['wiek'];
  9. $gg = $_POST['gg'];
  10. $stats = $_POST['stats'];
  11. $city = $_POST['city'];
  12. //JEZELI USUN
  13. if($_POST['Usun'])
  14. {
  15.  
  16. mysql_query("DELETE FROM users WHERE id= $id");
  17. print '<p algin="center">Dane zostaly Usuniete!</p>';
  18.  
  19. }
  20. //JEZELI EDYTUJ
  21. else if ($_POST['Edytuj'])
  22. {
  23. mysql_query("UPDATE users SET nick = '$nick' WHERE id= $id");
  24. mysql_query("UPDATE users SET mail = '$mail' WHERE id= $id");
  25. mysql_query("UPDATE users SET wiek = '$wiek' WHERE id= $id");
  26. mysql_query("UPDATE users SET gg = '$gg' WHERE id= $id");
  27. mysql_query("UPDATE users SET URL = '$stats' WHERE id= $id");
  28. mysql_query("UPDATE users SET city = '$city' WHERE id= $id");
  29. mysql_query("UPDATE users SET Ranga = '$rang' WHERE id= $id");
  30.  
  31. print '<p algin="center">Dane zostaly Zmienione!</p>';
  32. }
  33. else
  34. {
  35. print ("Nie zmieniono zadnych danych!");
  36. }
  37.  
  38. ?>


Ten post edytował thunderstorm 9.12.2005, 16:09:39
Go to the top of the page
+Quote Post
timmy
post
Post #6





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.11.2005

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


Thunderstorm - fajny update i ladnie chodzi.

Mam co do niego jedno pytanie:

Jak dodac tam w przyciskach obok przyciskow usun i edytuj, pole akceptuj, po ktorego kliknieciu rekord bylby przenoszony do drugiej tabeli o takiej samej konstrukcji-schemacie.

Ten post edytował timmy 10.12.2005, 16:05:02
Go to the top of the page
+Quote Post
mike
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


A może by tak poczytać manuala i sładnię poznać :?:

  1. <?php
  2.  
  3. // ...
  4. mysql_query("UPDATE users SET nick = '$nick' WHERE id= $id");
  5. mysql_query("UPDATE users SET mail = '$mail' WHERE id= $id");
  6. mysql_query("UPDATE users SET wiek = '$wiek' WHERE id= $id");
  7. mysql_query("UPDATE users SET gg = '$gg' WHERE id= $id");
  8. mysql_query("UPDATE users SET URL = '$stats' WHERE id= $id");
  9. mysql_query("UPDATE users SET city = '$city' WHERE id= $id");
  10. mysql_query("UPDATE users SET Ranga = '$rang' WHERE id= $id");
  11. // ...
  12.  
  13. ?>
-->
  1. <?php
  2.  
  3. //...
  4. mysql_query("UPDATE users SET nick = '$nick', mail = '$mail', wiek = '$wiek', gg = '$gg', URL = '$stats', city = '$city', Ranga = '$rang' WHERE id= $id");
  5. // ...
  6.  
  7. ?>
Go to the top of the page
+Quote Post
timmy
post
Post #8





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.11.2005

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


Mike_mech uwierz mi ze probowalem to zrobic samemu ale nie bardzo mnie to szlo, wiec wolalem zapytac na forum.

do pliku b.php dorobilem cos takiego

  1. <?php
  2.  
  3.  
  4. //JEZELI Akceptuj
  5. if ($_POST['Akceptuj'])
  6. {
  7. mysql_query("INSERT INTO news SET a= '$a' ");
  8. mysql_query("INSERT INTO news SET b= '$b' ");
  9. mysql_query("INSERT INTO news SET c= '$c' ");
  10. mysql_query("INSERT INTO news SET d = '$d' ");
  11. mysql_query("INSERT INTO news SET e = '$e' ");
  12. mysql_query("INSERT INTO news SET f = '$f' ");
  13. mysql_query("INSERT INTO news SET g = '$g' ");
  14.  
  15.  
  16. print '<p algin="center">Dane zostaly Zmienione!</p>';
  17.  
  18. }
  19. else
  20. {
  21. print ("Nie zmieniono zadnych danych!");
  22. }
  23.  
  24.  
  25. ?>


Dodawac dodaje rekordy do drugiej takiej samej tabeli, ale bardzo to rozrzuca i nie wiadomo co wlasciwie gdzie wkleja.

Moze ktos mnie powiedziec w jaki sposob to przerobic zeby wrzucal wszystko do konkretnych wierszy i kolumn po koleji?




Badzcie pozdrowieni, Ci ktorzy tak dzielnie zmierzaja z pomoca. biggrin.gif

Ten post edytował timmy 11.12.2005, 17:54:53
Go to the top of the page
+Quote Post

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 - 09:23