Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Dodawanie rekordów i łączenie dwóch tabel
lukaszm89
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 17.12.2012

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


Witam, jestem początkujący w dziedzinie php i mysql. Problem mam następujacy: mam dwie tabele (Klient i Naprawa). Potrzebuję zrobić dodawanie rekordów do Naprawy, najlepiej żeby z listy rozwijanej można było wybrać Nazwisko klienta (znajdujące się w tabeli klient) i podać pozostałe dane (znajdujące się w tabeli naprawa, np data_dostarczenia, data_odbioru, itp.). W tabeli klient klucz główny IDKlient, a w tabeli naprawa klucz obcy Klient_IDKlient. Czy jest taka możliwość (zapewne jest) i jak to zrobić? Poniżej kod który wykombinowałem ale nie może działać bo jest niekompletny... Podejrzewam że wystarczy skleic odpowiedni kod sql, żeby dobrze dodało, ale nie jestem pewien (IMG:style_emoticons/default/closedeyes.gif)

  1.  
  2. <br/> Dodawanie naprawy:<br/><br/>
  3.  
  4. <?php
  5. $zapytanie = mysql_query ("SELECT * FROM Klient ORDER BY Nazwisko ASC");
  6. echo '<select name="Nazwisko">';
  7. echo '<option value="">Wybierz Klienta</option>';
  8. while($option = mysql_fetch_assoc($zapytanie)) {
  9. echo '<option value="'.$option['Nazwisko'].'">'.$option['Nazwisko'].'</option>';
  10. }
  11. echo '</select>';
  12. ?>
  13.  
  14. <form action="dodaj_naprawe.php" method="post">
  15. Data dostarczenia:<br />
  16. <input type="text" name="Data_dostarczenia" /><br />
  17. Data odbioru:<br />
  18. <input type="text" name="Data_odbioru" /><br />
  19. Opis usterki:<br />
  20. <input type="text" name="Opis_usterki" /><br />
  21. Opis naprawy:<br />
  22. <input type="text" name="Opis_naprawy" /><br />
  23. Koszt czesci:<br />
  24. <input type="text" name="Koszt_czesci" /><br />
  25. Koszt uslugi:<br />
  26. <input type="text" name="Koszt_uslugi" /><br />
  27.  
  28. <input type="submit" value="dodaj" />
  29. </form>
  30.  
  31. <?php
  32. // odbieramy dane z formularza
  33. $Data_dostarczenia = $_POST['Data_dostarczenia'];
  34. $Data_odbioru = $_POST['Data_odbioru'];
  35. $Opis_usterki = $_POST['Opis_usterki'];
  36. $Opis_naprawy = $_POST['Opis_naprawy'];
  37. $Koszt_czesci = $_POST['Koszt_czesci'];
  38. $Koszt_uslugi = $_POST['Koszt_uslugi'];
  39.  
  40. if($Data_dostarczenia and $Data_odbioru and $Opis_usterki and $Opis_naprawy and $Koszt_czesci and $Koszt_uslugi ) {
  41.  
  42. // dodajemy rekord do bazy
  43. $ins = @mysql_query("INSERT INTO Naprawa SET Data_dostarczenia='$Data_dostarczenia', Data_odbioru='$Data_odbioru', Opis_usterki='$Opis_usterki', Opis_naprawy='$Opis_naprawy', Koszt_czesci='$Koszt_czesci', Koszt_uslugi='$Koszt_uslugi'");
  44.  
  45. if($ins) echo "Rekord został dodany poprawnie";
  46. else echo "Błąd nie udało się dodać nowego rekordu";
  47.  
  48. }
  49.  
  50. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukaszm89
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 17.12.2012

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


Ok dzięki, trochę to uporządkowałem, ale dalej nie działa, działa gdy uzupełnię wszystkie pola oprócz nazwiska, wtedy dodaje do tabeli, ale nie o to przecież chodzi (IMG:style_emoticons/default/closedeyes.gif)

Poniżej kod, jakby ktoś mógł mi łopatologicznie wytłumaczyć co trzeba zmienić, a najlepiej poprawić kod tak żeby to działało...trochę mnie to przerosło (IMG:style_emoticons/default/biggrin.gif)

  1. <?php
  2. echo '<form name="Nazwisko">';
  3. $Nazwisko = mysql_query ("SELECT * FROM Klient ORDER BY Nazwisko, ASC");
  4. echo '<select name="Nazwisko">';
  5. echo '<option value="">Wybierz Klienta</option>';
  6. while($option = mysql_fetch_assoc($Nazwisko)) {
  7. echo '<option value="'.$option['Nazwisko'].'">'.$option['Nazwisko'].'</option>';
  8. }
  9. echo '</select>'; echo '</form>';
  10. ?>
  11.  
  12. <form action="dodaj_naprawe.php" method="post">
  13.  
  14. Data dostarczenia:<br />
  15. <input type="text" name="Data_dostarczenia" /><br />
  16. Data odbioru:<br />
  17. <input type="text" name="Data_odbioru" /><br />
  18. Opis usterki:<br />
  19. <input type="text" name="Opis_usterki" /><br />
  20. Opis naprawy:<br />
  21. <input type="text" name="Opis_naprawy" /><br />
  22. Koszt czesci:<br />
  23. <input type="text" name="Koszt_czesci" /><br />
  24. Koszt uslugi:<br />
  25. <input type="text" name="Koszt_uslugi" /><br />
  26.  
  27. <input type="submit" value="dodaj" />
  28. </form>
  29.  
  30. <?php
  31. // odbieramy dane z formularza
  32. $Nazwisko = $_POST['Nazwisko'];
  33. $Data_dostarczenia = $_POST['Data_dostarczenia'];
  34. $Data_odbioru = $_POST['Data_odbioru'];
  35. $Opis_usterki = $_POST['Opis_usterki'];
  36. $Opis_naprawy = $_POST['Opis_naprawy'];
  37. $Koszt_czesci = $_POST['Koszt_czesci'];
  38. $Koszt_uslugi = $_POST['Koszt_uslugi'];
  39.  
  40. if($Data_dostarczenia and $Opis_usterki and $Nazwisko) {
  41.  
  42. // dodajemy rekord do bazy
  43. $ins = @mysql_query("INSERT INTO Naprawa SET Data_dostarczenia='$Data_dostarczenia', Data_odbioru='$Data_odbioru', Opis_usterki='$Opis_usterki', Opis_naprawy='$Opis_naprawy', Koszt_czesci='$Koszt_czesci', Koszt_uslugi='$Koszt_uslugi', Nazwisko='$Nazwisko' INNER JOIN Klient ON Naprawa.Klient_IDKlient=Klient.IDKlient");
  44.  
  45. if($ins) echo "Rekord został dodany poprawnie";
  46. else echo "Błąd nie udało się dodać nowego rekordu";
  47.  
  48. }
  49.  
  50. ?>
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: 9.10.2025 - 14:49