Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Wyszukanie danych z bazy i ich wyświetlenie na formularzu
Forum PHP.pl > Forum > Przedszkole
cywill
Witam,
Panowie zaczynam w sumie swoją pracę z php i napotkałem na jeden ważny dla każdej aplikacji temat, a zarazem dla mnie na dzień dzisiejszy problem.
Mam aplikację, która funkcjonuje - zapis, edycja, usuwanie i wyświetlanie danych z bazy.

Teraz przyszedł czas na wyciąganie danych i zapis do formularza a dokładniej:

w mojej aplikacji są tabele i formularze, raporty np. magazyn i zlecenia.
Wprowadzam do magazynu towar i chcę ten towar w momencie wprowadzania zlecenia przypisać do niego.

Magazyn -> Zlecenie, a zarazem aby ta operacja pomniejszyła mi ogólną ilość towarów tego samego rodzaju w magazynie.

Nie chodzi mi o napisanie za mnie w całości kodu.

Tylko ideę w jaki sposób do tego podejść - czy tylko pracując na php będę w stanie coś takiego zrobićquestionmark.gif


Za wszelkie info z góry dzięki.

Ps. nie znalazłem konkretów w google ;/

Pozdrawiam
dziamber
Może po prostu w tabeli magazyn dodaj pole "dostepnosc" i jeżeli już jest skojarzony z zamówieniem to ustawiaj na 0 a jeżeli nie to ustawiaj na 1. A w tabeli zlecenia dodaj pole "magazyn_id" które okresla id asortymentu w magazynie przypisane do konkretnego zlecenia. I wtedy jak chcesz zobaczyć wszystkie produkty które jeszcze są na stanie to coś w stylu

  1. SELECT * FROM magazyn WHERE dostepnosc = 1


A jak chcesz pobrać zlecenie wraz z danymi produktu które są przypisane do niego to coś w stylu:

  1. SELECT * FROM zlecenia LEFT JOIN magazyn ON zlecenia.magazyn_id = magazyn.id


Mam nadzieję, że to pomoże bo trochę nie jasno jak dla mnie opisałeś swój problem.
cywill
OK. super to jest już jasne dzięki zamiast magazyn_id wrzuciłem swoje idmag i to mi hula.

Jakbyś mógł to podpowiedz jak zrobić by wchodząc na ten formularz:
  1. <?php
  2. // Funkcja wy?wietlajšca formularz
  3. function formularz() {
  4. ?>
  5. <table><tr align="center" border="1" bgcolor="green"><td>
  6. <form action="include/dodaj_z.php" method="post">
  7. <font color="#800000">Numer zlecenia :</font><br />
  8. <input name="nrhilzle" /><br />
  9. <font color="#800000">Numer zlecenia:</font><br />
  10. <input name="nresezle" /><br />
  11. <font color="#800000">Kontrahent:</font><br />
  12. <input name="kontrahzle" />
  13. <a href="include/wybierz_kon.php">wybierz</a>
  14.  
  15. <br />
  16. <font color="#800000">Adres:</font><br />
  17. <input name="adreszle" /><br />
  18. <font color="#800000">Kontakt:</font><br />
  19. <input name="kontaktzle" /><br />
  20. <font color="#800000">Typ zlecenia:</font><br />
  21. <select name="typzle" /><br />
  22. <option> -- wybierz --</option>
  23. <option>Serwis - 12h</option>
  24. <option>Serwis - 24h</option>
  25. <option>Serwis - 48h</option>
  26. <option>Instalacja - 12h</option>
  27. <option>Instalacja - 24h</option>
  28. <option>Instalacja - 48h</option>
  29. <option>Instalacja - 72h</option>
  30. <option>Demontaż - 12h</option>
  31. <option>Demontaż - 24h</option>
  32. <option>Demontaż - 48h</option>
  33. <option>Demontaż - 72h</option>
  34. <option>Demontaż - 120h</option>
  35. <option>Wymiana - 48h</option>
  36. <option>Instalacja AMAXcon</option>
  37. </select><br />
  38. <font color="#800000">Opis:</font><br />
  39. <input name="opiszle" /><br />
  40. <font color="#800000">Data dokumentu:</font><br />
  41. <input name="datazle" value="2011-01-01" onClick="showKal(this)" /><br /></td></tr></table>
  42.  
  43. <br>
  44. <button type="submit" value="Zapisz_zlecenie" name="submit">Zapisz zlecenie</button>
  45. </form><br>
  46. <hr><br></center>
  47. <?php
  48. }
  49. ?>
  50. <?php
  51. formularz();
  52. ?>


wybrać - akurat tutaj mam kontrahenta ale o to samo mi chodzi w magazynie - kontrahenta i żeby wskoczyły mi jego dane z adresem do tego formularza.
Oczywiście prędzej ten kontrahent został zapisany do bazy w tabeli kontrahent - a teraz mam zamiar go pobrać do zlecenia poprzez możliwość wyboru.

