Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> htmlentities, problem z zastosowaniem w pdo
DonJeday
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 24.10.2008
Skąd: Częstochowa

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


Witam,

Mam problem, ponieważ chcę zastosować htmlentities do wyświetlania wszystkich pól wyświetlanych za pomocą tablic asocjacyjnych w pdo do tego używam smartów. Chcę by było to odrazu stosowane.



Mój kod:

  1. <?php
  2.  
  3. $row_html = htmlentities($row);
  4. $smarty->assign('user_data', $row_html);
  5.  
  6. ?>




Jednak zwraca to błąd. W czym to tkwi?

Treść błędu:

Kod
Warning: htmlentities() expects parameter 1 to be string, array given in ...


Ten post edytował DonJeday 19.04.2009, 10:41:49
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
megawebmaster
post
Post #2





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


Weź posprawdzaj czy array_fill'e poprawnie generują tablice (też je print'em (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) Na koniec print'em array_mapa sprawdź. Coś gdzieś musi być. Może niepoprawna ilość jest, czy coś. Sprawdzę jeszcze z Twoimi danymi, specjalnie sobie dopiszę funkcję (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

EDIT: Dobra sprawdziłem - array map zwraca tablicę numerowaną, nie asocjacyjną. Kod jakiego użyłem:
  1. <?php
  2. class Foo{
  3.    private
  4.        $i = 0,
  5.        $tablica= array(
  6.            array('id' => 2, 'description' => 'Szwagierczak i jego maluch', 'link' => 'http://www.youtube.com/watch?v=O9Wckpx9wUg', 'who' => 2 ),
  7.            array('id' => 5, 'description' => 'Najlepszy fragment "Dnia Świra"', 'link' => 'http://www.youtube.com/watch?v=sgTafCVlhA4', 'who' => 2 ),
  8.            array('id' => 12, 'description' => 'ś', 'link' => 'ć', 'who' => 2 ),
  9.            array('id' => 13, 'description' => 'USPDF 2009 Championship', 'link' => 'http://www.youtube.com/watch?v=pWMrfggZzo0', 'who' => 2 )
  10.        );
  11.  
  12.    public function fetch(){
  13.        $this->i++;
  14.        return $this->tablica[$this->i-1];
  15.    }
  16. }
  17. $foo = new Foo;
  18. while ($row_collection = $foo->fetch()) {
  19.    $collection[] = array_map("htmlentities", $row_collection, array_fill(0, count($row_collection), ENT_QUOTES), array_fill(0, count($row_collection), 'UTF-8'));
  20. }
  21.  
  22. print_r($collection);
  23. ?>


