AngularJS - wyświetlanie polskich znaków z tabeli

0

Cześć,
znalazłem taki prosty przykład wyświetlania danych z bazy mysql -> http://softaox.info/angularjs/angularjs-sorting-searching-and-pagination-of-data-table-using-php-mysql/
Wyedytowałem do moich potrzeb, ale nie mogę poradzić sobie z jednym problemem. Gdy podglądam bazę danych mam normalnie polskie znaki. Natomiast w tabeli zamiast polskich znaków wyświetla mi się znak zapytania. Podpowie ktoś jak to zmodyfikować, aby pobierał dane i wyświetlał dane z tabel poprawnie?

0

Pewnie klasycznie: edytor/ide pliki UTF-8 bez BOM, baza danych utf8 itp.

0

A czy w bazie danych masz ustawione kodowanie znaków na utf-8?

0

W bazie danych mam ustawione - utf8_polish_ci
W notepad++ mam ustawione - koduj w UTF-8 (bez BOM)

tak wygląda struktura -> https://imgur.com/TLrN64n

0

Najlepiej zrzuć sobie bazę na dysk, otwórz w nn++ i sprawdź czy masz wszędzie, przy każdej tabeli CHARSET=utf8 na początku w SET NAMES również.

0

Zrzut bazy, otwarty w notepad++.


```-- phpMyAdmin SQL Dump
-- version 4.8.4
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Czas generowania: 14 Sty 2019, 12:38
-- Wersja serwera: 10.1.37-MariaDB
-- Wersja PHP: 7.3.0

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Baza danych: `wysylki`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `wysylki_wszystkie`
--

CREATE TABLE `wysylki_wszystkie` (
  `LP` int(11) NOT NULL,
  `ROK` varchar(4) COLLATE utf8_polish_ci DEFAULT NULL,
  `MIESIAC` varchar(90) COLLATE utf8_polish_ci DEFAULT NULL,
  `TYDZIEN` varchar(2) COLLATE utf8_polish_ci DEFAULT NULL,
  `KLIENT` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `NR_ZAMOWIENIA` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `INDEKS` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `ASORTYMENT` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `ILOSC_KG` int(11) DEFAULT NULL,
  `PAKOWANIE` varchar(30) COLLATE utf8_polish_ci DEFAULT NULL,
  `ILOSC_PALET` varchar(11) COLLATE utf8_polish_ci DEFAULT NULL,
  `DATA_WAZNOSCI` varchar(40) COLLATE utf8_polish_ci DEFAULT NULL,
  `PARTIA` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `KRAJ_DOSTAWY` varchar(40) COLLATE utf8_polish_ci DEFAULT NULL,
  `DATA_DOSTAWY` varchar(40) COLLATE utf8_polish_ci DEFAULT NULL,
  `DATA_PRZYGOTOWANIA` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `WYNIKI_BADAN` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `REALNA_DATA_DOSTAWY` varchar(40) COLLATE utf8_polish_ci DEFAULT NULL,
  `STATUS` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `TRANSPORT` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `OPIEKUN_KLIENTA` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `UWAGI_DJ` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `NR_ZLECENIA` varchar(255) COLLATE utf8_polish_ci DEFAULT NULL,
  `PRODUKCJA_NA_PODSTAWIE` mediumtext COLLATE utf8_polish_ci,
  `UWAGI_1` mediumtext COLLATE utf8_polish_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

--
-- Zrzut danych tabeli `wysylki_wszystkie`
INSERT INTO `wysylki_wszystkie` (`LP`, `ROK`, `MIESIAC`, `TYDZIEN`, `KLIENT`, `NR_ZAMOWIENIA`, `INDEKS`, `ASORTYMENT`, `ILOSC_KG`, `PAKOWANIE`, `ILOSC_PALET`, `DATA_WAZNOSCI`, `PARTIA`, `KRAJ_DOSTAWY`, `DATA_DOSTAWY`, `DATA_PRZYGOTOWANIA`, `WYNIKI_BADAN`, `REALNA_DATA_DOSTAWY`, `STATUS`, `TRANSPORT`, `OPIEKUN_KLIENTA`, `UWAGI_DJ`, `NR_ZLECENIA`, `PRODUKCJA_NA_PODSTAWIE`, `UWAGI_1`) VALUES
(4, '2019', 'Styczeń', '2', 'NULL, NULL, '30200', 'Liść', 1000, '10', 'luz', '01.2020', 'NULL', 'ZAGRANICA', '07.01.2019', 'gotowe', 'zgodne', '10.01.2019', 'dostarczono', NULL, 'NULL', NULL, '+', NULL, NULL),
--
-- Indeksy dla zrzutów tabel
--

--
-- Indeksy dla tabeli `wysylki_wszystkie`
--
ALTER TABLE `wysylki_wszystkie`
  ADD PRIMARY KEY (`LP`);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

--
0

Niby ok, weź jeszcze zobacz czy przy połączeniu z bazą (tam gdzie masz usera i hasło) też masz utf-8, ew. spróbuj z ustawieniami 'utf8_general_ci` i stwórz nową bazę i zaimportuj powyższe (odśwież).

1

Dzięki za naprowadzenie. W pliku łączącym z db brakowało

mysqli_set_charset($conn, "utf8"); 
$conn->set_charset("utf8");

Pozdrawiam

0

Nie chciałem zakładać nowego tematu, ponieważ tyczy się tego samego skryptu.

Jak wyfiltrować wyszukiwarką tylko jedną tabelę? Jak w przykładzie poniżej - Search i Search1 przeszukują wszystkie kolumny, Search2 filtrował tylko w kolumnie Age - data.age

                    <label>Search:</label>
                    <input type="text" ng-model="search" ng-change="filter()" placeholder="Search" class="form-control" />
                    <input type="text" ng-model="search1" ng-change="filter()" placeholder="Search1" class="form-control" />
                    <input type="text" ng-model="search2" ng-change="filter()" placeholder="Search2" class="form-control" />
                </div>
            </div>
            <br/>
            <div class="row">
                <div class="col-md-12" ng-show="filter_data > 0">
                    <table class="table table-striped table-bordered">
                        <thead>
                            <th>Name&nbsp;<a ng-click="sort_with('name');"><i class="glyphicon glyphicon-sort"></i></a></th>
                            <th>Gender&nbsp;<a ng-click="sort_with('gender');"><i class="glyphicon glyphicon-sort"></i></a></th>
                            <th>Age&nbsp;<a ng-click="sort_with('age');"><i class="glyphicon glyphicon-sort"></i></a></th>
                        </thead>
                        <tbody>
                            <tr ng-repeat="data in searched = (file | filter:search |  | filter:search1 |  | filter:search2 | orderBy : base :reverse) | beginning_data:(current_grid-1)*data_limit | limitTo:data_limit">
                                <td>{{data.name}}</td>
                                <td>{{data.gender}}</td>
                                <td>{{data.age}}</td>
                            </tr>
                        </tbody>
                    </table>
                </div>

1 użytkowników online, w tym zalogowanych: 0, gości: 1