Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Łączenie z bazą danych i wyświetlanie danych., Zadanie do szkoły z baz danych.
rikoooo1234
post 1.06.2017, 18:24:17
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Witam. Proszę was o pomoc. Otóż orzełkiem z przedmiotów informatycznych nie jestem, a chcę już do tej 4 klasy zdać i skończyć szkołę średnią do końca. Otrzymaliśmy zadanie, gdzie mamy stworzyć aplikację internetową Budżet domowy. Chodzi o to, że mają się tam znaleźć koszty rachunków(prąd, woda, jedzenie), statystyki domowników(ile kto wydaje pieniędzy) i statystyki ogólne, ile pieniędzy schodzi na to wszystko. W bazie w phpmyadmin wpisane w tabele wartości mają się po prostu wyświetlać w wybranych miejscach. Próbowałem oglądać poradniki w internecie, cokolwiek ale jak krew w piach. Skrypty na pewno nie są dla mnie i nie chce się tym zajmować. Ogarnąłem sobie to wszystko mniej więcej w html i cssie, bo to akurat dużym problemem nie jest. Jednak PHP i bazy danych to dla mnie zupełne science fiction. Prosiłbym o jakieś wskazówki lub gotowe skrypty, jeśli takie istnieją, bo szczerze mówiąc nawet nie wiem od czego zacząć w tej kwestii i w jakiej kolejności to robić. Tutaj podsyłam link z serwera z kodem w html i css. Z tego też kuleje, no ale grunt, że się staram:

http://37.8.214.76/~d14.meczynski.adam/rze...udzet%20domowy/
Go to the top of the page
+Quote Post
nospor
post 1.06.2017, 18:30:09
Post #2





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Pozwol, ze zapytam, bo nie ogarniam, ale co ty robiles na lekcjach informatyki, gdzie zapewne wszystko to bylo omawiane?

Generalnie prac domowych nie odrabiamy, ale ze cos tam zrobiles, i prosisz o pomoc a nie gotowca, to temat zostaje otwarty.
Jedyne co zrobie to przeniose do wlasciwego dzialu


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

"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
rikoooo1234
post 1.06.2017, 18:35:04
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Sorry, ale czego w szkole się nauczysz? Nie wiem, jak jest w innych szkołach, ale u nas wygląda to tak, że Pan coś niby tłumaczy, ale tak tłumaczy, że każdy gówno za przeproszeniem rozumie. Pisze skrypt sam, wyświetla na tablicy i pod koniec lekcji każdy po prostu przepisuje. W szkole mogę się założyć, że ciężko z nauczeniem się czegoś. Jak już to jakieś ewentualnie dodatkowe kursy, czy coś w tym stylu. U nas w klasie jest tylko 1 gościu, co ogarnia to wszysko, no ale widać że się tym fascynuje. To zupełnie nie moja broszka. Jeśli informatyka, to na pewno inna specjalizacja. Proszę was tylko o pomoc. Od czego zacząć, jak to w ogóle zrobić. Moim założeniem jest po prostu już dokończenie tej szkoły i tyle, no bo teraz nie opłaca mi się z tego wszystkiego rezygnować. Myślę, że to zrozumiecie.
Go to the top of the page
+Quote Post
leonpro778
post 2.06.2017, 08:04:50
Post #4





Grupa: Zarejestrowani
Postów: 146
Pomógł: 19
Dołączył: 1.03.2012

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


Rozumieć to myślę, że każdy zrozumie. Nie napisałeś tylko na jakiej bazie danych operujecie. Ponieważ jest to szkoła to nie zakładam żebyście korzystali z PDO smile.gif Zakładam, że dalej korzystacie z MySQL:


  1. <?php
  2. $sql = mysql_connect('host', 'login', 'haslo');
  3. $query = mysql_query("SELECT woda, zywnosc, prad FROM liczniki WHERE id_rodzina='1'");
  4. $result = mysql_fetch_assoc($query);
  5. $woda = $result['woda'];
  6. $zywnosc = $result['zywnosc'];
  7. $prad = $result['prad'];
  8. ?>


Pisane z pamięci (po staremu) i z pewnymi założeniami bowiem nie znam struktury tabeli.
Go to the top of the page
+Quote Post
rikoooo1234
post 2.06.2017, 14:13:35
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Aha i ten podany skrypt, to jest połączenie z bazą danych i wyciągnięcie z niej wartości? Pozniej po prostu wyświetlam sobie dane wpisując po prostu echo jakaś zmienna?
Go to the top of the page
+Quote Post
leonpro778
post 2.06.2017, 21:42:47
Post #6





Grupa: Zarejestrowani
Postów: 146
Pomógł: 19
Dołączył: 1.03.2012

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


