Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V  < 1 2 3 4 >  
Reply to this topicStart new topic
> System dla studenta, Pomoc w stworzeniu projektu
gino
post 1.10.2021, 10:22:22
Post #21





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


Cytat
Nie dodawanie przedmiotu odbywa się osobno w formualrzu


formularz jest najmniej interesujący, pytanie gdzie wrzucasz dane z tego name list multiple. Masz je zapisać w tabeli studentlist z odpowiednim id studenta.
Po co w tabeli student pole id_student? Co tam wpisujesz?
Go to the top of the page
+Quote Post
sapit
post 1.10.2021, 10:22:46
Post #22





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(sapit @ 1.10.2021, 11:06:09 ) *
Tak faktycznie teraz też zobaczyłęm ze walnąłęm gafe z tą tabelą i zauwazyłęm błąd w tym zapyraniu SQL zaraz to poprawie :/

Nie dodawanie przedmiotu odbywa sie osobno w formualrzu

a dodawanie studenta odbywa sie tez osobno w innym formularzu tam wtedy powinien byc chyba coś takiego (NAME='list[]' multiple ) co sprawi żę bedzie mozna wybrac w formualrzu kilka przedmiotow trzymając przycisk "ctrl" a po nacisnieciu name="submit" - "Dodaj" chcialbym aby na liscie studentow wyglodalo to jak wyzej.


Czy to moze być poprawne zapytanie ?
  1. "SELECT * FROM `studentlists` LEFT JOIN list ON studentlists.id_student = list.id_list"

Go to the top of the page
+Quote Post
gino
post 1.10.2021, 10:39:28
Post #23





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


To jest poprawne zapytanie w sensie sql-a, pytanie czy jest poprawne dla Ciebie. Wrzuć do zapytania trzecią tabele student, aby otrzymać dane studenta.
To samo musisz zrobić z promotorami (osobna tabela i tabela wiążąca ze studentami), bo student ma prawo zmienić promotora a dane warto sobie zachować chociażby do statystyk. Dodałbym w tabeli student status, żeby wiedzieć co się dzieje ze studentem (dziekanka, wykreślony, wyrzucony itd.). Czy zbierasz informacje o kierunku nauczania? Bo student może być na 2 kierunkach.
Na dzień dobry zastanów się jakie dane chcesz zbierać, co chcesz wyświetlać itd. Wszystko zaczyna się na kartce papieru jako projekt.
Go to the top of the page
+Quote Post
sapit
post 1.10.2021, 12:53:58
Post #24





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(gino @ 1.10.2021, 11:39:28 ) *
To jest poprawne zapytanie w sensie sql-a, pytanie czy jest poprawne dla Ciebie. Wrzuć do zapytania trzecią tabele student, aby otrzymać dane studenta.
To samo musisz zrobić z promotorami (osobna tabela i tabela wiążąca ze studentami), bo student ma prawo zmienić promotora a dane warto sobie zachować chociażby do statystyk. Dodałbym w tabeli student status, żeby wiedzieć co się dzieje ze studentem (dziekanka, wykreślony, wyrzucony itd.). Czy zbierasz informacje o kierunku nauczania? Bo student może być na 2 kierunkach.
Na dzień dobry zastanów się jakie dane chcesz zbierać, co chcesz wyświetlać itd. Wszystko zaczyna się na kartce papieru jako projekt.



OK rozumiem, tylko dalej nie wiem w jaki sposob mam zazaznaczyc ze chce dwa przedmioty dla jednego studenta aby sie pojawily w formularzu dodawania oraz dwie odpowiedzi umiescic w jednej komorce tabeli dla jednego studenta :/ Bo jesli chodzi o zapytanie to ok ale jak to umiescic i napisac w php ? Chyba ze ja zle tlumacze i pisze o co mi chodzi sad.gif Ja sie kurcze chyba poddaje tongue.gif
Go to the top of the page
+Quote Post
nospor
post 1.10.2021, 14:12:05
Post #25





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




Nie mam zbytnio duzo czasy by dokladnie ci opisac twoj przyklad ale tutaj
http://nospor.pl/grupowanie-wynikow.html
masz zrobione wyswetilanie danych na przykladzie niemalze identycznym jak twoj. Ok, nie ma jednej tabeli, ale zasada pobierania danuch w php z zapytania i ich wyswietlanie jest ta sama co u ciebie


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

