Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] System obsługi sprzedaży, Sposób na napisanie prostego systemu obsługi sprzedaży
dsinfo
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.03.2006

Ostrzeżenie: (10%)
X----


Piszę pewną aplikację w języku PHP i mam mały, a właściwie to ogromny problem.
Otóż piszę aplikację prostej obsługi sprzedaży. Potrzebuję 5 pól. W jedno takie
pole wpisuję kod produktu i obok pojawia mi się jego kod,nazwa i cena. Sposób w
jaki można wyświetlić wcześniej wymienione dane o odpowiednim produkcie, po uprzednim
wpisaniu jego kodu - mam już rozwiązany. Ale, nie do końca. W poniższych listingach przedstawiam
aktualny stan kodu. Mój problem polega na tym, że tych pól jak już wspomniałem ma być
aż 5. I tu zaczyna się poważny problem. Otóż jak wpiszemy do dowolnego pola kod produktu
(np. "001") to wyświetlą nam się o nim dane, natomiast gdy do drugiego pola wpiszemy
następny kod produktu (np. "002") - to poprzednie dane znikną. I tak dalej z kolejnymi polami.
W tym właśnie miejscu tkwi mój problem. A, więc cóż mam uczynić, aby wcześniej wyświetlone dane
nie znikały mi?

Listingi:

d.php - baza danych o produktach:

  1. <?php
  2. $art['001']['nazwa']='Towar A';
  3. $art['001']['cena']='30';
  4. $art['002']['nazwa']='Towar B';
  5. $art['002']['cena']='40';
  6. $art['003']['nazwa']='Towar C';
  7. $art['003']['cena']='50';
  8. ?>


i.php - formularz numer jeden:


  1. <table border="0" width="616"><tr><td width="210">
  2. <form action="ii.php" method="get">
  3. Litera: <input type="text" name="a" />
  4. <input type="submit" value="Wyslij" />
  5. </form>
  6. </td><td width="396"><?php
  7.  
  8. include ("d.php");
  9.  
  10.  
  11. $a=$_GET['a'];
  12.  
  13.  
  14. if (isset($art[$a])) echo ('<table border=0><tr><td width=119>'.$a.'</td><td width=208>'.$art[$a]['nazwa'].'</td><td width=55>'.$art[$a]['cena'].'</td></tr></table>');
  15.  
  16. ?></td></tr></table>




v.php - formularz numer dwa:


  1. <table border="0" width="616"><tr><td width="210">
  2. <form action="ii.php" method="get">
  3. Litera: <input type="text" name="b" />
  4. <input type="submit" value="Wyslij" />
  5. </form>
  6. </td><td width="396"><?php
  7.  
  8. include ("d.php");
  9.  
  10. $b=$_GET['b'];
  11.  
  12.  
  13.  
  14. if (isset($art[$b])) echo ('<table border=0><tr><td width=119>'.$b.'</td><td width=208>'.$art[$b]['nazwa'].'</td><td width=55>'.$art[$b]['cena'].'</td></tr></table>');
  15. $cena=$art[$b]['cena'];
  16. echo ($cena);
  17.  
  18. ?></td></tr></table>



ii.php - plik główny:

  1. <?php
  2.  
  3. include ("i.php");
  4. echo ("<br><br><br><br>");
  5. include ("v.php");
  6.  
  7. ?>


Ten post edytował dsinfo 11.08.2008, 11:57:10
Powód edycji: Dodałem tag. /webdicepl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
behu
post
Post #2





Grupa: Zarejestrowani
Postów: 52
Pomógł: 16
Dołączył: 8.08.2008
Skąd: London

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


d.php:
  1. <?php
  2. $art['001']['nazwa']='Towar A';
  3. $art['001']['cena']='30';
  4. $art['002']['nazwa']='Towar B';
  5. $art['002']['cena']='40';
  6. $art['003']['nazwa']='Towar C';
  7. $art['003']['cena']='50';
  8. $art['004']['nazwa']='przykład ceny z groszami'; //jeżeli w cenie mają być grosze,
  9. $art['004']['cena']='23.78'; //trzeba użyć kropki, a nie przecinka
  10. ?>