Dokładnie
Go to the top of the page
+Quote Post
rikoooo1234
post 3.06.2017, 14:17:18
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Pojawia się coś takiego:

http://37.8.214.76/~d14.meczynski.adam/rze...mowy/order1.php

kod wygląda tak:
  1. <?php
  2. $sql = mysql_connect('localhost', 'd14_2f2732', 'stress123', 'd14_meczynski_adam');
  3. $query = mysql_query("SELECT woda FROM liczniki WHERE miesiac='styczen'");
  4. $result = mysql_fetch_assoc($query);
  5. $woda = $result['woda'];
  6. $zywnosc = $result['zywnosc'];
  7. $prad = $result['prad'];
  8. ?>
  9.  
  10. <?php
  11.  
  12. echo "<h1>$woda</h1>";
  13.  
  14. ?>
  15. </div>
  16.  


Co tu może być nie tak?



Dobra przemieniłem troche kod, który jest innym sposobem na łączenie i zadziałało, ale mam teraz kolejny problem, bo zmienna $woda nie wyświetla liczby, którą ma wyświetlać z tabeli, w której już ta liczba jest.
  1.  
  2. <?php
  3.  
  4. function lacz_db()
  5. {
  6. $wynik = @new mysqli('localhost', 'd14_2f2732', 'stress123', 'd14_meczynski_adam');
  7. }
  8. function SelectWoda()
  9. {
  10. $lacz = lacz_db();
  11. $d = '';
  12. $wynik = $lacz ->query('select woda from liczniki where miesiac="styczen"');
  13. $result = mysql_fetch_assoc($wynik);
  14.  
  15.  
  16. $woda = $result ['woda'];
  17. }
  18. ?>
  19. <?php
  20.  
  21. echo '<h1>$woda</h1>';
  22.  
  23. ?>
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  

Go to the top of the page
+Quote Post
Niree
post 3.06.2017, 20:55:16
Post #8





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


Sprawdź:
  1. <?php
  2. $db = @new mysqli('localhost', 'd14_2f2732', 'stress123', 'd14_meczynski_adam');
  3.  
  4. function SelectWoda($miesiac)
  5. {
  6. global $db;
  7. $wynik = $db->query('select `woda`,`miesiac` from `liczniki` where `miesiac`="'.$miesiac.'"');
  8. $result = mysql_fetch_assoc($wynik);
  9.  
  10. return $woda = $result['woda'];
  11. }
  12.  
  13. echo '<h1>'.SelectWoda('styczen').'</h1>';
  14. ?>


Ten post edytował Niree 3.06.2017, 20:57:13
Go to the top of the page
+Quote Post
rikoooo1234
post 3.06.2017, 22:19:41
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Warning: mysql_fetch_assoc() expects parameter 1 to be resource, object given in /home/d14.meczynski.adam/public_html/rzeczy/php/budzet/budzet domowy/order1.php on line 106
Styczeń .SelectWoda('styczen'). PLN
Luty PLN
Marzec PLN
Kwiecień PLN
Maj PLN


teraz to już w ogóle błąd wywala ;/ Ciągle jak jest błąd to coś z tym fetch_assoc ;/

  1. <?php
  2.  
  3. $db = @new mysqli('localhost', 'd14_2f2732', 'stress123', 'd14_meczynski_adam');
  4.  
  5. function SelectWoda($miesiac)
  6. {
  7. global $db;
  8. $wynik = $db->query('select `woda`,`miesiac` from `liczniki` where `miesiac`="'.$miesiac.'"');
  9. $result = mysql_fetch_assoc($wynik);
  10.  
  11. return $woda = $result['woda'];
  12. }
  13.  
  14. echo '<h1>'.SelectWoda('styczen').'</h1>';
  15. ?>
  16.  
  17. <?php
  18. echo '<table border="1" cellpadding="10" cellspacing="0">';
  19. echo"<tr>
  20. <td><b>Styczeń</b></td><td>.SelectWoda('styczen'). PLN</td>
  21. </tr>
  22. <tr>
  23. <td><b>Luty</b></td><td> PLN</td>
  24. </tr>
  25. <tr>
  26. <td><b>Marzec</b></td><td> PLN</td>
  27. </tr>
  28. <tr>
  29. <td><b>Kwiecień</b></td><td> PLN</td>
  30. </tr>
  31. <tr>
  32. <td><b>Maj</b></td><td> PLN</td>
  33. </tr>
  34. </table>";
  35. ?>





