Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html] jak przenieść tabelkę ze strony do excela
Forum PHP.pl > Forum > Przedszkole
kozioł
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
abc667
musisz przesłać odpowiednie nagłówki na początku
kozioł
ale to robi sie tak ,

że przesyła się zmienne do nastepnego skryptu?
Juzbrig
Tu masz taką prostą klase co generuje do excela, to sobie jej uzyj albo przeanalizuj
http://sourceforge.net/projects/php-doc-xls-gen/
kozioł
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
Darti
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.
kozioł
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

?
Darti
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. ?>
kozioł
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
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.