Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][html] jak przenieść tabelkę ze strony do excela
kozioł
post
Post #1





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 9.12.2006

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


Witam ,

na stronie mam skrypt który wyświetla mi tabelkę z bazy sql


to kod który odpowiada za utowrzenie tabelki:

  1. <?php
  2. echo "<TABLE BORDER='2'>";
  3. echo "<TR>";
  4. echo "<TH>kierunek</TH><TH>telefon</TH><TH>abonent</TH><TH>rodzaj</TH><TH>odbiorca</TH><TH>rezultat</TH>";
  5. echo "</TR>";
  6.  
  7. while ($row = mysql_fetch_array($result))
  8. {
  9. echo "<TR>";
  10. echo "<TD>", $row['kierunek'],"</TD><TD>", $row['telefon'] ,"</TD><TD>", $row['abonent'] ,"</TD><TD>", $row['rodzaj'] ,"</TD>
  11. <TD>", $row['odbiorca'] ,"</TD>";
  12. echo '<TD><SELECT NAME="Rezultat"><OPTION>Pozytywne<OPTION>Negatywne<OPTION>Nieskuteczne</SELECT></TD>';
  13. echo "</TR>";
  14. }
  15. echo "</TABLE>";
  16. echo '<input type="button" value="Zapisz" onClick="Zapis()">'
  17. ?>



jak teraz dodać do tego przycisk np. export

aby te dane co widnieją w tabelce otworzyły się w excelu ,

w moich książkach nie ma opisanych takich przypadków , a w necie są jakieś przykłady ale nie takie

dziękuję jak zwykle za pomoc

pozdrawiam

Ten post edytował kozioł 3.06.2007, 18:46:36
Go to the top of the page
+Quote Post
abc667
post
Post #2





Grupa: Zarejestrowani
Postów: 229
Pomógł: 0
Dołączył: 29.05.2007

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


musisz przesłać odpowiednie nagłówki na początku
Go to the top of the page
+Quote Post
kozioł
post
Post #3





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 9.12.2006

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


ale to robi sie tak ,

że przesyła się zmienne do nastepnego skryptu?
Go to the top of the page
+Quote Post
Juzbrig
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.05.2007

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


Tu masz taką prostą klase co generuje do excela, to sobie jej uzyj albo przeanalizuj
http://sourceforge.net/projects/php-doc-xls-gen/
Go to the top of the page
+Quote Post
kozioł
post
Post #5





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 9.12.2006

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


Witam

jako że nie bardzo wiem jak przenieść zawartość tabelki na stronie , do EXCEL-a ,

to pomyślałem że może zrobić to tak ,


np. zrobic skrypt z takim samym kodem jak ten który wyświetla dane na stronie , i dane umieścić w excel-u

Najpierw jednak chciałem przetestować to na czymś bardzo prostym ,

i mam tak:

  1. <?
  2.  $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  3. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  4.  
  5. $naglowki = array (
  6.  
  7. 'odbiorca',
  8. 'klient',
  9. 'Rezultat'
  10. );
  11.  
  12. $nastepny_wiersz = "n"; // separatory
  13. $nastepna_kolumna = "t"; // separatory
  14.  
  15.  
  16.  
  17.  
  18.  
  19. function odczyt($id) {
  20.  
  21.  
  22.  
  23. $sql="SELECT * FROM neo "; // zapytanie o wszystkie pola z tablicy 
  24. $query=mysql_query($sql); // wykonanie zapytania
  25.  
  26.  
  27. $seria = array (
  28. $id,
  29. $neo['odbiorca'],
  30. $neo['klient'],
  31. $neo['rezultat'],
  32. $nast&#281;pny_wiersz
  33. );
  34.  
  35. return $seria;
  36. }
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45. if($plik = fopen("ex.xls", "wb")) // utworzenie pliku
  46. echo "<br>PLIK ZOSTAŁ UTWORZONY !!! ";
  47. else
  48. echo "Błąd tworzenia pliku !!!";
  49.  
  50.  
  51.  
  52. foreach ($naglowki as $pole) { // pętla odczytująca tylko tablice
  53. $dane.="$pole $nastepna_kolumna"; // zmienna $dane się zapełnia
  54.  
  55. }
  56.  
  57.  
  58.  
  59. $sql="SELECT * FROM neo";
  60. $query=mysql_query($sql);
  61.  
  62. while ($numer=mysql_fetch_array($query))
  63.  
  64. foreach (odczyt($numer['$id']) as $pole) { // pętla odczytująca tylko tablice
  65. $dane.="$pole $nastepna_kolumna"; // zmienna $dane się zapełnia
  66. $dane.=$nastepny_wiersz;
  67. }
  68.  
  69.  
  70. fputs($plik, $dane); //zapisanie danych w pliku
  71. fclose($plik);
  72.  //zamknięcie pliku
  73.  
  74. ?>


ale plik zapisuje się tylko z nagłówkami bez wartości z bazy

czemu?

jak zwykle dzięki za wskazówki i podpowiedzi

Ten post edytował kozioł 5.06.2007, 13:34:06
Go to the top of the page
+Quote Post
Darti
post
Post #6





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Cytat
  1. <?php
  2. $seria = array (
  3. $id,
  4. $neo['odbiorca'],
  5. $neo['klient'],
  6. $neo['rezultat'],
  7. $nast&#281;pny_wiersz
  8. );
  9. ?>


