Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] problemy początkującego,
Forum PHP.pl > Forum > Przedszkole
czesio
Przede wszystkim witam wszystkich serdecznie gdyż dopiero zaczynam na forum.php.pl smile.gif .
Panowie,
chcę ułatwić życie współpracownikom swojej firmy i w związku z tym próbuje zrobić arkusz który zbierałby dane od 10-13 użytkowników i zapisywał je do mysql.
Ogólny zarys prjektu jest nstępujący: Pracownicy uruchamiają stronę z formularzem, wybierają swoją nazwę uzytkownika oraaz bieżący miesiąc i wciskają przycisk 'wczytaj dane' a arkusz pobieże aktualnie zapisane dane w mysql. Pracownik codziennie uzupełnia dane dotyczące finansów i je zapisuje w mysql wciskając prycisk 'zapisz dane' . W polach w których nie będą wpisane żadne wartości muszą przyjąć wartość 0,00 . Na koniec miesiąca księgowa uruchomi arkusz który pobierze zsumowane dane z poszczególnych dni wszystkich pracowników. Na chwilę obecną udalo mi się zrobić zarys projektu, po wybraniu użytkownika (nazwa tabeli), miesiąca (baza danych) i wccisnięciu przycisku 'zapisz dane' w mysql tworzy się baza danych, tabela i kolumny . Jesli w pierwszym wierszu wpiszę jakieś wartości to czasem się zapiszą do mysql, a czasem nie (niewiem czemu ;/ ), do tego już zapisanyh wartości ie mogę nadpisać. Dodatkowo jeszcze przy uruchomieniu arkusza automatycznie wykonywane są plecenia mysql a chciałem by wykonywały się dpiero po wciśnieciu danych przycisków. Wiem że sporo mam jeszcze do zrobienia, ale mysql ucze się dopiero od 24h smile.gif , więc będę bardzo wdzięczny za wszelkie wskazówki jak rozwiązać moje problemy.
  1. <p></p>
  2.  
  3. <form method="POST">
  4.  
  5.  
  6. <select name="uzytkownik">
  7. <option></option>
  8. <option>uzytk1</option>
  9. <option>uzytk2</option>
  10. <option>uzytk3</option>
  11. <option>uzytk4</option>
  12. <option>uzytk5</option>
  13. <option>uzytk6</option>
  14. <option>uzytk7</option>
  15. <option>uzytk8</option>
  16. <option>uzytk9</option>
  17. <option>uzytk10</option>
  18.  
  19. </select>
  20.  
  21.  
  22. Nazwa użytkownika
  23.  
  24. <br>
  25. <select name="miesiac">
  26. <option></option>
  27. <option>lis112015</option>
  28. <option>gru122015</option>
  29. <option>sty012016</option>
  30. <option>lut022016</option>
  31. <option>mar032016</option>
  32. <option>kwi042016</option>
  33. <option>maj052016</option>
  34. <option>cze062016</option>
  35. <option>lip072016</option>
  36. <option>sie082016</option>
  37. <option>wrz092016</option>
  38. <option>paz102016</option>
  39. <option>lis112016</option>
  40. <option>gru122016</option>
  41. </select>
  42. Wybierz miesiąc
  43. <br>
  44. <button type="submit" name="wczytaj_d" value="">Wczytaj dane</button> <br>
  45. <input type="submit" name="zapisz_d" value="Zapisz dane do bazy">
  46.  
  47.  
  48.  
  49.  
  50.  
  51. <br><br>
  52.  
  53. <style type="text/css">
  54. .tftable {font-size:12px;color:#333333;width:50%;border-width: 1px;border-color: #9dcc7a;border-collapse: collapse;}
  55. .tftable th {font-size:12px;background-color:#abd28e;border-width: 1px;padding: 8px;border-style: solid;border-color: #9dcc7a;text-align:left;}
  56. .tftable tr {background-color:#ffffff;}
  57. .tftable td {font-size:12px;border-width: 1px;padding: 8px;border-style: solid;border-color: #9dcc7a;align:center}
  58. .tftable tr:hover {background-color:#ffff99;}
  59. </style>
  60.  
  61. <center><table class="tftable" border="1">
  62. <center><tr><th>Numer dnia</th><th>Wypłata</th><th>Zasilenie</th><th>liczba_towar</th></tr>
  63.  
  64.  
  65. <tr><td>01 </td> <td><input type="text" name="w1" /></td><td><input type="text" name="z1" /></td><td><input type="text" name="b1" /></td></tr>
  66. <tr><td>02 </td> <td><input type="text" name="w2" /></td><td><input type="text" name="z2" /></td><td><input type="text" name="b2" /></td></tr>
  67. <tr><td>03 </td> <td><input type="text" name="w3" /></td><td><input type="text" name="z3" /></td><td><input type="text" name="b3" /></td></tr>
  68. <tr><td>04 </td> <td><input type="text" name="w4" /></td><td><input type="text" name="z4" /></td><td><input type="text" name="b4" /></td></tr>
  69. <tr><td>05 </td> <td><input type="text" name="w5" /></td><td><input type="text" name="z5" /></td><td><input type="text" name="b5" /></td></tr>
  70. <tr><td>06 </td> <td><input type="text" name="w6" /></td><td><input type="text" name="z6" /></td><td><input type="text" name="b6" /></td></tr>
  71. <tr><td>07 </td> <td><input type="text" name="w7" /></td><td><input type="text" name="z7" /></td><td><input type="text" name="b7" /></td></tr>
  72. <tr><td>08 </td> <td><input type="text" name="w8" /></td><td><input type="text" name="z8" /></td><td><input type="text" name="b8" /></td></tr>
  73. <tr><td>09 </td> <td><input type="text" name="w9" /></td><td><input type="text" name="z9" /></td><td><input type="text" name="b9" /></td></tr>
  74. <tr><td>10 </td> <td><input type="text" name="w10" /></td><td><input type="text" name="z10" /></td><td><input type="text" name="b10" /></td></tr>
  75. <tr><td>11 </td> <td><input type="text" name="w11" /></td><td><input type="text" name="z11" /></td><td><input type="text" name="b11" /></td></tr>
  76. <tr><td>12 </td> <td><input type="text" name="w12" /></td><td><input type="text" name="z12" /></td><td><input type="text" name="b12" /></td></tr>
  77. <tr><td>13 </td> <td><input type="text" name="w13" /></td><td><input type="text" name="z13" /></td><td><input type="text" name="b13" /></td></tr>
  78. <tr><td>14 </td> <td><input type="text" name="w14" /></td><td><input type="text" name="z14" /></td><td><input type="text" name="b14" /></td></tr>
  79. <tr><td>15 </td> <td><input type="text" name="w15" /></td><td><input type="text" name="z15" /></td><td><input type="text" name="b15" /></td></tr>
  80. <tr><td>16 </td> <td><input type="text" name="w16" /></td><td><input type="text" name="z16" /></td><td><input type="text" name="b16" /></td></tr>
  81. <tr><td>17 </td> <td><input type="text" name="w17" /></td><td><input type="text" name="z17" /></td><td><input type="text" name="b17" /></td></tr>
  82. <tr><td> 18</td> <td><input type="text" name="w18" /></td><td><input type="text" name="z18" /></td><td><input type="text" name="b18" /></td></tr>
  83. <tr><td> 19</td> <td><input type="text" name="w19" /></td><td><input type="text" name="z19" /></td><td><input type="text" name="b19" /></td></tr>
  84. <tr><td>20 </td> <td><input type="text" name="w20" /></td><td><input type="text" name="z20" /></td><td><input type="text" name="b20" /></td></tr>
  85. <tr><td>21 </td> <td><input type="text" name="w21" /></td><td><input type="text" name="z21" /></td><td><input type="text" name="b21" /></td></tr>
  86. <tr><td>22 </td> <td><input type="text" name="w22" /></td><td><input type="text" name="z22" /></td><td><input type="text" name="b22" /></td></tr>
  87. <tr><td>23 </td> <td><input type="text" name="w23" /></td><td><input type="text" name="z23" /></td><td><input type="text" name="b23" /></td></tr>
  88. <tr><td>24 </td> <td><input type="text" name="w24" /></td><td><input type="text" name="z24" /></td><td><input type="text" name="b24" /></td></tr>
  89. <tr><td>25 </td> <td><input type="text" name="w25" /></td><td><input type="text" name="z25" /></td><td><input type="text" name="b25" /></td></tr>
  90. <tr><td>26 </td> <td><input type="text" name="w26" /></td><td><input type="text" name="z26" /></td><td><input type="text" name="b26" /></td></tr>
  91. <tr><td>27 </td> <td><input type="text" name="w27" /></td><td><input type="text" name="z27" /></td><td><input type="text" name="b27" /></td></tr>
  92. <tr><td>28 </td> <td><input type="text" name="w28" /></td><td><input type="text" name="z28" /></td><td><input type="text" name="b28" /></td></tr>
  93. <tr><td>29 </td> <td><input type="text" name="w29" /></td><td><input type="text" name="z29" /></td><td><input type="text" name="b29" /></td></tr>
  94. <tr><td>30 </td> <td><input type="text" name="w30" /></td><td><input type="text" name="z30" /></td><td><input type="text" name="b30" /></td></tr>
  95. <tr><td>31 </td> <td><input type="text" name="w31" /></td><td><input type="text" name="z31" /></td><td><input type="text" name="b31" /></td></tr>
  96. <tr><td>32 </td> <td><input type="text" name="w32" /></td><td><input type="text" name="z32" /></td><td><input type="text" name="b32" /></td></tr>
  97.  
  98.  
  99.  
  100. </center>
  101. </table></center>
  102. </form>
  103. <p></p>
  104.  
  105.  
  106.  
  107.  
  108. <?php
  109. $uzyt= $_POST["uzytkownik"];
  110. $baza= $_POST["miesiac"];
  111. $ww = $_POST["1w"];
  112.  
  113.  
  114. if(isset($_POST['zapisz_d']))
  115. {
  116. $con = mysql_connect("localhost","root","czesio");
  117. if (!$con)
  118. {
  119. // die(‘Nie można się połączyć: ' . mysql_error());
  120. }
  121.  
  122. // Tworzenie bazy danych
  123. if (mysql_query("CREATE DATABASE " . $baza ,$con))
  124. {
  125. echo " Baza danych utworzona ";
  126. }
  127. else
  128. {
  129. echo " Tworzenie bazy danych wystąpił błąd: " . mysql_error();
  130. }
  131. // Tworzenie tabeli
  132. mysql_select_db($baza , $con);
  133. $sql = "CREATE TABLE " . $uzyt . "(
  134. IDdnia int NOT NULL AUTO_INCREMENT,
  135. PRIMARY KEY(IDdnia),
  136. wyplata varchar(15),
  137. zasilenie varchar(15),
  138. liczba_tow varchar(15)
  139. )";
  140.  
  141. $wprow= "INSERT INTO " . $uzyt . " (IDdnia, wyplata, zasilenie, liczba_tow) VALUES ('','$_POST[w1]','$_POST[z1]','$_POST[b1]')";
  142.  
  143.  
  144.  
  145. $rs = Execute($wprow);
  146.  
  147. mysql_query($sql,$con);
  148.  
  149. mysql_query($sqll,$con);
  150. }
  151. ?>
  152.  
  153.  
kwojcik
W czym programujesz? Jakie IDE? Straszny bałagan tu panuje. CCS'a trzymaj w innym pliku.
Dodaj do <form metod="POST" action=""/>

Dalej mysql_connect("localhost","root", "" ,"czesio"); - ze puste hasło.

zamiast $wprow= "INSERT INTO " . $uzyt . " (IDdnia, wyplata, zasilenie, liczba_tow) VALUES ('','$_POST[w1]','$_POST[z1]','$_POST[b1]')";

zrób tak: $wprow= "INSERT INTO " . $uzyt . " (wyplata, zasilenie, liczba_tow) VALUES ('$_POST[w1]','$_POST[z1]','$_POST[b1]')";

to: $rs = Execute($wprow); - tywal to.
zrób: mysqli_query($wprow, $sql);
mysql_close($con);

tu masz błąd: mysql_query($sqll,$con); - sqll?
czesio
Dzięki za odp.
Bałagan panuje bo dopiero uczę się php i mysql. Poprawiłem już to co napisałeś.
Aktualnie walczę z tym by kod zapisania danych do mysql uruchamiał się dopiero po wcisnięciu przycisku a nie jak teraz przy włączeniu strony. Jakiś pomysł jak to naprawić questionmark.gif

//// Już to naprawiłem. Podpowie mi ktoś co zrobić by po kliknięciu w przycisk 'wczytaj_d' dane zostały pobrane z mysql i wyświetliły się w polach formularza questionmark.gif
kwojcik
W polach formularza? Czy w tabeli? Jak w tabeli to pętla while lub foreach możesz wyswietlić interesujace Cie dane oraz zrobić tabele. Chcesz to zrobić w nowym pliku czy w tem samym?
czesio
w polach formularza ale już sobie z tym poradziłem


Moje kolejne problemy to :
1. gdy wybiorę użytkownika, miesiąc i kliknę wczytaj to wszystko ładnie się wczyta ale nazwa miesiąca i uzytkownika znika (tj. pole się resetuje).
2. chcę ustawić by w polach texbox przyjmował tylko liczby oraz kropkę, szukam jak to zrobić.
3. no i przy uruchomieniu strony automatycznie wykonuje się kod php, a miał się wykonywać tylko po wciśnieciu "zapisz dane".

chciałem wysłać swój aktualny kod, ale jest za długi....

Cały dzień już przy tym siedzę.... ;/
kwojcik
Tak na szybko pytanie nr 3 bo nie mam czasu. Zainteresuj się pętla if(isset($_post['XXX'])) zeby php był wykonywany tlyko jak beda wprowadzone dane. Wklej kod
czesio
Problem nr 2 rozwiązałem, zastosowałem funkcję onkeyup.
Problemu nr 1 jeszcze nie potrafię naprawić, myślę żeby po wprowadzeniu danych i wciśnięciu przycisku wartość value tych dwóch pól wyboru przejała kolejno wartość zmiennej $baza i $uzyt , to by rozwiązało problem ale jeszcze mi to nie działa smile.gif .

if(isset($_post['XXX'])) już mam zastossowany a mimo to automatycznie się wykonują poleceniaa, pewnie jest to wina jakiegoś nawiasu albo cos w ten deseń, puki co szukam przyczyny.

chcąc odczytywać dane z mysql wprowadziłem szereg komend które teraz wywalają mi błędy gdy dana tabela nie istnieje. Koniecznie musisz zobaczyć to, bo z samego kodu duzo nie wynioskujesz.

tutaj kodu nie mogę wrzucić bo "post jest za długi". Wysłałem ci cały kod poprzez PW , dzięki kwojcik za pomoc.

wrzuciłem kod na hosting: http://sendfile.es/pobierz/542366---r3dz.html
Jakby ktoś miał trochę czasu, to proszę go sciągnąć, zmienic haslo root-a do mysql i zobaczyć jak to działa. problemy z którymi się borykam opisałem powyzej.
kwojcik
Cytat
chcąc odczytywać dane z mysql wprowadziłem szereg komend które teraz wywalają mi błędy gdy dana tabela nie istnieje. Koniecznie musisz zobaczyć to, bo z samego kodu duzo nie wynioskujesz.

Chcesz odczytać dane z nieistniejącej tabeli?
Nie moge sciągnąć tego pliku.
czesio
uruchom ink podany powyżej , poniżej bbcode 3 jest napis "Pobierz plik". Kliknij na niego a uruhomi się sciąganie pliku index.txt . zmien rozszerzenie pliku i po problemie.

Dokladnie tak jak napisałeś , komena próbowała pobrac dane z tabeli która nie istniała. Naprawiłem to ddaając kod który sprawdza czy tabela istnieje, jesli tak to pobiera dane, jesli nie to tworzy tabele.

Problem nr1 też naprawiłem.
Teraz szukam opisu jak wyświetlić zsumowane wartości pierwszych wierszy z różnych tabel (roznych uzytkowników). Np. Jan w dniu 01 wydał 400zł , Marcin 300zł . formułka ma pobierać te dane , je zsumować i wyświetlic.



// OK, poradziłem sobie już z wszystkimi problemami za wyjątkiego tego sumowanie wierszy z różnych tabel. JUż tłumaczę , kazda tabela to jeden użytkownik. uzytk1 w polu IDdnia1 , kolumna wypata wpisuje np. 300 . Użyt2 w tej samej pozycji ale swojej tabeli wpisuje 200. frmułka ma wyciągać sumę wiersza nr 1 kolumny wyplata szystkich użytkowników. Kombinuje jakoś wykorzystać tę formułę $result = mysql_query("select wypata from uzytk1 where IDdnia='1'");, ale mi puki co nie wychodzi. Jakies pomysły questionmark.gif?
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.