Takie wywołanie zwraca:
Kod
Array ( [0] => Array ( [0] => 2 [1] => Szwagierczak i jego maluch [2] => http://www.youtube.com/watch?v=O9Wckpx9wUg [3] => 2 ) [1] => Array ( [0] => 5 [1] => Najlepszy fragment "Dnia Świra" [2] => http://www.youtube.com/watch?v=sgTafCVlhA4 [3] => 2 ) [2] => Array ( [0] => 12 [1] => ś [2] => ć [3] => 2 ) [3] => Array ( [0] => 13 [1] => USPDF 2009 Championship [2] => http://www.youtube.com/watch?v=pWMrfggZzo0 [3] => 2 ) )


Klasę stworzyłem dla wygody (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Co do foreach'a w pętli - oczywiście, że można. W takim wypadku otrzymasz tablicę asocjacyjną, czyli taką jaką być potrzebował (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował megawebmaster 23.04.2009, 11:28:54
Go to the top of the page
+Quote Post
DonJeday
post
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 24.10.2008
Skąd: Częstochowa

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


No to tak jak ja zrobiłęm pętlę ale nic nie wyświetla...



Dobra moze to zostawie i zrobię w tym foreach, lecz robie robie i nie wychodzi...

  1. <?php
  2.  
  3. while ($row_collection = $query -> fetch(PDO::FETCH_ASSOC)) {
  4.          $collectio[] = $row_collection;
  5.      }
  6.      foreach($collectio as $key => $value) $collection[$key]=htmlentities($value, ENT_QUOTES, 'UTF-8');
  7.      $smarty->assign('collection', $collection);
  8.  
  9.  
  10.  
  11. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- DonJeday   htmlentities, problem z zastosowaniem w pdo   19.04.2009, 10:20:43
- - Apocalyptiq   htmlentities przyjmuje w parametrze ciąg znaków, a...   19.04.2009, 11:02:07
|- - DonJeday   Cytat(Apocalyptiq @ 19.04.2009, 12:02...   19.04.2009, 11:19:11
- - pyro   Zauważyłeś zupełnie pustą tablice? Masz to w kodzi...   19.04.2009, 11:21:50
- - kantek   Chyba nie - $row_html jest pusta, a w ...   19.04.2009, 11:25:03
- - DonJeday   jak nie używam tej funkcji wszystko działa wiec ta...   19.04.2009, 11:46:00
- - bim2   Polecę funkcję array_map zamiast robienia foreacha...   19.04.2009, 21:00:14
- - DonJeday   Ehh nie kumam tego array_map... Jest jakiś normaln...   20.04.2009, 19:36:32
- - erix   [PHP] pobierz, plaintext <?php$row_html[...   20.04.2009, 20:25:36
- - megawebmaster   Tablica row jest tablicą asocjacyjną? Jak tak to s...   20.04.2009, 20:33:00
|- - DonJeday   Cytat(megawebmaster @ 20.04.2009, 21:33...   20.04.2009, 21:13:37
- - megawebmaster   Musi Oczywiście zadziała również z tablicą numero...   21.04.2009, 15:00:51
- - DonJeday   A jak ustawić kodowanie utf-8 dla array_map? bo dl...   21.04.2009, 16:07:45
- - megawebmaster   [PHP] pobierz, plaintext <?phpfor($i = 0, $...   21.04.2009, 16:27:36
- - DonJeday   Niestety nie działa to kodowanie. Oto kod: [PHP] p...   22.04.2009, 17:04:14
- - Apocalyptiq   Może w bazie danych jest coś nie tak z tym? Kodowa...   22.04.2009, 17:15:01
- - DonJeday   W bazie jest wszystko ok, bo polskie znaki s...   22.04.2009, 17:37:19
- - erix   [PHP] pobierz, plaintext <?php$a[] = ar...   22.04.2009, 18:44:01
- - megawebmaster   I tak to będzie błąd - do array_map, jako kolejne ...   22.04.2009, 19:02:18
- - DonJeday   No dobra błędu nie ma ale też nic n...   22.04.2009, 19:21:08
- - megawebmaster   Daj w pętli: [PHP] pobierz, plaintext <?phpprin...   22.04.2009, 20:14:20
|- - DonJeday   Cytat(megawebmaster @ 22.04.2009, 21:14...   22.04.2009, 20:49:21
- - megawebmaster   Weź posprawdzaj czy array_fill'e poprawni...   23.04.2009, 11:03:20
|- - DonJeday   No to tak jak ja zrobiłęm pętlę ale nic nie wyświe...   23.04.2009, 14:25:32
- - megawebmaster   [PHP] pobierz, plaintext <?phpwhile ($row_c...   23.04.2009, 16:01:42
|- - DonJeday   Cytat(megawebmaster @ 23.04.2009, 17:01...   23.04.2009, 18:04:32
- - bim2   nie powinno być: [PHP] pobierz, plaintext ...   23.04.2009, 18:22:38
|- - DonJeday   Działa ;* Można zamknąć temat   23.04.2009, 18:37:31
- - megawebmaster   [PHP] pobierz, plaintext <?phpwhile ($row_c...   23.04.2009, 18:58:09
- - bim2   No własnie na gg gadaliśmy i nie chciało zadziałać...   23.04.2009, 18:59:38
- - megawebmaster   Pewnie wyrzuca więcej tablic, zresztą ten sposób n...   23.04.2009, 20:27:26


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 12:05