Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [MySQL][PHP]Eksport do excela - format liczb, Mają być przecinki zamiast kropek
Tomplus
post 30.01.2019, 16:22:22
Post #21





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Pozostaje użyć to w ten sposób:

  1. SELECT
  2. FORMAT(`kolumna_1`, 2, 'de_DE') `kolumna_1`
  3. FORMAT(`kolumna_2`, 2, 'de_DE') `kolumna_2`,
  4. FORMAT(`kolumna_3`, 2, 'de_DE') `kolumna_3`,
  5. FORMAT(`kolumna_4`, 2, 'de_DE') `kolumna_4`,
  6. FORMAT(`kolumna_5`, 2, 'de_DE') `kolumna_5`,
  7. FORMAT(`kolumna_6`, 2, 'de_DE') `kolumna_6`
  8. FROM {$table} WHERE `ID` = 5;


Lub bez formatowania liczb w SQL, a zamiast tego formatujesz w PHP:


tworzysz funkcję:

  1. function numberToExcel($num){
  2. if(is_numeric($num)) {
  3. return str_replace('.', ',', $num);
  4. } else {
  5. return $num;
  6. }
  7. }



a później w pętli ją stosujesz:

  1. {
  2. $csv_output.= numberToExcel($rowr[$j]).";";
  3. }
Go to the top of the page
+Quote Post
Therminus
post 2.02.2019, 10:21:29
Post #22





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 24.05.2015

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


Dzięki @Tomplus

Wszystko działa tak jak chciałem.
Kod całości dla potomności smile.gif

  1. $host = 'localhost';
  2. $user = 'admin';
  3. $pass = 'haslo';
  4. $db = 'nieruchomosci';
  5. $table = 'budynki';
  6. $file = 'nazwa_pliku';
  7. $link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
  8. mysql_select_db($db) or die("Can not connect.");
  9.  
  10. mysql_query('SET NAMES CP1250');
  11. $zapytanie = "SELECT * FROM $table WHERE `ID` = '5' ";
  12. $result = mysql_query ("SHOW COLUMNS FROM ".$table."");
  13. $i = 0;
  14. if (mysql_num_rows($result) > 0)
  15. {
  16. while ($row = mysql_fetch_assoc($result))
  17. {
  18. $csv_output.= $row['Field'].";";
  19. $i++;
  20. }
  21.  
  22. }
  23. function numberToExcel($num){
  24. if(is_numeric($num)) {
  25. return str_replace('.', ',', $num);
  26. } else {
  27. return $num;
  28. }
  29. }
  30. $csv_output.= "\n";
  31. $values = mysql_query($zapytanie);
  32. while ($rowr = mysql_fetch_row($values))
  33. {
  34. $csv_output.= "\n";
  35. for ($j=0;$j<$i;$j++)
  36. {
  37. $csv_output.= numberToExcel($rowr[$j]).";";
  38. }
  39. }
  40. $filename = $file."_".date("Y-m-d_H-i",time());
  41. header("Content-type: application/vnd.ms-excel");
  42. header("Content-disposition: csv" . date("Y-m-d") . ".csv");
  43. header("Content-disposition: filename=".$filename.".csv");
  44. echo $csv_output;
Go to the top of the page
+Quote Post
Tomplus
post 2.02.2019, 11:48:46
Post #23





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Jak zamykasz temat, to najlepiej dać POMÓGŁ osobom które pomogły.
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
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 Wersja Lo-Fi Aktualny czas: 29.03.2024 - 10:58