Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Tworzenie relacje z pomocą pól selectowych, pomoc w przekodowaniu kodu
nighttrain
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.06.2010

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


Witam,

Od jakiegoś czasu próbuję stworzyć dodawanie relacji między tabelą pierwszą (nazwa: komputery), a tabelą drugą (nazwa: oprogramowanie), i dodaje relację do tabeli 3 (nazwa: rel_komputer_oprogramowanie).
Udało mi się dodawać relacje poprzez podawanie numerów ID, jednak jest to bardzo nieporęczne i chciałbym to zamienić polami typu Select ( dwa pola typu select - pierwsze pole zawiera nazwy rekordów z tabeli pierwszej-nazwy komputerów, a drugi select zawiera nazwy rekordów z tabeli drugiej-oprogramowania), z nazwami rekordów zamiast id co udało mi się osiągnąć. Chciałbym uzyskać efekt,aby po wybraniu z dwóch selectów wartości można było kliknąć buttonik, i aby dodało ładnie do tabeli 3 relację.

Pokażę może działające rozwiązanie z polami na id:
  1. <?php
  2.  
  3. echo '<form action="doddotabrel.php" method="post">
  4. <h2>Prosze dodac nowe powiązanie:</h2><br />
  5. <b>Proszę podać ID komputera</b><br />
  6. <input type="text" size="5" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="komputer_id"><br />
  7. <b>Proszę podać ID programu:</b><br />
  8. <input type="text" size="40" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid #red" name="program_id"><br />
  9. <input type="image" src="graphics/button_dodaj_opro.jpg" alt="Wyslij" value="dodaj">
  10. </form>';
  11.  
  12. $komputer_id = $_POST['komputer_id'];
  13. $program_id = $_POST['program_id'];
  14.  
  15. if($komputer_id and $program_id) {
  16.  
  17. $msql = mysql_connect('localhost', 'root', 'qazwsx');
  18. mysql_select_db('komputery');
  19.  
  20. $ins = @mysql_query("INSERT INTO rel_komputer_oprogramowanie SET komputer_id='$komputer_id', program_id='$program_id'" );
  21. if($ins) {
  22.  
  23. echo "Rekord zostal dodany poprawnie";
  24. }
  25.  
  26. else echo "Blad nie udalo sie dodac nowego rekordu";
  27.  
  28.  
  29. }
  30. ?>


Oraz poniżej kod, który póki co nie udało mi się stworzyć:

  1. <?php
  2. $msql = mysql_connect('localhost', 'root', 'qazwsx');
  3. mysql_select_db('komputery');
  4.  
  5. <form action="" method="post">
  6. <select name="id" onchange="this.form.submit()">
  7. <option value="">Wybierz komputer:</option>';
  8.  
  9. $res = mysql_query('select id, nazwa_komputera from komputery');
  10. while ($row = mysql_fetch_assoc($res))
  11. echo '<option value="'.$row['id'].'"'.($row['id'] == $_GET['id'] ? ' selected="selected"' : '').'>'.$row['nazwa_komputera'].'</option>';
  12.  
  13. echo '</select>
  14. </form><br />';
  15.  
  16. <form action="" method="post">
  17. <select name="id_programu" onchange="this.form.submit()">
  18. <option value="">Wybierz program do edycji:</option>';
  19.  
  20. $res = mysql_query('select id_programu, nazwa_programu, system_operacyjny from oprogramowanie ORDER BY nazwa_programu');
  21. while ($row = mysql_fetch_assoc($res))
  22. echo '<option value="'.$row['id_programu'].'"'.($row['id_programu'] == $_GET['id_programu'] ? ' selected="selected"' : '').'>'.$row['nazwa_programu'].' '.$row['system_operacyjny'].'</option>'
  23. ;
  24. echo '</select>
  25. <input type="hidden" name="a" value="edit";
  26. </form><br />';
  27.  
  28. $id = $_POST['id'];
  29. $id_programu = $_POST['id_programu'];
  30.  
  31. if($id and $id_programu) {
  32.  
  33. $msql = mysql_connect('localhost', 'root', 'qazwsx');
  34. mysql_select_db('komputery');
  35.  
  36.  
  37. $ins = @mysql_query("INSERT INTO rel_komputer_oprogramowanie SET komputer_id='$id', id_programu='$id_programu'" );
  38. if($ins) {
  39. echo "Udało się dodać rekord";
  40. }
  41.  
  42. else echo "Blad nie udalo sie dodac nowego rekordu";
  43. }
  44. ?>


pozdrawiam i proszę o pomoc

Ten post edytował nighttrain 25.08.2010, 08:25:49
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 20.08.2025 - 07:32