Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] wyświetlanie przedmiotów zależnie od klasy.
Forum PHP.pl > Forum > Przedszkole
aga323
Witam, wiem, że temat ten zostal juz poruszony na tym forum, lecz odpowiedzi tam zawarte nie były dla mnie satysfakcjonujące. Otóż robię dzienniczek ucznia i prawie wszytkie główne funkcje mam juz zrobione. Jednak teraz dręczy mnie problem tego iż nie wszystkie klasy maja te same przedmioty. Dla przykladu klasy 3 nie mają informatyki. I nie wiem jak to zrobić aby właśnie klasom trzecim nie wyświetlało informatyki, techniki itd. Żeby rozjaśnić sprawe podam fragmenty mojego kodu i strukture bazy.
oceny2.php
  1. <?php
  2. //Laczenie z baza
  3. include ("connect.php");
  4. $id = $_GET['id'];
  5. //-------------------------
  6. //  Zapytanie
  7. //-------------------------
  8. $przedmioty = mysql_query("SELECT * FROM przedmioty WHERE id=$id");
  9. $row = mysql_fetch_assoc($przedmioty);
  10. //-------------------------
  11. echo '<form name="ocen" action="up.php" method="POST">';
  12. echo '<input type="hidden" name="przedmiot" value="'.$id.'" />';
  13. echo 'Przedmiot: ';
  14. echo $row['Nazwa'];
  15.  
  16. echo '<table border="1"><tr><td>Przedmioty</td><td>Oceny</td></tr>';
  17. //Deklaruje zmienną coś
  18. $cos=1;
  19. //-------------------------
  20. //  Zapytanie
  21. //-------------------------
  22. //pobieramy wszystko o użytkownikach
  23. $query = "SELECT * FROM `users` WHERE klasa = '$klasa' AND ranga ='0'";
  24. $result = mysql_query ($query);
  25. //-------------------------
  26. ?>


dziennik.php
  1. <?php
  2. echo 'Dziennik';
  3. //Laczenie z baza
  4. include ("connect.php");
  5. //-------------------------
  6. //  Zapytanie
  7. //-------------------------
  8. $przedmioty = mysql_query("SELECT * FROM `przedmioty`");
  9. //-------------------------
  10. echo '<table border="1">
  11. <tr><td>Przedmioty</td><td>Oceny</td></tr>';
  12. $id = 1;
  13. $uczen = $_SESSION['User_id'];
  14. while($row = mysql_fetch_assoc($przedmioty))
  15. {
  16. echo '<tr>';
  17. echo '<td>';
  18. echo $row['Nazwa'];
  19. echo '</td>';
  20. echo '<td>';
  21. //-------------------------
  22. //  Zapytanie
  23. //-------------------------
  24. $oceny = mysql_query("SELECT ocena FROM `oceny` WHERE id_user=$uczen AND id_przedmiot=$id");
  25. $ilosc = mysql_num_rows($oceny);
  26. //-------------------------
  27. ?>


no i baza
*przedmioty
id
Nazwa
*oceny
id
id_user
id_przedmiot
ocena
*users
id
login
haslo
imie
naziwsko
klasa
ranga
Darti
Można by do tabeli przedmioty dodać kolumny (klasa_1, klasa_2, klasa_3) i zero - jedynkowo oznaczyć występowanie danego przedmiotu w danej klasie.
aga323
Hmmm. zabardzo nie rozumiem... ale domyślam się, że to coś s tylu jak wprowadzić kolumny od i do... ale wtedy też nie wiem bo u mnie w kolumnie klasa dane wyglądają typu 1c, 2b, 3a itd. I sek w tym że zabardzo nie wiem jakby to dodac do tego mojego kodu, bo juz kombinoałam z tymod do ale jakoś coś mi nie wychodziło i juz nie mam pomysłów.
dr_bonzo
Relacja wiele do wielu (walkowane milion razy), masz dodatkowa tabele ktora przetrzymuje rekordy okreslajace powiazania miedzy przedmiotem i klasa (przedmioty_id, klasy_id). Jesli rekord jest to dana klasa ma dany przedmiot, jesli nie ma -- to nie ma. I potem wszystko jest proste.
aga323
tzn. teoretycznie to niby wiem o co chodzi z tym wszytskim, ale probmy sie zaczynają jak chce to do swojego skryptu przenieść. Może ktos jkby znalazł czas to pokazałby mi na jakims przykładzie, że by tak batdziej obrazowo było. Z góry dziękuje.
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.