"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
sapit
post 4.10.2021, 10:27:45
Post #26





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(nospor @ 1.10.2021, 15:12:05 ) *
Nie mam zbytnio duzo czasy by dokladnie ci opisac twoj przyklad ale tutaj
http://nospor.pl/grupowanie-wynikow.html
masz zrobione wyswetilanie danych na przykladzie niemalze identycznym jak twoj. Ok, nie ma jednej tabeli, ale zasada pobierania danuch w php z zapytania i ich wyswietlanie jest ta sama co u ciebie


nospor Jestem mega Tobie wdzięczny bo na szybko zerknąlem na link i chyba wychodzi na to ze w koncu cos jednak w tym temacie mi się ruszy jesli chodzi o rozwaizanie mojego problemu dzieki tobie smile.gif . Kurcze wiadomo po kombinuje sobie dalej mimo ze jestem "żółto dziub" w PHP ale chce sie uczyc i poznawac rozne rozwiazania i dzieki Tobie mając w głowie że bede musiał się poddać mam śwaitło w tunelu smile.gif Dziękuje pięknie exclamation.gif!!

Dam znać jak mi się uda i puszcze efekt smile.gif

A teraz mam pytanie z innej beczki , jak moge sprawic aby w formukarzu byl dropdown multiple select ? Abym mogl zaznaczyc dwie rzeczy i aby te dwie rzeczy tak jak w moim przypadku są to przedmioty się dodały do bazy danych ? Pokaze moze jak zrobilem moze ktos z was zauwazy błąd bo u mnie to nie dziala sad.gif

Chciałęm zastosować ten select z tej strony ale on mi nie dziala : https://select2.org/
*save_student.php
  1. <?php
  2. include('../connection.php');
  3. extract($_POST);
  4. if (isset($_POST['submit'])) {
  5. $student = $_POST['student'];
  6. $list = $_POST['list'];
  7. foreach ($list as $rowlist) {
  8. //echo $rowlist;
  9. $query = "INSERT INTO studentlists (id_list, id_student) VALUES ('$student','$rowlist')";
  10. $query_run = mysqli_query($conn, $query);
  11. }
  12. if ($query_run) {
  13. $_SESSION['status'] = 'rekord dodano';
  14. header("Location: list_student.php");
  15. } else {
  16. $_SESSION['status'] = 'rekordu nie dodano';
  17. header("Location: list_student.php");
  18. }
  19. }
  20. ?>


*add_student.php
  1. <div class="form-group">
  2. <div class="row">
  3. <label class="col-sm-3 control-label">Produkt</label>
  4. <div class="col-sm-9">
  5. <select class="js-example-basic-multiple" name="list[]" multiple="multiple">
  6. <option value=""></option>
  7. <?php
  8. $conn = mysqli_connect("localhost:3308", "root", "", "mydatabase");
  9. $query = "SELECT * FROM `list`";
  10. $query_run = mysqli_query($conn, $query);
  11. if (mysqli_num_rows($query_run) > 0) {
  12. foreach ($query_run as $rowlist) {
  13. ?>
  14. <option value="<?php echo $rowlist['id']; ?>"><?php echo $rowlist['list']; ?></option>
  15. <?php
  16. }
  17. } else {
  18. echo "Brak rekordów";
  19. }
  20. ?>
  21. </select>
  22. </div>
  23. </div>
  24. </div>


list.sql
  1. id - IN
  2. list - VARCHAR


studentlists.sql
  1. id - IN
  2. id_list - IN
  3. id_student - IN

Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 10:39:35
Post #27





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




Ale po co chcesz teraz uzywac jakis libow do selectow?

Samo
select name="list[]" multiple="multiple">

bez zadnego dodatkowe libu powinno ci pozwalac na wybor kilku opcji w tym select


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

"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
sapit
post 4.10.2021, 10:40:42
Post #28





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(sapit @ 4.10.2021, 11:27:45 ) *
nospor Jestem mega Tobie wdzięczny bo na szybko zerknąlem na link i chyba wychodzi na to ze w koncu cos jednak w tym temacie mi się ruszy jesli chodzi o rozwaizanie mojego problemu dzieki tobie smile.gif . Kurcze wiadomo po kombinuje sobie dalej mimo ze jestem "żółto dziub" w PHP ale chce sie uczyc i poznawac rozne rozwiazania i dzieki Tobie mając w głowie że bede musiał się poddać mam śwaitło w tunelu smile.gif Dziękuje pięknie exclamation.gif!!

