Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] dodawanie, usuwanie, edytowanie rekordów, problem z baza
asiab
post 10.01.2014, 23:38:40
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 10.01.2014

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


Witam. Jestem calkiem zielona z php. Mam zrobic stronke w php zeby wyswietlic baze danych ( zrobiona wczesniej na mysql.cba.pl ) , moc usuwac, dodawac i edytowac rekordy ( wszystko na jednej stronie) . Szukalam sporo na forum ale siedze na tym juz 12 godzine z rzedu i nie udaje mi sie. Napisalam kod na usuwanie i dodawanie. Osobno dzialaja idealnie. Ale jak je lacze na jednej stronie to usuwanie dziala ale dodawac moge tylko jeden rekord ( po dodaniu kolejnego ten poprzedni mi sie usuwa) . Prosze o pomoc ... Z góry dzieki wink.gif
  1. <html>
  2. <head>
  3. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">
  4. </head>
  5. <body>
  6.  
  7. <table>
  8.  
  9. <?php
  10. $link = mysql_connect("mysql.cba.pl:3306", "nazwa", "haslo")
  11. or die("Brak połączenia z mySQL");
  12.  
  13. mysql_select_db('nazwa_bazy', $link)
  14. or die("Brak połączenia z bazą");
  15.  
  16. $query = "SELECT * FROM baza";
  17. $wynik = mysql_query ($query);
  18.  
  19. if ($_POST['ID'] && $_POST['IMIE'] && $_POST['NAZWISKO'])
  20. {
  21. $sql = "INSERT INTO baza (ID,IMIE,NAZWISKO)VALUES ('" .$_POST['ID']. "' , '" .$_POST['IMIE']. "' , '" .$_POST['NAZWISKO']. "')";
  22. $wynik = mysql_query($sql);
  23.  
  24. }
  25. mysql_close($link);
  26.  
  27. echo '<FORM METHOD="POST">';
  28.  
  29. echo '<table>';
  30. echo '<tr><td>Dodaj nowy rekord</td></tr>';
  31. echo '<tr><td>ID:</td><td>IMIE:</td><td>NAZWISKO:</td></tr>';
  32. echo '<tr><td><INPUT TYPE="text" NAME="ID"></td><td><INPUT TYPE="text" NAME="IMIE"></td><td><INPUT TYPE="text" NAME="NAZWISKO"></td></tr>';
  33.  
  34.  
  35. echo '</table>';
  36. echo '<INPUT TYPE="submit" VALUE="Dodaj">';
  37.  
  38.  
  39.  
  40. echo '</FORM>';
  41.  
  42. ?>
  43.  
  44. <TABLE>
  45. <TR>
  46. <TD><STRONG>ID</STRONG></TD>
  47. <TD><STRONG>IMIE</STRONG></TD>
  48. <TD><STRONG>NAZWISKO</STRONG></TD>
  49. </TR>
  50. <?php
  51. $link = mysql_connect("mysql.cba.pl:3306", "nazwa", "haslo")
  52. or die("Brak połączenia z mySQL");
  53.  
  54. mysql_select_db("nazwa_bazy")
  55. or die("Brak połączenia z bazą");
  56.  
  57. $query = "SELECT * FROM baza";
  58. $wynik = mysql_query($query)
  59. or die("Brak połączenia");
  60.  
  61. while ($row = mysql_fetch_array($wynik)) {
  62. echo "<TR>
  63. <TD>".$row["ID"]."</TD>
  64. <TD>".$row["IMIE"]."</TD>
  65. <TD>".$row["NAZWISKO"]."</TD>
  66. </TR>\n";
  67. }
  68. mysql_close($link);
  69. ?>
  70. </TABLE>
  71.  
  72. <?php
  73.  
  74. $link = mysql_connect("mysql.cba.pl:3306", "nazwa", "haslo")
  75. or die("Brak połączenia z mySQL");
  76.  
  77. mysql_select_db('nazwa_bazy', $link)
  78. or die("Brak połączenia z bazą");
  79.  
  80.  
  81. $result=mysql_query('SELECT * FROM baza');
  82. mysql_query('DELETE FROM baza WHERE ID='.$_POST['ID']);
  83. mysql_close($link);
  84.  
  85. echo('<form method="post">');
  86. echo('<input type="text" name="ID" value="Usun rekord">');
  87. echo '<input type="submit" VALUE="Usun">';
  88. echo('</form>');
  89.  
  90. ?>
  91.  
  92. </body>
  93. </html>


Ten post edytował Kshyhoo 11.01.2014, 10:08:07
Powód edycji: [Kshyhoo]: dodałem tagi, bb-code
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
kujol
post 11.01.2014, 08:27:18
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Po pierwsze ten kod nic tu nie wnosi a po drogie masz dla każdego rekordu id w bazie?


