Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Przycisk na stronie wprowadzajacy date do tabeli
Forum PHP.pl > Forum > Przedszkole
skonec
Witam

Chce zrobic prosta strone z baza SQL aby moc kontrolowac moich pracownikow. Na stronie mamy do wyboru co zaczyna robic, jaki produktm jaka praca z nim zwiazana oraz czas rozpoczecia tej pracy.
Dane te zostaja wyswietlone oraz przycisk "Zakonczone", ktory to ma wprowadzac date zakonczenia dla danego produktu:

Oto moj kod:
* tijd aan- czas start
*tijd uit - czas stop
  1. <?php
  2.  
  3. $product = $_POST['product'];
  4. $balk = $_POST['balk'];
  5. $arbeid = $_POST['arbeid'];
  6. $aantal = $_POST['aantal'];
  7.  
  8. // łączymy się z bazą danych
  9. $connection = @mysql_connect('localhost', 'root', 'Haslo')
  10. or die('Brak połączenia z serwerem MySQL');
  11. $db = @mysql_select_db('patryk', $connection)
  12. or die('Nie mogę połączyć się z bazą danych');
  13.  
  14. if ($product !=0) $ins = @mysql_query("INSERT INTO dane SET product='$product', balk='$balk', arbeid='$arbeid', aantal='$aantal', tijd_aan=NOW()");
  15.  
  16. $query_tijd_uit=("select id, product, balk, arbeid, tijd_aan from dane where tijd_uit is NULL;") or die ("error select");
  17. $result_tijd_uit=mysql_query($query_tijd_uit);
  18. $temp_tijd_uit=mysql_result($result_tijd_uit);
  19.  
  20. echo "<table cellpadding=\"4\" border=2>";
  21. echo "<tr>";
  22. echo "<th>" .'id'. "</th>";
  23. echo "<th>" .'Product'. "</th>";
  24. echo "<th>" .'Balk'. "</th>";
  25. echo "<th>" .'Arbeid'. "</th>";
  26. echo "<th>" .'Tijd ann'. "</th>";
  27.  
  28. echo "</tr>";
  29. while($r = mysql_fetch_assoc($result_tijd_uit)) {
  30. echo "<tr>";
  31.  
  32. echo "<td>" .$r['id']. "</td>";
  33. echo "<td>".$r['product']."</td>";
  34. echo "<td>".$r['balk']."</td>";
  35. echo "<td>".$r['arbeid']."</td>";
  36. echo "<td>".$r['tijd_aan']."</td>";
  37.  
  38. ?>


po kolumnie Tijd aan chce dodac Tijd uit (czas zakonczenia) z przyciskiem, ktory doda czas zakonczenia do odpowiedniego 'id'
mecze sie z tym juz 3 dni, google tez nie pomoglo.

Prosze pomozcie jak do dokonczyc.
Z gory serdecznie dziekuje
pozdrawiam
skonec
Kshyhoo
1. usuń wszelkie @, bo tłumią wyświetlanie błędów.
2. włącz wyświetlanie błędów, np. na początku kodu:
  1. ini_set( 'display_errors', 'on' );
  2. error_reporting( E_ALL );

3. żeby dodać coś do bazy, najlepiej dodać to przez formularz, czego brakuje w Twoim kodzie.
4. MySQL to przeżytek, najlepiej użyj PDO ew. MySQLi.

PS. Używaj właściwego bb-code do kodu PHP.
skonec
dziekuje za szybka reakcje

faktycznie bede uzywal bb-code, o wiele czytelniej wyglada

wyswietlanie bledow mam w calym kodzie
mam tez wprowadzanie do bazy przez formularze- to juz opanowalem smile.gif

mecze sie teraz z ta tabela i dodaniem do niej przycisku ktory wprowadzi czas ukonczenia dla danego id
to juz jest dla mnie zbyt trudne ;/
Kshyhoo
Nie wiem, czy masz formularz, bo w Twoim kodzie go nie ma. Z formularza musisz przekazać ID zakończonej operacji i przy pomocy WHERE id=$id zapisać w bazie. Innymi słowy, tam gdzie masz "Zakonczone" musisz przekazać ID tejże czynności.
skonec
Cytat(Kshyhoo @ 10.12.2016, 16:14:41 ) *
Nie wiem, czy masz formularz, bo w Twoim kodzie go nie ma. Z formularza musisz przekazać ID zakończonej operacji i przy pomocy WHERE id=$id zapisać w bazie. Innymi słowy, tam gdzie masz "Zakonczone" musisz przekazać ID tejże czynności.


Myslalem o czyms takim na zakonczeniu kodu, ktory wczesniej podalem:

  1. echo "<td>".'<input type="button" value="Gotowe!!" onclick="@mysql_query("INSERT INTO dane set tijd_uit=NOW() where id='$r['id]''")">'."</td>";


ale to nie dziala, nie rozumie co robie zle ;/
Kshyhoo
Nie musisz cytować każdej mojej wypowiedzi.
Kod musi być uniwersalny, więc Twoje rozwiązanie jest złe. Przecież nie będziesz dodawał osobnego zapytania do każdej czynności - tym bardziej, że JS jest widoczny w kodzie strony, co stanowi niejako zaproszenie do modyfikacji przez nieuprawnionych. To powinno być na zasadzie:
  1. <input type="hidden" name="id" value="<?php echo $id?>;

gdzie przekażesz ID czynności do zakończenia. Potem odbierasz, wrzucasz w zapytanie i do bazy.
skonec
wczoraj wlaczylem do pozna w nocy, nie opanowalem

tu jest moj caly kod, prosze pomozcie jak to zrobic

  1. <head>
  2. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  3. <title>FHS produktie</title>
  4. body {font-family: arial;}
  5. td {text-align: center;}
  6. </style>
  7. <style type="text/css">
  8. th {background: #555;color: #FFF;}
  9. tr:nth-child(odd) {background: #CCC;}
  10. tr:nth-child(even) {background: #EFEFEF;}
  11. </style>
  12. <link rel="stylesheet" type="text/css" href="./temp.css" />
  13. </head>
  14. <body>
  15.  
  16.  
  17. <br />
  18. <br /><br />
  19. <form action="werkcon.php" method="post">
  20. product:
  21. <select name="product">
  22.  
  23. <option>2gr basic</option>
  24. <option>3gr basic</option>
  25. <option>4gr basic</option>
  26. <option>5gr basic</option>
  27. <option>6gr basic</option>
  28. <option>7gr ultra</option>
  29. <option>8gr ultra</option>
  30. <option>9gr ultra</option>
  31.  
  32. </select>
  33. <br />
  34. balk:
  35. <select name="balk">
  36. <option>onderbalk</option>
  37. <option>bovenbalk</option>
  38.  
  39. </select>
  40. <br />
  41. arbeid:
  42. <select name="arbeid">
  43. <option>zaggen</option>
  44. <option>ponsen</option>
  45. <option>vloeiboren</option>
  46. <option>tappen</option>
  47.  
  48. </select>
  49. <br />
  50. aantal:
  51. <input type="text" name="aantal" /><br />
  52. <br />
  53. <input type="submit" value="toevoegen" /> <br /> <br />
  54. </form>
  55.  
  56.  
  57. <?php
  58.  
  59. $product = $_POST['product'];
  60. $balk = $_POST['balk'];
  61. $arbeid = $_POST['arbeid'];
  62. $aantal = $_POST['aantal'];
  63.  
  64. // łączymy się z bazą danych
  65. $connection = @mysql_connect('localhost', 'root', 'HASLO')
  66. or die('Brak połączenia z serwerem MySQL');
  67. $db = @mysql_select_db('patryk', $connection)
  68. or die('Nie mogę połączyć się z bazą danych');
  69.  
  70.  
  71. if ($product !=0) $ins = @mysql_query("INSERT INTO dane SET product='$product', balk='$balk', arbeid='$arbeid', aantal='$aantal', tijd_aan=NOW()");
  72.  
  73. $query_tijd_uit=("select id, product, balk, arbeid, tijd_aan from dane where tijd_uit is NULL;") or die ("error select");
  74. $result_tijd_uit=mysql_query($query_tijd_uit);
  75. $temp_tijd_uit=mysql_result($result_tijd_uit);
  76.  
  77. function klik()
  78. {
  79.  
  80. $tijd_klaar = @mysql_query("INSERT INTO dane set tijd_uit=NOW()");
  81. return true;
  82. }
  83.  
  84.  
  85. echo "<table cellpadding=\"4\" border=2>";
  86. echo "<tr>";
  87. echo "<th>" .'id'. "</th>";
  88. echo "<th>" .'Product'. "</th>";
  89. echo "<th>" .'Balk'. "</th>";
  90. echo "<th>" .'Arbeid'. "</th>";
  91. echo "<th>" .'Tijd ann'. "</th>";
  92.  
  93. echo "</tr>";
  94. while($r = mysql_fetch_assoc($result_tijd_uit)) {
  95. echo "<tr>";
  96.  
  97. echo "<td>" .$r['id']. "</td>";
  98. echo "<td>".$r['product']."</td>";
  99. echo "<td>".$r['balk']."</td>";
  100. echo "<td>".$r['arbeid']."</td>";
  101. echo "<td>".$r['tijd_aan']."</td>";
  102.  
  103. ******** echo "<td>".'<input type="submit" value="KLAAR" onclick="return klik();" />'."</td>";
  104.  
  105.  
  106. echo "</tr>";
  107. }
  108. echo "</table>";
  109.  
  110.  
  111. ?>
  112.  
  113. <br />
  114.  
  115.  
  116. </center>
  117. </body>
  118. </html>
  119.  


jak zmodyfikowac linijke z ******* aby po kliknieciu dodac czas zakonczenia odpowiednio do danego ID. Funkcja klik() dodaje tylko czas, ale nie do danego ID

raz jeszcze dziekuje za pomoc
pozdrawiam

P.S. prosze o wyrozumialosc za kod, jestem naprawde poczatkujacy biggrin.gif
Boshi
Zacznij od PDO i bindowaniu parametrów a nie brnij w ten kod dalej.
skonec
nawet nie wiem co to znaczy...
to ma byc strona dla 3pc bez dosteu do internetu, tylko lokalnie wszystko

na to co osiagnalem dzieki google jestem zadowolony, dziala to co mialem osiagnac

potrzebuje tylko ostatniego elementu i bede zadowolony, nie jestem programista
viking
Na Kliknięcie musisz wykonać zapytanie update... Where id=twoje id i tyle. Tylko musisz je wykonać po stronie php a nie js które działa w przeglądarce.
skonec
Cytat(viking @ 11.12.2016, 13:45:20 ) *
Na Kliknięcie musisz wykonać zapytanie update...


no wlasnie, ale jak to zrobic... caly dzien juz siedcze i nic ;/
viking
Onclick wywoluje funkcję js a u Ciebie jest to funkcja PHP. Nie mają ze sobą nic wspólnego. Wyślij normalnie formularz i w nim wywołaj.
skonec
przepraszam Panowie dalej nie rozumie

czy moglby mi ktos dopisac to co mi brakuje, ciagle kombinuje ale nic z tego ;/

raz jeszcze dzikeuje za pomoc
Kshyhoo
Najprostszy przykład.
skonec
tak ja to wiem, jest nawet ten przyklad w moim kodzie.

ale jak dodac w tej tabel, na koncu przycisk typu submit, ktory zapisuje wartosc ktora nie zostala wproadzona- czyli NOW()- taka wartosc chce dodac do sql- jako' tijd_uit '

juz sie dowiedzialem ze onclick tu nie zadziala, ale na co zmienic, nie mam pojecia

dalej sie nad tym glowie ....


P.S. ciezki jestem nie?? biggrin.gif

JEST!! uporalem sie z tym, ale nie do konca. teraz dodaje mi tijd_uit do wszystkiego ;/
nie wiem jak
  1. $t=$r['id']

ustawic do jednego id tam gdzie zostal przycisk wcisniety ;(

oto co poprawilem:

  1. echo "<table cellpadding=\"4\" border=2>";
  2. echo "<tr>";
  3. echo "<th>" .'id'. "</th>";
  4. echo "<th>" .'Product'. "</th>";
  5. echo "<th>" .'Balk'. "</th>";
  6. echo "<th>" .'Arbeid'. "</th>";
  7. echo "<th>" .'Aantal'. "</th>";
  8. echo "<th>" .'Tijd ann'. "</th>";
  9.  
  10. echo "</tr>";
  11. while($r = mysql_fetch_assoc($result_tijd_uit)) {
  12. echo "<tr>";
  13.  
  14. echo "<td>" .$r['id']. "</td>";
  15. echo "<td>".$r['product']."</td>";
  16. echo "<td>".$r['balk']."</td>";
  17. echo "<td>".$r['arbeid']."</td>";
  18. echo "<td>".$r['aantal']."</td>";
  19. echo "<td>".$r['tijd_aan']."</td>";
  20.  
  21. echo "<td>".'<form action="werkcon.php" method="post"> <input type="submit" name="tijd_klaar" value="KLAAR" /> </form>'."</td>";
  22. $t=$r['id'];
  23. if (isset($_POST['tijd_klaar']))
  24. {
  25. $tijd_klaar=@mysql_query("update dane set tijd_uit=NOW() where id='$t'");
  26. }
  27. echo "</tr>";
  28. }
  29.  
  30.  
  31. echo "</table>";


ponownie dziekuje za wszelka 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.