skrypt.php:
  1. <?php
  2. include ("d.php");
  3.  
  4. $dane = array ($_POST['a'], $_POST['b'], $_POST['c'], $_POST['d'], $_POST['e']);
  5. $tab = array (0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd', 4 => 'e');
  6. $data = date('d.m.Y');
  7. $czas = date('G:i');
  8.  
  9. echo '<form action="skrypt.php" method="post">';
  10.  
  11. for($x=0; $x<5; $x++){
  12. if ($dane[$x] != ""){
  13. $tablica[] = $dane[$x]."|".$art[$dane[$x]]['nazwa']."|".$art[$dane[$x]]['cena']."|".$data."|".$czas."r\n";
  14. }
  15.  
  16. echo '<table border="0" width="616">
  17. <tr>
  18. <td width="210">Litera: <input type="text" name="'.$tab[$x].'" value="'.$dane[$x].'" /></td>
  19. <td width="396">';
  20. if (isset($art[$dane[$x]])){
  21. echo '<table border="0">
  22. <tr>
  23. <td width=119>'.$dane[$x].'</td>
  24. <td width=208>'.$art[$dane[$x]]['nazwa'].'</td>
  25. <td width=55>'.number_format($art[$dane[$x]]['cena'], 2, ',', '').' zł</td>
  26. </tr>
  27. </table>';
  28. }
  29. echo ' </td>
  30. </tr>
  31. </table>';
  32. }
  33. echo '<input type="submit" value="Wyslij" />
  34. </form>';
  35.  
  36. if(count($tablica) != '0'){
  37. echo '<form action="akceptuj.php" method="post">';
  38. for($z=0; $z<5; $z++){
  39. echo '<input type="hidden" name="'.$tab[$z].'" value="'.$tablica[$z].'">';
  40. }
  41. echo '<input type="submit" value="Akceptuj" />
  42. </form>';
  43. }
  44. else{
  45. echo 'Musisz wpisac dane..';
  46. }
  47. ?>



akceptuj.php:
  1. <?php
  2. include ("d.php");
  3. $dane = array ($_POST['a'], $_POST['b'], $_POST['c'], $_POST['d'], $_POST['e']);
  4. $suma = 0;
  5.  
  6. $plik = fopen("baza.txt", 'ab');
  7.  
  8. echo '<table border="0" width="400px">';
  9. for($g=0; $g<5; $g++){
  10.  
  11. $exp = explode("|", $dane[$g]);
  12. $suma += $exp[2];
  13.  
  14. if(array_key_exists($exp[0], $art)){
  15. fwrite($plik, $dane[$g]);
  16.  
  17. echo '<tr>
  18. <td width="15%" align="center" valign="middle">'.$exp[0].'</td>
  19. <td width="60%" align="center" valign="middle">'.$exp[1].'</td>
  20. <td width="25%" align="right" valign="middle">'.number_format($exp[2], 2, ',', '').' zł</td>
  21. </tr>';
  22. }
  23. }
  24. echo ' <tr>
  25. <td align="center" valign="middle"></td>
  26. <td colspan="2" align="right" valign="middle">Suma: '.number_format($suma, 2, ',', '').' zł</td>
  27. </tr> 
  28. </table>';
  29.  
  30. fwrite($plik, "r\n");
  31. fclose($plik);
  32. ?>



wtedy baza.txt będzie wyglądać przykładowo tak:
Kod
         001|Towar A|30|12.08.2008|20:48
         002|Towar B|40|12.08.2008|20:48
         001|Towar A|30|12.08.2008|20:48
         004|przykład ceny z groszami|23.78|12.08.2008|20:48
        
         001|Towar A|30|12.08.2008|20:49
         002|Towar B|40|12.08.2008|20:49
         001|Towar A|30|12.08.2008|20:49
         004|przykład ceny z groszami|23.78|12.08.2008|20:49
         004|przykład ceny z groszami|23.78|12.08.2008|20:49
        
         004|przykład ceny z groszami|23.78|12.08.2008|20:49
        
         001|Towar A|30|12.08.2008|20:50
         004|przykład ceny z groszami|23.78|12.08.2008|20:50
        
         001|Towar A|30|12.08.2008|20:52
        
         001|Towar A|30|12.08.2008|20:52
        
         001|Towar A|30|12.08.2008|20:53
         002|Towar B|40|12.08.2008|20:53
         003|Towar C|50|12.08.2008|20:53



Między poszczególnymi klientami jest linia przerwy, żeby było bardziej czytelne.
Jeżeli ma być bez tych przerw, należy usunąć 'fwrite($plik, "\r\n");' znajdujące się przy końcu w pliku 'akceptuj.php'.
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: 6.10.2025 - 23:51