Dam znać jak mi się uda i puszcze efekt smile.gif

A teraz mam pytanie z innej beczki , jak moge sprawic aby w formukarzu byl dropdown multiple select ? Abym mogl zaznaczyc dwie rzeczy i aby te dwie rzeczy tak jak w moim przypadku są to przedmioty się dodały do bazy danych ? Pokaze moze jak zrobilem moze ktos z was zauwazy błąd bo u mnie to nie dziala sad.gif

Chciałęm zastosować ten select z tej strony ale on mi nie dziala : https://select2.org/
*save_student.php
  1. <?php
  2. include('../connection.php');
  3. extract($_POST);
  4. if (isset($_POST['submit'])) {
  5. $student = $_POST['student'];
  6. $list = $_POST['list'];
  7. foreach ($list as $rowlist) {
  8. //echo $rowlist;
  9. $query = "INSERT INTO studentlists (id_list, id_student) VALUES ('$student','$rowlist')";
  10. $query_run = mysqli_query($conn, $query);
  11. }
  12. if ($query_run) {
  13. $_SESSION['status'] = 'rekord dodano';
  14. header("Location: list_student.php");
  15. } else {
  16. $_SESSION['status'] = 'rekordu nie dodano';
  17. header("Location: list_student.php");
  18. }
  19. }
  20. ?>


*add_student.php
  1. <div class="form-group">
  2. <div class="row">
  3. <label class="col-sm-3 control-label">Produkt</label>
  4. <div class="col-sm-9">
  5. <select class="js-example-basic-multiple" name="list[]" multiple="multiple">
  6. <option value=""></option>
  7. <?php
  8. $conn = mysqli_connect("localhost:3308", "root", "", "mydatabase");
  9. $query = "SELECT * FROM `list`";
  10. $query_run = mysqli_query($conn, $query);
  11. if (mysqli_num_rows($query_run) > 0) {
  12. foreach ($query_run as $rowlist) {
  13. ?>
  14. <option value="<?php echo $rowlist['id']; ?>"><?php echo $rowlist['list']; ?></option>
  15. <?php
  16. }
  17. } else {
  18. echo "Brak rekordów";
  19. }
  20. ?>
  21. </select>
  22. </div>
  23. </div>
  24. </div>


list.sql
  1. id - IN
  2. list - VARCHAR


studentlists.sql
  1. id - IN
  2. id_list - IN
  3. id_student - IN


Zapomniałem wyzej dopisac skad ta zmiena $student

  1. <form class="form-horizontal" method="POST" action="pages/save_student.php" name="student" enctype="multipart/form-data">
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 11:58:31
Post #29





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




NAME w formularzu ma sie nijak do tego co idzie postem. To NAME w polach odpowiada za to co idzie postem.
Dodatkowo napisalem komentarz wczesniej, widziales?


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

"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
sapit
post 4.10.2021, 13:15:58
Post #30





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(nospor @ 4.10.2021, 12:58:31 ) *
NAME w formularzu ma sie nijak do tego co idzie postem. To NAME w polach odpowiada za to co idzie postem.
Dodatkowo napisalem komentarz wczesniej, widziales?


Ok z tym name to zaraz sprawdzę ale komentarza wcześniejszego nie widzę :/

Cytat(sapit @ 4.10.2021, 13:23:10 ) *
Ok z tym name to zaraz sprawdzę ale komentarza wcześniejszego nie widzę :/


Ok sorry ślepy jakiś jestem znalazłem komentarz smile.gif ale nie skumalem co jest "libow" w select ?
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 13:20:29
Post #31





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




No uzywasz jakiegos select2. To jest wlasnie lib/biblioteka. po grzyba ci to na tym etapie?


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

"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
sapit
post 4.10.2021, 15:32:11
Post #32





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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




<select name="list[]" multiple="multiple">

Tak zrobiłęm i tak wygląda efekt sad.gif



Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 15:40:54
Post #33





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




No i prawidlowo wyglada

Wywal tylko te opcje "-- wybierz przedmio--" bo jest totalnie zbedna tam


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

"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
sapit
post 4.10.2021, 15:44:46
Post #34





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(nospor @ 4.10.2021, 16:40:54 ) *
No i prawidlowo wyglada

Wywal tylko te opcje "-- wybierz przedmio--" bo jest totalnie zbedna tam