--------------------
;)
Go to the top of the page
+Quote Post
Kshyhoo
post 11.01.2014, 10:23:42
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Podziel skrypt na moduły w instrukcji IF lub SWITCH a zmienną potrzebną do przełączania przekazuj w linku. Czyli:
  1. <a hreh="index.php?co_robic"=edytuj>EDYTUJ</a> <a hreh="index.php?co_robic=usun">USUŃ</a> // itd...
  2. ...
  3. $co_robic = $_GET["co_robic"];
  4. ...
  5. if ($co_robic="dodaj") {
  6. // tu kod dodawania
  7. } else if ($co_robic="usun") {
  8. // tu kod usuwania
  9. } else if ($co_robic="edytuj") {
  10. // tu kod edytowania
  11. } esle {
  12. // tu tylko pokaż
  13. }

Oczywiście to tylko zarys skryptu. Nie napiszę Ci wszystkiego co i jak, bo przecież masz się nauczyć a nie dostać gotowca smile.gif


--------------------
Go to the top of the page
+Quote Post
YourFrog
post 11.01.2014, 12:31:52
Post #4





Grupa: Zarejestrowani
Postów: 124
Pomógł: 22
Dołączył: 10.01.2014

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


@Kshyhoo
Nie podawaj jej takich rozwiązań bo się tak nauczy i później będzie tak robiła. A za 2-3 tygodnie rozrośnie jej się za bardzo plik. Jak się uczy totalnie od zera to lepiej żeby wykorzystała prostą fabrykę bo nawet jeżeli jej nie do końca zrozumie to chociaż będzie miała porządek w kodzie i łatwiej jej się będzie programowało..

@topic
Poniżej zamieszczam kod. Gdy w adresie url podasz adres "index.php" to odpali się metoda IndexController->indexAction(), natomiast dla adresu "index.php?action=delete" odpali się metoda DeleteController->indexAction(). W przypadku podania zupełnie błędnych danych w adresie url odpali się metoda jak przy odwołaniu "index.php".

Oczywiście można ten kod rozbić na poszczególne pliki i utworzyć plik autoloader'a dzięki czemu pozbyjesz się 90% instrukcji warunkowych w swoim kodzie tongue.gif
  1. <?php
  2.  
  3. /**
  4.  * Klasa uruchamiająca odpowiedni kontroller :)
  5.  */
  6. class Factory
  7. {
  8. static public function run($action)
  9. {
  10. $controller = self::getControllerName($action);
  11.  
  12. if( class_exists($controller, true) )
  13. $obj = new $controller();
  14. else
  15. $obj = new IndexController();
  16.  
  17. $obj->indexAction();
  18. }
  19.  
  20. static protected function getControllerName($action)
  21. {
  22. return $action . 'Controller';
  23. }
  24. }
  25.  
  26. /**
  27.  * Interfejs dla kontrollerów
  28.  */
  29. interface Controller
  30. {
  31. public function indexAction();
  32. }
  33.  
  34. /**
  35.  * Podstawowa obsługa, wykona się w przypadku podania nie prawidłowego kontrollera w zmiennej $_GET['action']
  36.  */
  37. class IndexController implements Controller
  38. {
  39. public function indexAction()
  40. {
  41. //Standardowa strona
  42. echo 'index';
  43. }
  44. }
  45.  
  46. /**
  47.  * Obsługa dodawania danych
  48.  */
  49. class InsertController implements Controller
  50. {
  51. public function indexAction()
  52. {
  53. //Strona służąca do dodania
  54. echo 'insert';
  55. }
  56. }
  57.  
  58. /**
  59.  * Obsługa usuwania danych
  60.  */
  61. class DeleteController implements Controller
  62. {
  63. public function indexAction()
  64. {
  65. //Strona służąca do usuwania
  66. echo 'delete';
  67. }
  68. }
  69.  
  70. /**
  71.  * Obsługa aktualizowania danych
  72.  */
  73. class UpdateController implements Controller
  74. {
  75. public function indexAction()
  76. {
  77. //Strona służąca do aktualizowania
  78. echo 'update';
  79. }
  80. }
  81.  
  82. //Wywołanie
  83. if( !isset($_GET['action']) )
  84. $_GET['action'] = 'index';
  85.  
  86. Factory::run($_GET['action']); //Przykładowy link localhost/index.php?action=insert << Dla kontrollera InsertController


Ten post edytował YourFrog 11.01.2014, 12:36:13
Go to the top of the page
+Quote Post
Kshyhoo
post 11.01.2014, 12:35:07
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przecież jest początkująca a Ty jej z obiektówką wyjeżdżasz?


--------------------
Go to the top of the page
+Quote Post
YourFrog
post 11.01.2014, 12:38:42
Post #6





Grupa: Zarejestrowani
Postów: 124
Pomógł: 22
Dołączył: 10.01.2014

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


I co z tego że początkująca ? W javie musiała by się obiektów od samego początku uczyć. Ma błąd bo ma bałagan w kodzie który u początkujących jest normalną rzeczą. Dlatego jak ich uczymy robienia sobie porządku to zróbmy to wmiarę dobrze. Nawet jeżeli nie do końca to zrozumie to będzie mogła tego używać jak przysłowiowa małpa (ja tak na początku programowałem tongue.gif).
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:02