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%)
-----


sowiq dzięki - wystarczył right join.

Wyświetla ok, tak jak chciałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ale problem pojawia się gdy chcę edytować rekord, w którym nie ma kursu.
  1. <?php
  2. if ($_POST['x'] == 'popraw') {
  3. if ($_POST['nazwa_grupy'] && $_POST['zajecia_1'] && $_POST['godzina_1'] && $_POST['zajecia_2'] &&
  4.    $_POST['godzina_2'] && $_POST['opis_grupy']) {
  5. $zapytanie = @mysql_query("UPDATE grupa SET nazwa_grupy='".$_POST['nazwa_grupy']."', zajecia_1='".$_POST['zajecia_1']."',
  6.    godzina_1='".$_POST['godzina_1']."', zajecia_2='".$_POST['zajecia_2']."',
  7.    godzina_2='".$_POST['godzina_2']."', opis_grupy='".$_POST['opis_grupy']."'
  8.    WHERE id_grupy='".$_POST['id_grupy']."'");
  9. $zapytanie = @mysql_query("update kurs_grupy set id_kurs='".$_POST['id_kursu']."' WHERE id_grupy='".$_POST['id_grupy']."'");
  10. $wynik = mysql_query ($zapytanie);
  11. }
  12. echo     "<h3>Poprawnie edytowano grupę</h3><br><br>
  13.        <a href='pwg.php'>Odśwież</a>";
  14. ?>


Edycja umożliwia zmianę rekordu, ale w momencie, gdy żaden kurs nie jest przypisany grupie, chciałbym ją edytować i móc przypisać jakiś kurs. Nie może więc edytować rekordu który łączy tabele kurs i grupa ale musi dodać nowy wiersz.


  1. <?php
  2. $zapytanie = @mysql_query("insert into kurs_grupy set id_kurs_grupy=null, id_kurs='".$_POST['id_kursu']."', id_grupy=last_insert_id()");
  3. ?>


Jak mogę wkleić to zapytanie, żeby uzyskać zadawalający mnie efekt ?
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 - 08:42