Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MySql zmiana danych w tabeli?
Forum PHP.pl > Forum > Bazy danych > MySQL
simoc007
witam;
jestem nowy i zaczynam dopiero zabawę w php i mysql wic mam nadzieje że mi pmożecie;) coś takiego:

formularz:

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />
  4. <meta http-equiv="Content-Language" content="pl" />
  5. <meta name="Author" content="ITSS EUROPE" />
  6. </head>
  7. <body>
  8. <?
  9. @$db = mysql_pconnect("localhost", "root", "krasnal");
  10. if (!$db)
  11. {
  12. print "wystąpił błąd w połączeniu";
  13. }
  14.  
  15. mysql_select_db("sklep");
  16.  
  17. $query = "select * from produkty";
  18. $result = mysql_query($query);
  19. $num_results = mysql_num_rows($result);
  20. $nrproduktu=$num_results+1;
  21. ?>
  22. <form action="index.php" method=post>
  23.  
  24.  
  25. <table border=0>
  26. <tr bgcolor=black>
  27. <td width=20><font color=white>LP</font></td>
  28. <td width=100><font color=white>Towar</font></td>
  29. <td width=20><font color=white>Ilość</font></td>
  30. <td width=100><font color=white>Czas dostawy</font></td>
  31. </tr>
  32.  
  33.  
  34. <tr>
  35. <td><?
  36. echo '<input type"text" value="'.$nrproduktu.'" name="nrproduktu" size=20 maxlength=20>';
  37. ?>
  38. </td>
  39. <td><textarea name="nazwaproduktu" cols="4" rows="4"></textarea></td>
  40. <td><input type"text" name="ilosc" size=2 maxlength=2></td>
  41.  
  42. <td><select name="czasdostawy">
  43. <option value="a">rano
  44. <option value="b">południe
  45. <option value="c">wieczór
  46.  
  47. </select> </td> </tr>
  48.  
  49. <tr>
  50. <td colspan=2 align=center><input type=submit value="Zamawiam"></td></tr>
  51.  
  52. </table>
  53. </form>
  54. </body>
  55. </html>


index:

  1. <?
  2. if (!$nrproduktu || !$nazwaproduktu || !$ilosc || !$czasdostawy)
  3. {
  4. print "Nie zostały wypełnione wszystkie pola";
  5. }
  6. $nrproduktu = addslashes($nrproduktu);
  7. $nazwaproduktu = addslashes($nazwaproduktu);
  8. $ilosc = addslashes($ilosc);
  9. $czasdostawy = addslashes($czasdostawy);
  10.  
  11. @$db = mysql_pconnect("localhost", "root", "krasnal");
  12. if (!$db)
  13. {
  14. print "Nie można nawiązać połączenia z bazą danych";
  15. }
  16.  
  17. mysql_select_db("sklep");
  18. $query = "insert into produkty values ('".$nrproduktu."', '".$nazwaproduktu."', '".$ilosc."', '".$czasdostawy."')";
  19. $result = mysql_query($query);
  20. if ($result)
  21. print "Towar <b>".$nazwaproduktu."</b> został dodany do bazy danych.";
  22. else { print "W bazie istnieje już produkt o tym numerze."; }
  23. ?>


Formlarz do wprowadzenia danych index wpisuje dane do bazy danych wszystko działa dałem to tyko dla oriętacji wszystko co wprowadziłem wysiwietla mi się w pliku:

  1. <?
  2. @$db = mysql_pconnect("localhost", "root", "krasnal");
  3. if (!$db)
  4. {
  5. print "wystąpił błąd w połączeniu";
  6. }
  7.  
  8. mysql_select_db("sklep");
  9.  
  10.  
  11.  
  12. $query = "select * from produkty";
  13. $result = mysql_query($query);
  14. $num_results = mysql_num_rows($result);
  15.  
  16. print "<p>Ilość produktów w bazie danych: ".$num_results."</p>";
  17. print "<table border=3>";
  18. for ($i=0; $i <$num_results; $i++) {
  19. $row = mysql_fetch_array($result);
  20. print "<tr>";
  21. print "<td>";
  22. print stripslashes($row["nrproduktu"]);
  23. print "</td>";
  24. print "<td>";
  25. print stripslashes($row["nazwaproduktu"]);
  26. print "</td>";
  27. print "<td>";
  28. print stripslashes($row["ilosc"]);
  29. print "</td>";
  30. print "<td>";
  31. print stripslashes($row["czasdostawy"]);
  32. print "</td>";
  33. print "</tr>";
  34. }
  35. print "</table>";
  36. ?>


i teraz pytanko moje jak zrobić by w tej tabelce koło każdego produktu był przycisk "Zmień" po kliknięciu w niego przekierowany zostaje do formulaża ale już uzupełnionego wedłóg danych które wybraliśmy z bazy danych mysql do zmiany oraz MIEĆ MOŻLIWOŚĆ NADPISANIA TYCH DANYCH.

Zastosowanie ma być takie że jak ktoś popełni błąd i wyświetli sobie dane na stronce miał mozliwość ich zmiany.

Problemy jakie napotykam:
1. Najważniejszy możliwość nadpisania danych moge dodać ale ze zmianą gorzej;/
2. by formulaż był uzupełnony o konkretne tane gdy np jest 10 produktów wybieram 5 produkt i te dane mi się wczytują w fomularz

P.S. Wiem że musze zrobić plik formulaż do zmiany identyczny tylko ze zmienionym value tak jak mam to przy nrproduktu.
P.S.2 Mam nadzieje że mi pomożecie bo to ważne dlamnie to co tu pokazałem to najprostrzy formulaż i god ale opartą na tym mam potężną tabelę którą robię.

z góry dziekuje a odp.
Sephirus
To jest zbyt proste smile.gif W każdym kursie PHP w zasadzie piszą jak coś takiego zrobić.

1. Co rozumiesz przez nadpisywanie danych? Nvm - tak czy owak aby edytować dane potrzebujesz wykonać select (tak jak przy wyświetlaniu) dając w WHERE id konkretnego wiersza, który chcesz edytować. Id możesz przesłać w adresie poprzez GET.

  1. $query = "select * from produkty WHERE id = ".addslashes($_GET['id']);
  2. //...


Mając tablicę danych możesz wyświetlić formularz ale w taki sposób by wrzucić mu w inputy odpowiednie value np.:

  1. <input type="text" name="pole" value="<?php echo $tablica['pole']?>"/>


Dane z formularza wysyłasz POSTem na kolejny plik gdzie robisz update:

  1. // tu zabezpieczasz dane jak przy insert a potem:
  2.  
  3. $query = "UPDATE produkty SET pole1 = '{$pole1}', pole2 = '{$pole2}' WHERE id = {$id}


itd... itp... smile.gif
simoc007
sorry ale niezbyt rozumiem dopiro od poniedziałku bawię się w php i jestem po drobnym kursie online, ale tam niebyło takich rzeczy mi się troszkę śpieszy. Od godziny prudbuję zrobić tak jak napisałeś i same błędy;/ mugł byś mi przerobić te moje pliczki tak by działało? był bym wdzięczny... przepraszam, że tak o gotowca proszę z reguły sam do wszystkiego kursami dochodzę ale dziś mi się troszke śpieszy a niemoge sobie dć rady;/ chodzi oto żebym mógł za pomocą 1 formulaża wszystkie 3 zmienne zmienić (towar,ilość,czas). Mam małą nadzieje że pomożesz z góry dziękuję.

@dodano

Udało mi się zrobić co chciałem dziękuje za pomoc.
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.