polskie znaki w bazie danych czy jako nazwy zmiennych nie są wskazane...
poza tym w funkcji, w której to występuje nie ma żadnego fetch_array, jest samo gołe zapytanie do bazy bez interpretacji tego, co baza zwraca.

Ten post edytował Darti 5.06.2007, 13:45:39


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kozioł
post
Post #7





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 9.12.2006

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


napisałem tak:

  1. <?php
  2. $sql="SELECT * FROM neo "; // zapytanie o wszystkie pola z tablicy USER gdzie ID będzie równe $id
  3. $query=mysql_query($sql); // wykonanie zapytania
  4. if (!$neo=mysql_fetch_array($query)) echo mysql_error(); //odczyt danych z warunkiem jeżeli sie nie powiedzie
  5. ?>



i teraz w pliku mam dane tylko z pierwszego wiersza z bazy sql , i to w jednej kolumnie pod sobą powieloną 6 razy a miedzy nimi po dwie komórki puste

?
Go to the top of the page
+Quote Post
Darti
post
Post #8





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


wywal w ogóle funkcję odczyt bo nie ma ona sensu kompletnie, niżej zrób tak:
  1. <?php
  2. $sql="SELECT * FROM neo";
  3. $query=mysql_query($sql);
  4.  
  5. while ($wiersz_z_bazy=mysql_fetch_array($query))
  6. {
  7. $temp[] = implode($nastepna_kolumna, $wiersz_z_bazy);
  8. }
  9. $dane.=implode($nastepny_wiersz, $temp);
  10. ?>

edit
ewentualnie jak chodzi Ci tylko o 3 kolumny to podobnie, ale zaznacz co i gdzie tak:
  1. <?php
  2. $sql="SELECT * FROM neo";
  3. $query=mysql_query($sql);
  4.  
  5. while ($row=mysql_fetch_array($query))
  6. {
  7. $wiersz_z_bazy = array ($row['odbiorca'], $row['klient'], $row['rezultat']);
  8. $temp[] = implode($nastepna_kolumna, $wiersz_z_bazy);
  9. }
  10. $dane.=implode($nastepny_wiersz, $temp);
  11. ?>


Ten post edytował Darti 5.06.2007, 15:47:37


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kozioł
post
Post #9





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 9.12.2006

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


dzięki zadziałało mi , ale nie mam nagłówków ,

chciałem to teraz powiązać z formularzem kóry wyświetla tabelke na stronie ,

aby importować do excela , te same dane co się wyświetlają w tabelcę

ale maminfo że "query was empty"


  1. <?php
  2. if ((isset($_SESSION['user_logged']) &&
  3.  $_SESSION['user_logged'] != "") ||
  4. (isset($_SESSION['user_password']) &&
  5.  $_SESSION['user_password'] != "")) {
  6. // Nic nie rób!
  7. } else {
  8.  
  9. $redirect = $_SERVER['PHP_SELF'];
  10. header("Refresh: 5; URL=logowanie.php?redirect=$redirect");
  11.  
  12. echo "Nie jesteś zalogowany. Dokonujemy przekierowania... " .
  13. "Cierpliwości!<br>";
  14. echo "(Jeżeli przeglądarka nie obsługuje przekierowań, " .
  15. "<a href="logowanie.php?redirect=$redirect">kliknij tutaj</a>)";
  16.  
  17. die();
  18. }
  19. ?>
  20. <html>
  21. <head>
  22. <title>
  23. export
  24. </title>
  25. </head>
  26. <body background="C:Program FilesVertrigoServwwwBAZYDANCYH_plikilgren006.jpg" bgproperties="fixed">
  27. <?php
  28.  
  29.  $conn = mysql_connect("localhost", "root", "vertrigo") or die(mysql_error());
  30. $db = mysql_select_db("baza1",$conn) or die ("nie mogę połączyć z bazą");
  31.  
  32.  
  33. $nastepny_wiersz = "n"; // separatory
  34. $nastepna_kolumna = "t"; // separatory
  35.  
  36.  
  37. $rodzaj=$_POST['rodzaj'];
  38. $typ=$_POST['typ'];
  39. $login=$_SESSION['user_logged'];
  40. if($rodzaj=='all')
  41. {
  42. $sql = "SELECT * FROM neo WHERE rodzaj != '' and rezultat = '' and odbiorca = '$login' ";
  43. }
  44. else
  45. {
  46.  
  47. $sql = "SELECT * FROM neo WHERE rodzaj = '$rodzaj' and rezultat ='' and odbiorca = '$login' ";
  48. }
  49. $query = mysql_query($query) or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
  50.  
  51.  
  52.  
  53. while ($wiersz_z_bazy=mysql_fetch_array($query))
  54. {
  55. $temp[] = implode($nastepna_kolumna, $wiersz_z_bazy);
  56. }
  57. $dane.=implode($nastepny_wiersz, $temp);
  58.  
  59. if($plik = fopen("moj_plik.xls", "wb")) // utworzenie pliku
  60. echo "<br>PLIK ZOSTAŁ UTWORZONY !!! ";
  61. else
  62. echo "Błąd tworzenia pliku !!!";
  63.  
  64. fputs($plik, $dane); //zapisanie danych w pliku
  65.  
  66. fclose($plik); //zamknięcie pliku
  67.  
  68. ?>


i nie wiem co co teraz mam źle
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: 20.08.2025 - 05:38