Notice: Undefined variable: woda in /home/d14.meczynski.adam/public_html/rzeczy/php/budzet/budzet domowy/order1.php on line 131
  1. <?php
  2.  
  3. $db = @new mysqli('localhost', 'd14_2f2732', 'stress123', 'd14_meczynski_adam');
  4.  
  5. function SelectWoda($miesiac)
  6. {
  7. global $db;
  8. $wynik = $db->query('select `woda`,`miesiac` from `liczniki` where `miesiac`="'.$miesiac.'"');
  9. $result = mysql_fetch_assoc($wynik);
  10.  
  11. return $woda = $result['woda'];
  12. }
  13.  
  14. echo '<h1>'.SelectWoda('styczen').'</h1>';
  15. ?>
  16.  
  17. <?php
  18. echo '<table border="1" cellpadding="10" cellspacing="0">';
  19. echo"<tr>
  20. <td><b>Styczeń</b></td><td> $woda PLN</td>
  21. </tr>
  22. <tr>
  23. <td><b>Luty</b></td><td> PLN</td>
  24. </tr>
  25. <tr>
  26. <td><b>Marzec</b></td><td> PLN</td>
  27. </tr>
  28. <tr>
  29. <td><b>Kwiecień</b></td><td> PLN</td>
  30. </tr>
  31. <tr>
  32. <td><b>Maj</b></td><td> PLN</td>
  33. </tr>
  34. </table>";
  35. ?>


Go to the top of the page
+Quote Post
patwoj98
post 4.06.2017, 13:35:51
Post #10





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


Spróbuj zamienić linijkę 10 na:
  1. $result = mysqli_fetch_assoc($wynik);


lub jeśli nie pomoże to:

  1. $result = $wynik->fetch_assoc();
Go to the top of the page
+Quote Post
rikoooo1234
post 4.06.2017, 16:53:26
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Fatal error
Go to the top of the page
+Quote Post
patwoj98
post 4.06.2017, 19:13:07
Post #12





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


Cytat(rikoooo1234 @ 4.06.2017, 17:53:26 ) *
Fatal error


A można Cię prosić, abyś podał konkretnie co tam się znajduje? Bo Fatal Error ma to do siebie, że pokazuje co jest nie tak.
Go to the top of the page
+Quote Post
rikoooo1234
post 4.06.2017, 19:58:19
Post #13





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /home/d14.meczynski.adam/public_html/rzeczy/php/budzet/budzet domowy/order1.php on line 106

Notice: Undefined variable: woda in /home/d14.meczynski.adam/public_html/rzeczy/php/budzet/budzet domowy/order1.php on line 130

Zmieniłem coś i już fatal erroru nie ma, ale jest coś takiego. Wyślę cały kod, może łatwiej wam będzie rozwiązać ten problem. bez styli
  1. <body>
  2.  
  3. <div id="head">
  4. <form action="zaloguj.php" method="post">
  5. <p> Aplikacja Budżet domowy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="kategorie.php" style="text-decoration: none; color:white;"><i class="icon-menu" title="Kategorie" name="menu"></i></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="domownicy.php" style="text-decoration: none; color:white;"><i class="icon-user" title="Domownicy" name="domownicy"></i></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="stats.php" style="text-decoration: none; color:white;"><i class="icon-chart-bar" title="Statystyki" name="stats"></i></a> </p>
  6. </form>
  7. </div>
  8. <div id="content">
  9. <?php
  10.  
  11. $db = @new mysqli('localhost', 'd14_2f2732', 'stress123', 'd14_meczynski_adam');
  12.  
  13. function SelectWoda($miesiac)
  14. {
  15. global $db;
  16. $wynik = $db->query('select `woda` from `liczniki` where `miesiac`=styczen');
  17. $result = mysqli_fetch_assoc($wynik);
  18. return $woda = $result['woda'];
  19. }
  20.  
  21. echo '<h1>'.SelectWoda('styczen').'</h1>';
  22. ?>
  23.  
  24. <?php
  25. echo '<table border="1" cellpadding="10" cellspacing="0">';
  26. echo"<tr>
  27. <td><b>Styczeń</b></td><td> $woda PLN</td>
  28. </tr>
  29. <tr>
  30. <td><b>Luty</b></td><td> PLN</td>
  31. </tr>
  32. <tr>
  33. <td><b>Marzec</b></td><td> PLN</td>
  34. </tr>
  35. <tr>
  36. <td><b>Kwiecień</b></td><td> PLN</td>
  37. </tr>
  38. <tr>
  39. <td><b>Maj</b></td><td> PLN</td>
  40. </tr>
  41. </table>";
  42. ?>
  43. </div>
  44. <div class="footer">
  45. &copy; Copyright Adam Męczyński 2017
  46. </div>
  47. </body>
  48. </html>



Podsyłam też screena jak wyglada tabelka w phpmyadmin, może po tej stronie leży błąd.

http://ifotos.pl/zobacz/afgagpng_aqeaeqn.png

Go to the top of the page
+Quote Post
patwoj98
post 4.06.2017, 20:13:16
Post #14





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


