Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] 2 zapytania w else
ten_typ
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 1
Dołączył: 25.12.2008
Skąd: Żory

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


Mam problem:
tak wyglądają mniej więcej relacje:
Kod
tabela1  | tabela łącząca | tabela2
     kurs     | poziom_kursu   | poziom
     grupa    | kurs_grupy     | kurs


Kiedy jakiś kurs jest przypisany grupie jest wszystko cacy. Problem występuje kiedy usuwam jakiś kurs. W momencie usunięcia kursu kasuje się rekord w tabelach: kurs, poziom_kursu oraz kurs_grupy. Po tym usunięciu nie pokazuje mi skrypt żadnych grup, ale wszystkie istnieją bo nie są usuwane. Mogę w jakiś sposób dopisać 2 warunek, że w przypadku usunięcia kursu pokazywane będą grupy ? Mam nadzieję, że w miarę jasno opisałem swój problem.

  1. <?php
  2. else{
  3. $wynik = mysql_query ("select * from poziom inner join poziom_kursu on poziom.id_poziomu=poziom_kursu.id_poziomu
  4.    inner join kurs on poziom_kursu.id_kursu=kurs.id_kursu inner join kurs_grupy on kurs.id_kursu=kurs_grupy.id_kurs
  5.    inner join grupa on kurs_grupy.id_grupy=grupa.id_grupy order by grupa.nazwa_grupy");
  6. $ilosc = mysql_num_rows($wynik);
  7. echo "<h3>Liczba wszystkich grup: $ilosc.</h3><br /><br />
  8.  <table border=2 align='center' cellspacing=2 cellpadding=2><tr>
  9.  <td align='left'><b>Nazwa grupy</b></td>
  10.  <td align='left'><b>Język</b></td>
  11.  <td align='left'><b>Poziom</b></td>
  12.  <td align='left'><b>Zajęcia (1 dzień</b></td>
  13.  <td align='left'><b>Godzina (1 zajęć)</b></td>
  14.  <td align='left'><b>Zajęcia (2 dzień)</b></td>
  15.  <td align='left'><b>Godzina (2 zajęć)</b></td>
  16.  <td align='left'><b>Opis grupy</b></td>
  17.  <td align='left'></td><td align='left'></td></tr>\n";
  18. while ($rekord = mysql_fetch_assoc ($wynik)) {
  19. $id_grupy= $rekord['id_grupy'];
  20. $nazwa_grupy = $rekord['nazwa_grupy'];
  21. $nazwa_kursu = $rekord['nazwa_kursu'];
  22. $nazwa_poziomu = $rekord['nazwa_poziomu'];
  23. $zajecia_1 = $rekord['zajecia_1'];
  24. $godzina_1 = $rekord['godzina_1'];
  25. $zajecia_2 = $rekord['zajecia_2'];
  26. $godzina_2 = $rekord['godzina_2'];
  27. $opis_grupy = $rekord['opis_grupy'];
  28. echo "<tr>
  29.  <td align=\"left\">$nazwa_grupy</td>
  30.  <td align=\"left\">$nazwa_kursu</td>
  31.  <td align=\"left\">$nazwa_poziomu</td>
  32.  <td align=\"left\">$zajecia_1</td>
  33.  <td align=\"left\">$godzina_1</td>
  34.  <td align=\"left\">$zajecia_2</td>
  35.  <td align=\"left\">$godzina_2</td>
  36.  <td align=\"left\">$opis_grupy</td>
  37.  <td align=\"left\"><a href=\"pwg.php?x=skasuj&id_grupy=$id_grupy\">Skasuj</a></td>
  38.  <td align=\"left\"><a href=\"pwg.php?x=edytuj&id_grupy=$id_grupy\">Edytuj</a></td></tr>\n";
  39.  "</TABLE>";
  40. }
  41. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ten_typ
post
Post #2





Grupa: Zarejestrowani
Postów: 58
Pomógł: 1
Dołączył: 25.12.2008
Skąd: Żory

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


Nadal nie rozumiem, zrobiłem tak:
  1. <?php
  2. else{
  3.    if ($_POST['id_kursu'] == null)    {
  4. $wynik = @mysql_query("select * from grupa");
  5. $ilosc = mysql_num_rows($wynik);
  6. echo "<h3>Liczba wszystkich grup: $ilosc.</h3><br /><br />
  7.  <table border=2 align='center' cellspacing=2 cellpadding=2><tr>
  8.  <td align='left'><b>Nazwa grupy</b></td>
  9.  <td align='left'><b>Język</b></td>
  10.  <td align='left'><b>Poziom</b></td>
  11.  <td align='left'><b>Zajęcia (1 dzień</b></td>
  12.  <td align='left'><b>Godzina (1 zajęć)</b></td>
  13.  <td align='left'><b>Zajęcia (2 dzień)</b></td>
  14.  <td align='left'><b>Godzina (2 zajęć)</b></td>
  15.  <td align='left'><b>Opis grupy</b></td>
  16.  <td align='left'></td><td align='left'></td></tr>\n";
  17. while ($rekord = mysql_fetch_assoc ($wynik)) {
  18. $id_grupy= $rekord['id_grupy'];
  19. $nazwa_grupy = $rekord['nazwa_grupy'];
  20. $nazwa_kursu = $rekord['nazwa_kursu'];
  21. $nazwa_poziomu = $rekord['nazwa_poziomu'];
  22. $zajecia_1 = $rekord['zajecia_1'];
  23. $godzina_1 = $rekord['godzina_1'];
  24. $zajecia_2 = $rekord['zajecia_2'];
  25. $godzina_2 = $rekord['godzina_2'];
  26. $opis_grupy = $rekord['opis_grupy'];
  27. echo "<tr>
  28.  <td align=\"left\">$nazwa_grupy</td>
  29.  <td align=\"left\">$nazwa_kursu</td>
  30.  <td align=\"left\">$nazwa_poziomu</td>
  31.  <td align=\"left\">$zajecia_1</td>
  32.  <td align=\"left\">$godzina_1</td>
  33.  <td align=\"left\">$zajecia_2</td>
  34.  <td align=\"left\">$godzina_2</td>
  35.  <td align=\"left\">$opis_grupy</td>
  36.  <td align=\"left\"><a href=\"pwg.php?x=skasuj&id_grupy=$id_grupy\">Skasuj</a></td>
  37.  <td align=\"left\"><a href=\"pwg.php?x=edytuj&id_grupy=$id_grupy\">Edytuj</a></td></tr>\n";
  38.  "</TABLE>";
  39. }}
  40. else {
  41.    $wynik = @mysql_query ("select * from poziom inner join poziom_kursu on poziom.id_poziomu=poziom_kursu.id_poziomu
  42.    inner join kurs on poziom_kursu.id_kursu=kurs.id_kursu inner join kurs_grupy on kurs.id_kursu=kurs_grupy.id_kurs
  43.    inner join grupa on kurs_grupy.id_grupy=grupa.id_grupy order by grupa.nazwa_grupy");
  44. $ilosc = mysql_num_rows($wynik);
  45. echo "<h3>Liczba wszystkich grup: $ilosc.</h3><br /><br />
  46.  <table border=2 align='center' cellspacing=2 cellpadding=2><tr>
  47.  <td align='left'><b>Nazwa grupy</b></td>
  48.  <td align='left'><b>Język</b></td>
  49.  <td align='left'><b>Poziom</b></td>
  50.  <td align='left'><b>Zajęcia (1 dzień</b></td>
  51.  <td align='left'><b>Godzina (1 zajęć)</b></td>
  52.  <td align='left'><b>Zajęcia (2 dzień)</b></td>
  53.  <td align='left'><b>Godzina (2 zajęć)</b></td>
  54.  <td align='left'><b>Opis grupy</b></td>
  55.  <td align='left'></td><td align='left'></td></tr>\n";
  56. while ($rekord = mysql_fetch_assoc ($wynik)) {
  57. $id_grupy= $rekord['id_grupy'];
  58. $nazwa_grupy = $rekord['nazwa_grupy'];
  59. $nazwa_kursu = $rekord['nazwa_kursu'];
  60. $nazwa_poziomu = $rekord['nazwa_poziomu'];
  61. $zajecia_1 = $rekord['zajecia_1'];
  62. $godzina_1 = $rekord['godzina_1'];
  63. $zajecia_2 = $rekord['zajecia_2'];
  64. $godzina_2 = $rekord['godzina_2'];
  65. $opis_grupy = $rekord['opis_grupy'];
  66. echo "<tr>
  67.  <td align=\"left\">$nazwa_grupy</td>
  68.  <td align=\"left\">$nazwa_kursu</td>
  69.  <td align=\"left\">$nazwa_poziomu</td>
  70.  <td align=\"left\">$zajecia_1</td>
  71.  <td align=\"left\">$godzina_1</td>
  72.  <td align=\"left\">$zajecia_2</td>
  73.  <td align=\"left\">$godzina_2</td>
  74.  <td align=\"left\">$opis_grupy</td>
  75.  <td align=\"left\"><a href=\"pwg.php?x=skasuj&id_grupy=$id_grupy\">Skasuj</a></td>
  76.  <td align=\"left\"><a href=\"pwg.php?x=edytuj&id_grupy=$id_grupy\">Edytuj</a></td></tr>\n";
  77.  "</TABLE>";}
  78. }}
  79. ?>


a w bazie mam 1 grupę bez kursu i 2 z kursem, powyższy warunek pokazuje wszystkie 3 ale w miejscu nazwa kursu i poziom kursu ( za które odpowiedzialny jest id_kursu) jest pusto. A powinno pokazać 2 grupy z kursami i 1 grupę bez. Czy ktoś potrafi mi pomóc?

Ten post edytował ten_typ 10.01.2009, 16:53:17
Go to the top of the page
+Quote Post
sowiq
post
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(ten_typ @ 10.01.2009, 16:46:18 ) *
Czym zastąpić powyższy kod, aby nie pokazywało tylko if lub else, ale żeby pokazało to, co jest w if i else?
Nie wiem czy masz zastąpić w powyższym kodzie, bo nie chce mi się tego bałaganu czytać.

Kod:
  1. <?php
  2. if($cos){
  3.  // 1
  4. }
  5. else{
  6.  // 2
  7. }
  8. ?>
Powyżej wykona się 1 LUB 2. Jeśli chcesz, żeby wykonało się 1 i 2, to robisz:
  1. <?php
  2. if($co&#347;_innego){
  3.  // 1
  4.  // 2
  5. }
  6. ?>
No chyba, że ja czegoś nie rozumiem, albo Ty nie umiesz napisać o co Ci chodzi.

[edit]
Jeśli edytujesz swojego posta co minutę, to zaznaczaj to jakoś, bo wychodzi, że odpowiedziałem Ci na coś, co nie istnieje w Twoim poście.

Cytat(ten_typ @ 10.01.2009, 16:46:18 ) *
powinno pokazać 2 grupy z kursami i 1 grupę bez. Czy ktoś potrafi mi pomóc?
LEFT JOIN

Ten post edytował sowiq 10.01.2009, 16:56:45
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 07:29