Ok wywaliłem to ale jak mam to zaznaczyć i zrobić aby zapisało się w bazie bo jak narazie w bazie zapisuje się "array" sad.gif
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 15:48:44
Post #35





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




No bo przedmiot wysylany postem, jest teraz tablica (array). poniewaz zrobiles multiselect, wiec ta tablica zawiera teraz kilka przedmiotow.
Masz iterowac po tej tablicy, i wykonac tyle zapan INSERT ile masz elementow (przedmiotow) w tej tablicy. INSERT rzecz jasna masz wykonywac do tabeli student_przedmioty


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

"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
sapit
post 4.10.2021, 15:53:27
Post #36





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(nospor @ 4.10.2021, 16:48:44 ) *
No bo przedmiot wysylany postem, jest teraz tablica (array). poniewaz zrobiles multiselect, wiec ta tablica zawiera teraz kilka przedmiotow.
Masz iterowac po tej tablicy, i wykonac tyle zapan INSERT ile masz elementow (przedmiotow) w tej tablicy. INSERT rzecz jasna masz wykonywac do tabeli student_przedmioty




cos takiego zrobilem ? Dobrze ? Tam dzie jest "itd"itd to oczywiscie chodzilo mi ze trzeba napisac wszystkie zmienne $_POST z formularza ale to i tak dalej nie dziala bo pokazuje mi "rekordu nie dodano" sad.gif
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 16:15:59
Post #37





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




Toz sam piszesz w delkaracji zapytania, ze tabela ma tylko 2 pola: id_client i id_product. To jakim cudem wkladasz tam jakies firstName oraz masze ITD? przeciez tam wklozyc ID studenta i ID przedmiotu, tak?

I nie zadne client-product, tylko client_product.
Wyswietlaj bledy zapytania to bedziesz widzial co sie pieprzy
I czemy w ogole client_product kiedy tam mialo byc studentlists?


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

"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
sapit
post 4.10.2021, 16:25:58
Post #38





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Cytat(nospor @ 4.10.2021, 17:15:59 ) *
Toz sam piszesz w delkaracji zapytania, ze tabela ma tylko 2 pola: id_client i id_product. To jakim cudem wkladasz tam jakies firstName oraz masze ITD? przeciez tam wklozyc ID studenta i ID przedmiotu, tak?

I nie zadne client-product, tylko client_product.
Wyswietlaj bledy zapytania to bedziesz widzial co sie pieprzy
I czemy w ogole client_product kiedy tam mialo byc student_przedmiot?



client_product To mój błąd nie to wkleiłem ponieważ robiłem sobie na boku cos podobnego w wersji skróconej aby zobaczyć czy zadziała czy tez nie .

A jesteś może wstanie mi jakoś to napisać pokazać na jakimś przykładzie ?
Go to the top of the page
+Quote Post
nospor
post 4.10.2021, 16:26:41
Post #39





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




Notoz masz przyklad, sam pisales go wczesniej

foreach ($list as $rowlist) {
//echo $rowlist;
$query = "INSERT INTO studentlists (id_list, id_student) VALUES ('$student','$rowlist')";
$query_run = mysqli_query($conn, $query);
}

Tylko sie upewnij ze masz wlasciwe wartosci tu


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

"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
sapit
post 4.10.2021, 21:30:13
Post #40





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 19.07.2017

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


Dzięki nospor za wszystko. Podszedłem do tematu troche na nowo. Stworzyłem szybko mikro system "demo" zaczałem robic od samego poczatku wszystko na nowo i faktycznie dzięki Twoim wskazówką zaczeło działać wiec moj problem już jest rozwiązany w 95%. Teraz podsyłam ostatnią prostą z czym nie potrafie sobie poradzić. Pokaze to na zdjeciu i zapytanie SQL ktore napisałem.

$sql = "SELECT * FROM client_product INNER JOIN clients ON client_product.id_client = clients.id INNER JOIN product ON client_product.id_product = product.id ";

--> wiem że powiniene zastosowac z CONCAT_GROUP i cos z GROUP BY ale ni hu hu mi nic nie wychodzi z tego sad.gif

tabela = clients

id
firstname
lastname

tabela = client_product

id
id_client
id_product

tabela = product

id
list

Go to the top of the page
+Quote Post

4 Stron V  < 1 2 3 4 >
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: 25.04.2024 - 04:50