Zrobiłem sobie podświetlenie kontrahentów:

  1. <?php
  2. // podłączamy plik connection.php
  3.  
  4. require "connection.php";
  5.  
  6. // wywołujemy funkcję connection()
  7.  
  8. connection();
  9.  
  10.  
  11. print "<table cellpadding=\"1\" border=3 cellpadding=2 cellspacing=2 align=center>";
  12.  
  13. print "<tr align=center valign=middle bgcolor=#AED9FA>";
  14.  
  15. //print "<th nowrap=nowrap>Nr sys.</th>";
  16. print "<th nowrap=nowrap>Nr sys</th>";
  17.  
  18. print "<th nowrap=nowrap>Nazwa Klienta</th>";
  19.  
  20. print "<th nowrap=nowrap>Adres</th>";
  21.  
  22. print "<th nowrap=nowrap>Kontakt</th>";
  23.  
  24. print "<th nowrap=nowrap>email</th>";
  25.  
  26. print "<th nowrap=nowrap>Inne</th>";
  27.  
  28. print "<th nowrap=nowrap>Pozyskany</th>";
  29.  
  30. print "</tr>";
  31.  
  32. $wynik = mysql_query("SELECT idkon, nazwakon, adreskon, kontaktkon, emailkon, innekon, pozkon FROM kontrahent ORDER BY nazwakon ")
  33.  
  34. or die('Błąd zapytania');
  35.  
  36. /*
  37.  
  38. wyświetlamy wyniki, sprawdzamy,
  39.  
  40. czy zapytanie zwróciło wartość większą od 0
  41.  
  42. */
  43.  
  44. if(mysql_num_rows($wynik) > 0) {
  45.  
  46. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  47.  
  48. while($r = mysql_fetch_assoc($wynik)) {
  49.  
  50. echo "<tr align=center valign=middle bgcolor=white border=1>";
  51.  
  52. //echo "<td nowrap=nowrap>".$r['idzle']."</td>";
  53. echo "<td nowrap=nowrap><b>".$r['idkon']."</b></td>";
  54.  
  55. echo "<td wordwrap=wordwrap><b>".$r['nazwakon']."</b></td>";
  56.  
  57. echo "<td wordwrap=wordwrap>".$r['adreskon']."</td>";
  58.  
  59. echo "<td wordwrap=wordwrap>".$r['kontaktkon']."</td>";
  60.  
  61. echo "<td wordwrap=wordwrap>".$r['emailkon']."</td>";
  62.  
  63. echo "<td wordwrap=wordwrap>".$r['innekon']."</td>";
  64.  
  65. echo "<td wordwrap=wordwrap>".$r['pozkon']."</td>";
  66.  
  67. echo "<td nowrap=nowrap>
  68.  
  69. <!--<a href=\"index.php?a=del&amp;id={$r['idzles']}\">usuń</a>-->
  70.  
  71. <!--<a href=\"include/zestkon_update.php?a=edit&amp;idkon={$r['idkon']}\">edytuj</a> -->
  72. <a href=\"include/wpro_kon.php?a=wybierz&amp;idkon={$r['idkon']}\">wybierz</a>
  73.  
  74. </td>";
  75.  
  76. echo "</tr>";
  77.  
  78. }
  79.  
  80. echo "</table>";
  81.  
  82. }
  83.  
  84. ?>


co Ty na to ?
czy to da radę zrobić w php czy posiłkować się innymi technologiami?

nie wiem jak to ma wskoczyć skoro wyświetlam listę kontrahentów ale ucieka mi formularz.

pmir13
Tak wszystko da się w php zrealizować. Ale najważniejsza jest struktura bazy danych i ogólna wizja, reszta to tylko dopisanie kodu.

Proponuję takie podejście:
W tabeli magazyn:
id_towaru, stan, zarezerwowano
W tabeli zlecenia ogólne dane typu
id, czas, id_kontrahenta, status_zlecenia
natomiast w tabeli zlecenia_pozycje
id_zlecenia, id_towaru, ilosc

Nowe zlecenie dodaje 1 rekord w tabeli zlecenia i dla każdej pozycji w "koszyku" dodaje odpowiedni rekord w tabeli zlecenia_pozycje oraz zwiększa zarezerwowano w tabeli magazyn. Dostawy zmieniają wyłącznie stan w magazynie, natomiast realizacja zleceń polega na sprawdzeniu czy stan > zarezerwowano i dopiero wtedy zmniejszanie stanu w magazynie, ilości zarezerwowanej i ustawienie statusu w zleceniu. W ten sposób możesz mieć różne rodzaje zleceń, te które można zrealizować natychmiast i te, które wymagają zamówienia dodatkowej ilości towaru u dostawcy.
cywill
zaraz sobie to spróbuję odwzorować na swojej bazie i zobaczę co wyjdzie.

Ale ogólnie ostatnia podpowiedź o wstawianie pola i wyświetlenie danych była trafna.
pmir13
Jednak jeśli zlecenie potrzebuje 1 ołówka, a masz na stanie tych ołówków 240, to 239 nie będzie dostępnych.
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.