A wiesz, że powinieneś stringi otaczać apostrofem w SQL?
Popraw 17 linijkę
  1. $wynik = $db->query('select `woda` from `liczniki` where `miesiac`=styczen');


na
  1. $wynik = $db->query("select `woda` from `liczniki` where `miesiac`='styczen'");

I podaj czy działa.
Jak nadal błąd to wyświetl
  1. var_dump($wynik);
zaraz po zapytaniu.
Go to the top of the page
+Quote Post
rikoooo1234
post 4.06.2017, 20:40:58
Post #15





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 1.06.2017

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


Dzięki wielkie stary, teraz działa! biggrin.gif

Jeszcze takie jedno małe pytanko. Ja zapisałem to w taki widzę, że dosyć niekonwencjonalny sposób, a przy takim zapisie i większej tabeli, gdzie mam już z 20 kolumn może być problem biggrin.gif
  1. <?php
  2.  
  3. $db = @new mysqli('localhost', 'd14_2f2732', 'stress123', 'd14_meczynski_adam');
  4.  
  5. function SelectZywnosc($miesiac)
  6. {
  7. global $db;
  8. $wynik = $db->query("select `zywnosc` from `liczniki` where `miesiac`='styczen'");
  9. $result = mysqli_fetch_assoc($wynik);
  10. return $zywnosc = $result['zywnosc'];
  11. }
  12. function SelectZywnosc1($miesiac)
  13. {
  14. global $db;
  15. $wynik = $db->query("select `zywnosc` from `liczniki` where `miesiac`='luty'");
  16. $result = mysqli_fetch_assoc($wynik);
  17. return $zywnosc = $result['zywnosc'];
  18. }
  19.  
  20. function SelectZywnosc2($miesiac)
  21. {
  22. global $db;
  23. $wynik = $db->query("select `zywnosc` from `liczniki` where `miesiac`='marzec'");
  24. $result = mysqli_fetch_assoc($wynik);
  25. return $zywnosc = $result['zywnosc'];
  26. }
  27. function SelectZywnosc3($miesiac)
  28. {
  29. global $db;
  30. $wynik = $db->query("select `zywnosc` from `liczniki` where `miesiac`='kwiecien'");
  31. $result = mysqli_fetch_assoc($wynik);
  32. return $zywnosc = $result['zywnosc'];
  33. }
  34. function SelectZywnosc4($miesiac)
  35. {
  36. global $db;
  37. $wynik = $db->query("select `zywnosc` from `liczniki` where `miesiac`='maj'");
  38. $result = mysqli_fetch_assoc($wynik);
  39. return $zywnosc = $result['zywnosc'];
  40. }
  41.  
  42.  
  43. ?>
  44.  
  45.  
  46. <?php
  47. echo '<table border="1" cellpadding="10" cellspacing="0">';
  48. echo"<tr>
  49. <td><b>Styczeń</b></td><td>".SelectZywnosc('styczen')." PLN</td>
  50. </tr>
  51. <tr>
  52. <td><b>Luty</b></td><td>".SelectZywnosc1('styczen')." PLN</td>
  53. </tr>
  54. <tr>
  55. <td><b>Marzec</b></td><td>".SelectZywnosc2('styczen')." PLN</td>
  56. </tr>
  57. <tr>
  58. <td><b>Kwiecień</b></td><td>".SelectZywnosc3('styczen')." PLN</td>
  59. </tr>
  60. <tr>
  61. <td><b>Maj</b></td><td>".SelectZywnosc4('styczen')." PLN</td>
  62. </tr>
  63. </table>";
  64. ?>



Da radę to jakoś inaczej zapisać?

Ten post edytował rikoooo1234 4.06.2017, 20:41:41
Go to the top of the page
+Quote Post
patwoj98
post 4.06.2017, 20:45:18
Post #16





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


  1. function SelectZywnosc($miesiac)
  2. {
  3. global $db;
  4. $wynik = $db->query("select `zywnosc` from `liczniki` where `miesiac`='".$miesiac."'");
  5. $result = mysqli_fetch_assoc($wynik);
  6. return $zywnosc = $result['zywnosc'];
  7. }


Ta funkcja będzie pobierała miesiąc w zależności od podanego w argumencie. Nie musisz stosować pozostałych.

P.S. Spróbuj także wodę i żywność pobierać w jednej funkcji - mniej powielanego kodu.
Go to the top of the page
+Quote Post
nospor
post 4.06.2017, 21:12:22
Post #17





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
P.S. Spróbuj także wodę i żywność pobierać w jednej funkcji - mniej powielanego kodu.
Powielanie kodu do najmniejszy problem tutaj. Generowanie petryliarda zbednych zapytan to dopiero problem...


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

"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

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: 26.04.2024 - 09:57