Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V   1 2 3 > »   
Reply to this topicStart new topic
> System dla studenta, Pomoc w stworzeniu projektu
sapit
post 22.09.2021, 08:56:39
Post #1





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

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


Witam wszytskich,

Szukam osób ktore beda wstanie mi pomoc lub pokierowac w stworzeniu systemu dla studentow. Aplikacja miala by byc stworzona w PHP 7 i MYSQLi a wyglad w Bootstrap.Wizja jest taka ze jest logowanie do systemu z roznymi rolami dokladnie z 3 (Admin, Pracownik Uczelni oraz obsluga typu Kadry) wiadomo ze Admin widzial by w CMS wszystkie opcje po zalogowaniu , Pracownik 85%-90% opcji, a obsługa np Kadry tylko liste w tabeli o studentach i inforamcje o tym czy jest skreslony czy aktywny itd. Chcialbym stworzyc menu gdzie byla by mozliwosc dodawania studentow,edycja i usuwanie oraz oczywiscie wypelnianie danych o nich oraz mozliwosc wklejenia zdjecia legitymacyjnego, druga opcja mozliowosc dodawania przedmiotow edycja i usuwanie ich. Trzecia opcja promotorzy takze dodawanie ich edycja i usuwanie. Co najwazniejsze przy dodawaniu studenta byla by mozliwosc wtedy wybrania takze na jki idzie przedmiot lub kto bedzie jego promotorem. Czwarte menu aby byla mozliwosc stworzenia "file managera" osobiscie znalazłęm cos takiego jak (Tiny File Manager - https://tinyfilemanager.github.io/ ) Mysle ze super by sie nadawalo do tego systemu. Przepraszam wszytskich ale jestem raczkujacy i na forum i w PHP wiec cos tam juz stworzone mam na localhoscie ale wolalem najpierw podpytac sie czy ktos moglby mi pomoc lub moze bylby chetny pokierowac mnie z kodem itd. Z gory bardzo dziekuje wszytskim za odpowiedzi. smile.gif

Myślicie że dobrze zostało to napisane ? z 3 rożnymi rolami

  1.  
  2. $conn = mysqli_connect('localhost', 'root', '', 'baza');
  3.  
  4. $query = mysqli_query($conn, "SELECT * FROM uzytkownicy where user='" . $_SESSION['user'] . "'");
  5. while ($row = mysqli_fetch_array($query)) {
  6.  
  7. $role = $row['rols'];
  8. }
  9. if ($role == 'Admin') {
  10.  
  11. <h5>Dzień dobry <?php echo $_SESSION['user']; ?> !</h5>
  12. <p>Zalogowano się jako: <br><u>Administrator</u>
  13. </p>

  1. } elseif ($role == "Users") {
  2.  
  3. <h5>Dzień dobry <?php echo $_SESSION['user']; ?> !</h5>
  4. <p>Zalogowano się jako: <br><u>Użytkownik</u>
  5. </p>
  6.  


  1. } elseif ($role == "Kadry") {
  2.  
  3. <h5>Dzień dobry <?php echo $_SESSION['user']; ?> !</h5>
  4. <p>Zalogowano się jako: <br><u>Kadry</u>
  5. </p>
  6.  


  1. rols enum('Admin', 'Users', 'Kadry') utf8_polish_ci


Ten post edytował sapit 22.09.2021, 08:57:08
Go to the top of the page
+Quote Post
gino
post 22.09.2021, 11:39:53
Post #2





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

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


Sprawdzenie kto jest zalogowany, jakie ma role itp. powinno się zrobić podczas logowania przez warstwy aplikacji, które te operacje wykonają w sposób bezpieczny.
A poza tym dane logowania (np. user) to najmniej pożądane dane aby trzymać je w sesji.
Zacznij chociażby tutaj:
php logowanie, SQL Injection
Go to the top of the page
+Quote Post
gornik
post 22.09.2021, 12:54:30
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 9
Dołączył: 28.04.2010

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


Auth słaby, ale nie o tym.

Co do ról to ja bym zrobił to w formie tablicy:
Będzie Ci później łatwiej rozwijać jakieś elementy w projekcie moim zdaniem.

  1. /* Tak zeby user z bazy zwracał np cos takiego */
  2. $user = [
  3. 'id' => 1,
  4. 'username' => 'testuser',
  5. 'roles' => [
  6. 'ROLE_USER',
  7. 'ROLE_STUDENT',
  8. 'ROLE_MODERATOR',
  9. ]
  10. ];
  11.  
  12. /* Ustalasz hierarchie ról, tak zeby np. ADMINISTRATOR miał dostęp do czynności moderatora */
  13. $roleHierarchy = [
  14. 'ROLE_STUDENT' => ['ROLE_USER'],
  15. 'ROLE_MODERATOR' => ['ROLE_USER', 'ROLE_STUDENT'],
  16. 'ROLE_ADMINISTRATOR' => ['ROLE_MODERATOR'], /* ROLE_ADMIN ma dostęp do ROLE_MODERATOR i dziediczy jego role - w tym przypadku ROLE_USER, ROLE_STUDENT */
  17. 'ROLE_TEST' => ['ROLE_STUDENT'], /* ROLE_TEST ma dostęp do ROLE_STUDENT i dziediczy jego role - w tym przypadku ROLE_USER */
  18. ];
  19.  
  20. /* Jakaś funkcja sprawdzająca dostęp do ról */
  21. function hasGranted($user, $role){
  22. global $roleHierarchy;
  23. /* ... tu jeszcze trzeba dopisać sprawdzanie hierachii itp */
  24. return in_array($role, $user['roles']);
  25. }
  26.  
  27. /* Akcje dla ról */
  28. $menu = [];
  29. $menu[] = ['route' => 'home_index', 'name' => 'Strona glowna'];
  30. if( hasGranted($user, 'ROLE_ADMINISTRATOR') ){
  31. /* Zrób coś dla admina np. dodaj menu item */
  32. $menu[] = ['route' => 'admin_index', 'name' => 'Panel Admina'];
  33.  
  34. }
  35. echo "<PRE>";
  36. print_r($menu);
  37. echo "</PRE>";
  38.  
  39.  
  40. /* Blokowanie dostępu */
  41. if( !hasGranted($user, 'ROLE_ADMINISTRATOR') ){
  42. exit('Wrong permissions');
  43. }
  44.  


Ten post edytował gornik 22.09.2021, 13:02:41


--------------------
Zwiedzam świat i koduje.
Ubrania podróżnicze | Blog podróżniczy
Go to the top of the page
+Quote Post
sapit
post 22.09.2021, 16:33:59
Post #4





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

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


WoW exclamation.gif!! Myślałem że nikt mi nie pomorze ,a tu prosze jaka super pomoc na wstepię za co bardzo mocno dziękuje za wszystkie odpowiedzi i podpowiedzi. smile.gif

Mam jeszcze jedno pytanie jak robie formularz dodawania Przedmiotu np

  1. <?php
  2. include_once('connection.php');
  3.  
  4. // Dodaj przedmiot
  5. if (isset($_POST['submit'])) {
  6. $item = $_POST['item'];
  7.  
  8. if(mysqli_query($conn, "INSERT INTO item (item) VALUES ('$item')")) {
  9. $success = "Pozytywnie dodano przedmiot!";
  10. } else {
  11. $error = "Błąd dodawania przedmiotu...";
  12. }
  13. }
  14. ?>



  1.  
  2.  
  3. <form method="post" action="add_item.php">
  4. <div class="form-group">
  5. <input type="text" name="item" placeholder="Dodaj przedmiot" required class="form-control" />
  6. </div>
  7. <div class="form-group">
  8. <input type="submit" name="submit" value="Dodaj przedmiot" class="btn btn-info btn-block" />
  9. </div>
  10. <span class="text-success"><?php if (isset($success)) {
  11. echo $success;
  12. } ?></span>
  13. <span class="text-danger"><?php if (isset($error)) {
  14. echo $error;
  15. } ?></span>
  16. </form>


To jak by to działa i dodaje mi to do bazy danych ale mam problem mianowicie z tym że gdy robie formularz dodawania danych studenta to chciałbym tam zrobić aby był "dropdown" i zeby była mozliwosc własnie zanzaczenia tego przedmiotu przy dodawaniu w tym formualrzu i to samo sie dotyczy wyboru prowadzonego , promotora itd? Chodzi mi o to ze bede mial pewnie kilka roznych tabel MYSQL "Tabela np item=przedmiot , teacher = prowadzocy , promoter=promotor, a na koniec tabela student=studenci i zapewne ta tabela studenci musi byc polaczona z tamtymi tabelami aby pozniej przy wypelnianiu formlarza moglo pobierac te dane z tych tabel a potem przy stronie z wykazem tych studentow (tabelce) byly te dane wyswietlane. I tu wlasnie mi chodzi jak to zrobic w PHP i jak zadac pytanie SQL ?

Haha nie wiem czy za mocno nie namieszałem i czy jasno to opisalem, moze ktos z Państwa zrozumie mnie o co chodzi smile.gif
Go to the top of the page
+Quote Post
com
post 28.09.2021, 11:00:54
Post #5





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


no musisz posiadać miedzy tymi tabelami relacje, a my nie znamy twojej bazy danych smile.gif
Go to the top of the page
+Quote Post
sapit
post 28.09.2021, 18:57:09
Post #6





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

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


Dobra juz sobie prawie wszystko ogarnąłem, tylko mam jeden problem.

Gdy mam formularz dodawania danych studenta i różnych opcji z nimi związane jak np przedmiot, chcialbym aby dla danego studenta była możliwośc wybrania kilku przedmiotów i wyświetlenia ich pozniej w tabeli.


Tutaj czesc kodu z formularza dodawania studenta: add_student.php

  1. <div class="form-group">
  2. <div class="row">
  3. <label class="col-sm-3 control-label">Przedmiot</label>
  4. <div class="col-sm-9">
  5. <select type="list" name="list" class="form-control">
  6. <option value="">-- Wybierz przedmiot --</option>
  7. <?php
  8. $c1 = "SELECT * FROM `list`";
  9. $result = $conn->query($c1);
  10.  
  11. if ($result->num_rows > 0) {
  12. while ($row = mysqli_fetch_array($result)) { ?>
  13. <option value="<?php echo $row["id_list"]; ?>">
  14. <?php echo $row['list']; ?>
  15. </option>
  16. <?php
  17. }
  18. } else {
  19. echo "0 results";
  20. }
  21. ?>
  22. </select>
  23. </div>
  24. </div>
  25. </div>


A w drugim pliku list_student.php ( teraz mam tak) - wiem że to wyswietla mi jeden przedmiot ktory wybiore z listy

  1. <?php
  2. include_once('connection.php');
  3. $sql = "SELECT * FROM student";
  4. $result = $conn->query($sql);
  5. while ($row = $result->fetch_assoc()) {
  6.  
  7. $sql2 = "SELECT * FROM `list` WHERE id_list='" . $row['list'] . "'";
  8. $result2 = $conn->query($sql2);
  9. $row2 = $result2->fetch_assoc();
  10. <tr>
  11.  
  12. <td><?php echo $row2['list']; ?></td>
  13. </tr>
  14.  




Efekt chciałbym taki ze jest tabela np "DataTable" są komórki i kolumny i np w jednej z kolumn jest "Przedmiot" , a pod nim dla danego studenta jest wypisane kilka przedmiotów . POMOCY exclamation.gif! sad.gif

|Przedmiot| | Imię | | Naziwsko |
---------------------------------
| Biologia | | Piotr | |Kowalski |
| Historia |
| Polski |
Go to the top of the page
+Quote Post
gornik
post 28.09.2021, 19:21:10
Post #7





Grupa: Zarejestrowani
Postów: 56
Pomógł: 9
Dołączył: 28.04.2010

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


Strasznie chaotycznie się wypowiadasz, nie wystarczy tam zapętlić listy przedmiotów i oddzielić np. najprościej
  1. <Br />
?


--------------------
Zwiedzam świat i koduje.
Ubrania podróżnicze | Blog podróżniczy
Go to the top of the page
+Quote Post
sapit
post 28.09.2021, 19:29:03
Post #8





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

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


Przepraszam za chaotycznosc ale już tak mam jak cos mam w glowie to staram sie to opisac jak najlepiej aby ktos mogl mnie w miare zrozumiec. smile.gif
Go to the top of the page
+Quote Post
gino
post 29.09.2021, 07:25:03
Post #9





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

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


A dlaczego nie zrobisz osobnej tabeli z przedmiotami dla studentów? np. id, przedmiot, status i tabeli która powiąże to ze studentem id, id_student, id_przedmiot. W innym razie będziesz się bujał z redundancją bazy.
Go to the top of the page
+Quote Post
sapit
post 29.09.2021, 09:59:50
Post #10





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

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


Zrobiłem to tak:

Tutaj jest lista dodanych przedmiotów:


A tutaj widok bazy danych:


Formularz dodawania studenta i wybór przedmiotu:(jak widac pobiera przedmioty z bazy danych)


Widok po dodaniu studenta:



A co bym chciał zrobić finalnie aby mozna było w formularzu studenta wybrac np. dwa lub więcej przedmiotów naraz i aby one byly widoczne na liscie studenta. Ponieawż student moze chodzić na kilka przedmiotow .


Go to the top of the page
+Quote Post
com
post 29.09.2021, 10:18:46
Post #11





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


musisz zrobić sobie tabele z przedmiotami i studentami i kolejną która połączy na bazie relacji te przedmioty ze studentami w relacji wiele do wielu (http://www.glowacki.p9.pl/nowa_strona/strony/niedatowane/kurs_mysql/k_2_2_3.php i sekcja Relacja wiele do wielu W:W) a przedmioty przechowuj za pomocą id bo tak masz redundancje danych smile.gif

Ten post edytował com 29.09.2021, 10:19:58
Go to the top of the page
+Quote Post
sapit
post 29.09.2021, 10:29:26
Post #12





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

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


Cytat(com @ 29.09.2021, 11:18:46 ) *
musisz zrobić sobie tabele z przedmiotami i studentami i kolejną która połączy na bazie relacji te przedmioty ze studentami w relacji wiele do wielu (http://www.glowacki.p9.pl/nowa_strona/strony/niedatowane/kurs_mysql/k_2_2_3.php i sekcja Relacja wiele do wielu W:W) a przedmioty przechowuj za pomocą id bo tak masz redundancje danych smile.gif


Dziekuje za wskazówkę smile.gif Jak już to zrobie to jak sprawić w kodzie PHP aby to wyswietlic ?

  1. <?php
  2. include_once('connection.php');
  3. $sql = "SELECT * FROM student";
  4. $result = $conn->query($sql);
  5. while ($row = $result->fetch_assoc()) {
  6.  
  7. $sql2 = "SELECT * FROM `list` WHERE id_list='" . $row['list'] . "'";
  8. $result2 = $conn->query($sql2);
  9. $row2 = $result2->fetch_assoc();
  10. <tr>
  11.  
  12. <td><?php echo $row2['list']; ?></td>
  13. </tr>


Ten post edytował sapit 29.09.2021, 10:37:19
Go to the top of the page
+Quote Post
gornik
post 29.09.2021, 11:01:08
Post #13





Grupa: Zarejestrowani
Postów: 56
Pomógł: 9
Dołączył: 28.04.2010

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


Dobra teraz czaje arrowheadsmiley.png
Musisz mieć 3 tabelki tak na szybko np:
Students:
- id:int
- name:string(255)
- createdAt:datetime

Subjects:
- id:int
- name:string(255)
- createdAt:datetime

StudentSubjects
- id:int
- subjectId: reference to Subjects
- studentId: reference to Students
- createdAt: datetime

  1. /* Jakistam student */
  2. $student = [
  3. 'id' => 30,
  4. 'name' => 'Marek Kowalski',
  5. 'createdAt' => '2021-09-20 12:30:40'
  6.  
  7. ];
  8.  
  9. /* I teraz wszystko zalezy od tego co potrzeba, mozesz uzyć INNER albo IN. Kombinuj */
  10. $sql = "SELECT * FROM `Subjects` WHERE `id` IN ( SELECT `subjectId` FROM `StudentSubjects` WHERE `studentId` = {$student['id']} )";


--------------------
Zwiedzam świat i koduje.
Ubrania podróżnicze | Blog podróżniczy
Go to the top of the page
+Quote Post
sapit
post 29.09.2021, 11:07:16
Post #14





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

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


Raczej bardziej opierał bym się na tym o co mi chodzi smile.gif

  1. https://www.onlyxcodes.com/2019/01/multiple-checkbox-value-add-edit-delete.html
Go to the top of the page
+Quote Post
gornik
post 29.09.2021, 11:19:54
Post #15





Grupa: Zarejestrowani
Postów: 56
Pomógł: 9
Dołączył: 28.04.2010

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


Podałem Ci tylko przykład, a nie gotowe rozwiązanie, od tego już tylko prosta droga żeby osiągnąć to co chcesz.


--------------------
Zwiedzam świat i koduje.
Ubrania podróżnicze | Blog podróżniczy
Go to the top of the page
+Quote Post
sapit
post 30.09.2021, 15:14:44
Post #16





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

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


Cytat(gornik @ 29.09.2021, 12:19:54 ) *
Podałem Ci tylko przykład, a nie gotowe rozwiązanie, od tego już tylko prosta droga żeby osiągnąć to co chcesz.


Rozumiem. Dziekuje z góry smile.gif

Kurcze jednak drodzy Państwo poległem na tym chyba , ale znając życie zaraz się okaże finalnie że to bardzo proste jest o zrobienia ale za każdym razem jak coś robie to mam błąd sad.gif

Może jednak ktoś z Pańśtwa się zlituje nade mną i więcej podpowie lub pomoze smile.gif Taki final chcialbym uzyskać ze sa dane studenta a w jednej z kolumn lista przedmiotow dla niego czasami moga to byc 2 przedmioty , jeden lub 5



Stworzyłem 3 tabele w bazie danych:

tabela list= *czyli lista przedmiotow

  1. id_list - INT AUTO INCREMENT
  2. list - VARCHAR 255


tabela student = * czyli dane sudenta
  1. id - INT AUTO INCREMENT
  2. id_student - INT
  3. firstname - VARCHAR 255
  4. lastname - VARCHAR 255
  5. pesel - VARCHAR 255
  6. list - VARCHAR 255


tabela studentlists = * czyli połaczenie dwóch tabel
  1. id - INT AUTO INCREMENT
  2. id_list - INT
  3. id_student - INT



w formularzu dodawania studenta * add_student.php w sekcji Przedmiot napisałem to tak
  1. <div class="form-group">
  2. <div class="row">
  3. <label class="col-sm-3 control-label">Przedmiot</label>
  4. <div class="col-sm-9">
  5. <select type="text" name="list[]" multiple class="form-control">
  6. <option value="">-- Wybierz przedmiot --</option>
  7. <?php
  8. $c1 = "SELECT * FROM `list`";
  9. $result = $conn->query($c1);
  10.  
  11. if ($result->num_rows > 0) {
  12. while ($row = mysqli_fetch_array($result)) { ?>
  13. <option value="<?php echo $row["id_list"]; ?>">
  14. <?php echo $row['list']; ?>
  15. </option>
  16. <?php
  17. }
  18. } else {
  19. echo "0 results";
  20. }
  21. ?>
  22. </select>
  23. </div>
  24. </div>
  25. </div>
  26.  


po kliknięciu przycisk Dodaj - czyli (name=submit) stworzyłem plik *save_student.php
  1. <?php
  2. include('../connection.php');
  3. $sql = "INSERT INTO student (firstname, lastname, pesel, list) VALUES ('$firstname', '$lastname', '$pesel', '$list')";
  4. if ($conn->query($sql) === TRUE) {
  5. $_SESSION['success'] = 'Pomyślnie dodano studenta';
  6. ?>
  7. <script type="text/javascript">
  8. window.location = "../list_student.php";
  9. </script>
  10. <?php
  11. } else {
  12. $_SESSION['error'] = 'Coś poszło nie tak';
  13. ?>
  14. <script type="text/javascript">
  15. window.location = "../list_student.php";
  16. </script>
  17. <?php } ?>


a na koniec plik z widokiem listy studentów *list_student.php

  1. <tr>
  2. <th></th>
  3. <th>Imie</th>
  4. <th>Nazwisko</th>
  5. <th>Pesel</th>
  6. <th>Przedmiot</th>
  7. </tr>
  8. </thead>


  1. <?php
  2. include_once('connection.php');
  3. $sql = "SELECT * FROM student";
  4. $result = $conn->query($sql);
  5. while ($row = $result->fetch_assoc()) {
  6. $sqll = "SELECT * FROM studentlists WHERE id questionmark.gifquestionmark.gif? (Jak zada poprawne zapytanie aby pobrało te dwa przedmioty ?
  7. $result1 = $conn->query($sqll);
  8. $row1 = $result1->fetch_assoc();
  9. ?>
  10. <tr>
  11. <td></td>
  12.  
  13. <td><?php echo $row['firstname']; ?></td>
  14. <td><?php echo $row['lastname']; ?></td>
  15. <td><?php echo $row['pesel']; ?></td>
  16. <td><?php echo $row1[' I właśnie co tutaj mam zrobić aby np. dwa przedmioty się tu wybrane po wybraniu ich w formularzu się pojawiły ?']; ?></td>
  17.  


Jak ktoś będzie mnie chciał opierdzielić za brak jakieś wiedzy itd spoko biore to na klate smile.gif ale potrzebuje pomocy sad.gif

Ten post edytował sapit 29.09.2021, 11:22:13
Go to the top of the page
+Quote Post
nospor
post 30.09.2021, 15:26:17
Post #17





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Po pierwsze wywal pole LIST z tabeli STUDENT. przeciez teraz masz oddzielna tabele na przedmioty do ktorych jest przypisany student, nieprawdaz? I wlasnie do tej tabeli masz wpisywac przedmioty przypisane do studenta.

Co do wyswietlania przedmiotow studenta to poprostu przy pomocy LEFT join laczysz ze soba tabele podczas SELECTa


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

"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 1.10.2021, 08:40:06
Post #18





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

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


Cytat(nospor @ 30.09.2021, 16:26:17 ) *
Po pierwsze wywal pole LIST z tabeli STUDENT. przeciez teraz masz oddzielna tabele na przedmioty do ktorych jest przypisany student, nieprawdaz? I wlasnie do tej tabeli masz wpisywac przedmioty przypisane do studenta.

Co do wyswietlania przedmiotow studenta to poprostu przy pomocy LEFT join laczysz ze soba tabele podczas SELECTa


Dobra zaraz się za to zabieram wywalę pole LIST z tabeli student i postaram się sklepac zapytanie przy pomocy LEFT JOIN smile.gif Dziękuje za cenne wskazówki , bo czasami to już ręce opadają co człowiek robi źle ze nie wychodzi tak jak by się chciało smile.gif

Zrobiłem przez LEFT JOIN ale nie wiem czemu dalej i wychodzi teraz tak że np w tabeli mam wypisane
  1. "SELECT * FROM student LEFT JOIN list ON list.id_list=student.id_student"


ID Imię Nazwisko Przedmiot
1. Jan Kowalski Biologia
2. Jan Kowalski Geografia
3. Marta Szymańska Biologia


zamiast

ID Imię Nazwisko Przedmiot
1 Jan Kowalski Biologia
...... ...... ...... Geografia

2. Marta Szymańska Biologia

Ten post edytował sapit 1.10.2021, 08:43:18
Go to the top of the page
+Quote Post
gino
post 1.10.2021, 09:26:00
Post #19





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

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


Co ma wspólnego u Ciebie id_list z id_student bo za bardzo nie rozumiem. Po co w taki razie utworzyłeś tabelę studentlist, jeśli w zapytaniu w ogóle z niej nie korzystasz? To przecież ta tabela właśnie robi relacje miedzy tabelami student i list.
Zapytanie ma połączyć 3 tabele a nie tylko dwie.

edit

Czy mi się wydaje, że za każdym razem jeśli dodajesz przedmiot to wrzucasz komplet danych studenta?

Ten post edytował gino 1.10.2021, 09:31:16
Go to the top of the page
+Quote Post
sapit
post 1.10.2021, 10:06:09
Post #20





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

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


Cytat(gino @ 1.10.2021, 10:26:00 ) *
Co ma wspólnego u Ciebie id_list z id_student bo za bardzo nie rozumiem. Po co w taki razie utworzyłeś tabelę studentlist, jeśli w zapytaniu w ogóle z niej nie korzystasz? To przecież ta tabela właśnie robi relacje miedzy tabelami student i list.
Zapytanie ma połączyć 3 tabele a nie tylko dwie.

edit

Czy mi się wydaje, że za każdym razem jeśli dodajesz przedmiot to wrzucasz komplet danych studenta?



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.

Go to the top of the page
+Quote Post

4 Stron V   1 2 3 > » 
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: 29.03.2024 - 12:04