Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak Uaktywniać Odpowiednie Zmienne?
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cześć. Mam taki programik, który wypisuje dane z tabeli MySQL do pliku txt (oddzielone średnikami) które później wczytam sobie do excela. Skrypt wygląda tak:

  1. <?
  2. require_once(&#092;"config.php\");
  3. mysql_connect (&#092;"$dbhost\",\"$dblogin\",\"$dbhaslo\") or die (\"Nie masz uprawnien\");
  4. mysql_select_db (&#092;"$db\");
  5.  
  6. $ID = $_REQUEST['ID'];
  7. $skad = $_REQUEST['skad'];
  8.  
  9. $query = &#092;"SELECT * FROM zamowienia\";
  10. $result = mysql_query($query);
  11.  
  12. $plik = @fopen(&#092;"dzis.txt\",\"w+\");
  13. @flock($plik,2);
  14. $do_pliku1 = &#092;"Numer zamówienia;Magazyn;Adres;Przewoznik;Status;Data realizacji;Dodatkowe 
    m
  15. ejsce rozladunku 1;Dodatkowe miejsce rozladunku 2;Kilometry;Cena;n\";
  16. echo $do_pliku1;
  17. fwrite($plik, $do_pliku1);    
  18. while ($row = mysql_fetch_array($result)){
  19. $dane_do_pliku = $ID.';'.$row['skad'].';'.$row['adres'].';'.$row['Przewoznik'].';'.$row['Stan'].';'.$row['Data_realizacji'].';'.$row['Dodatkowe_miejsce1'].';'.$row['Dodatkowe_miejsce2'].';'.$row['ilosc_km'].';'.$row['cena'].';'.\"n\";
  20. fwrite($plik, $dane_do_pliku);    
  21. }
  22. @flock($plik,3);
  23. @fclose($plik);
  24.  
  25. //wysyłanie do użytkownika
  26. //kasowanie = unlink
  27. ?>


I teraz mam takie dwa pytania:

1. Wprowadzam dane do pliku. Po kolei...ale chciałbym przy pomocy checkboksów zrobić aby tylko niektóre wchodziły w skład pliku. np. chciałbym mieć tylko ID i cene. jak powinienem nazwać i jak nazwać wartości tych checkboksów?

2. Jak automatycznie, po wygenerowaniu pliku podjąć jego pobieranie z serwera do użytkownika?

Pozdrawiam i bardzo dziękuję za odpowiedź.

Ten post edytował TomASS 16.06.2004, 08:20:55


--------------------
Go to the top of the page
+Quote Post
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




jeśli potrzebujesz tylko wysłąć tak przygotowane dane do użtykowanika, to nie am potrzeby, by je zapisywac w postaci pliku na dysku serwera.
Wystarczy wysłać odpowiedni nagłówek, a następnie wydrukować na ekran zawartoś pliku. Przeglądarka potraktuje to tak, jakby otrzymała plik do pobrania.

A w takiej sytuacji, do przygotowania pozostają jednynie dane, któe chcesz wysłać. Warto więc przygotowac listę z której użytkownik będzie mógł wybrać, któe kolumny go interesują, a z danych otrzymanych od niego wygenerować zapytanie do MySQL.

przykładowy nagłowek
  1. <?
  2. header(&#092;"Content-Type: application/octet-stream\"); 
  3. header(&#092;"Content-Disposition: attachment; filename=nazwa_pliku\"); 
  4. ?>


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
byther
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 15.06.2004
Skąd: Warszawa

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


Formularz niech zawiera checkboxy...
  1. ID <input type="checkbox" name="z[id]" value="1"/><br/>
  2. CENA <input type="checkbox" name="z[cena]" value="1"/><br/>
  3. NAZWA FIRMY <input type="checkbox" name="z[nazwa_firmy]" value="1"/><br/>

W ten sposób w tablicy $_REQUEST['z'] masz pola, które powinny zostać umieszczone w pliku.
  1. <?php
  2.  
  3. $id = $_REQUEST[&#092;"id\"];
  4. $pola = implode(&#092;",\", array_keys($_REQUEST[\"z\"]));
  5. $sql_query = &#092;"SELECT $pola FROM zamowienia WHERE $id\";
  6.  
  7. ?>

Warto jeszcze "upewnić się", że użytkownik wprowadził przynajmniej jedno pole lub przewidzieć pole domyślne.

Ten post edytował byther 16.06.2004, 08:40:23


--------------------
Sygnaturka: jest
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


To nie oto do końca chodzi. Chciałbym mieć możliwość czy do pliku wpisywane są
  1. <?php
  2.  
  3. $row['ID'],&#092;";\",$row['skad'],\";\",$row['kto'].....
  4.  
  5. ?>

czy np
  1. <?php
  2.  
  3. $row['skad'],&#092;";\",$row['kto'].....
  4.  
  5. ?>

(bez $row['ID']winksmiley.jpg - poprostu chciałbym mieć możliwość wpisywania odopwiednich $rowów do pliku.


--------------------
Go to the top of the page
+Quote Post
byther
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 15.06.2004
Skąd: Warszawa

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


A co byś powiedział na to, żeby:
  • pierwszy argument implode() zmienić na średnik
  • tak stworzoną zmienną możesz wykorzystać w inny sposób
Got it? smile.gif


--------------------
Sygnaturka: jest
Go to the top of the page
+Quote Post
TomASS
post
Post #6





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


tak ale co z "$" questionmark.gif jak mam to dokładnie zapisać? Sam zobacz, że nie za bardzo działa :/


--------------------
Go to the top of the page
+Quote Post
byther
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 15.06.2004
Skąd: Warszawa

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


Cytat(TomASS @ 2004-06-17 09:15:13)
tak ale co z "$" questionmark.gif jak mam to dokładnie zapisać? Sam zobacz, że nie za bardzo działa :/

Formularz zapewnia informację nt. pól, które powinny znaleźć się w "raporcie". Jak dane z formularza trafiają do skryptu (tu: w $_REQUEST["z"]), masz tablicę z polami, których nazwa odpowiada tym z tablicy w bazie danych. I co teraz z nimi możesz zrobić?

* możesz je olać z wysoka i poprzestać na wpisywaniu wszystkiego ręcznie
Zalety:
- lekkie, łatwe i przyjemne
Wady:
- j.w.
- nie rozwiązuje problemu

* wykorzystujesz to, co napisałem i pobierasz tylko zaznaczone pola oraz na podstawie tej samej tablicy możesz zapisać je do pliku
Zalety:
- elastyczne i w proste w implementacji
Wady:
- niestety, trzeba to napisać


* właściwie to jest to rozszerzenie poprzedniej opcji - pobierasz wszystkie pola z tablicy, na podstawie formularza tworzysz plik .php, który będzie składać się z $row["nazwa"], itd., a później "przetwarzasz" za pomocą komend ob_*() i include() każdy wpis
Zalety:
- jeżeli jesteś optymistą, wszystko ma jakieś zalety
Wady:
- idąc w tym kierunku możesz skończyć z szablonami opartymi o Smarty, XML/XSLT, inne

Podsumowanie:
Programowanie wymaga myślenia.

pzdr.
byther

PS. Pisałem "na żywo", ale powinno działać. A przynajmniej trochę "naprowadzić" na rozwiązanie.
  1. <?php
  2. $id = $_REQUEST[&#092;"id\"];
  3. $pola = implode(&#092;",\", array_keys($_REQUEST[\"z\"]));
  4. $wynik = mysql_query(&#092;"SELECT $pola FROM tablica WHERE id='$id'\");
  5. $plik = fopen('raport.csv', 'w+');
  6. fwrite($plik, implode(&#092;";\", array_keys($_REQUEST[\"z\"])));
  7. while ($row = mysql_fetch_assoc($wynik)) {
  8. $rekord = array();
  9. foreach ($_REQUEST[&#092;"z\"] as $pole) {
  10. $rekord[] = $row[$pole];
  11. }
  12. fwrite($plik, implode(&#092;";\", $rekord).\"n\");
  13. }
  14. fclose($plik);
  15. ?>


--------------------
Sygnaturka: jest
Go to the top of the page
+Quote Post

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: 19.08.2025 - 13:14