0
<?php
        require ('sql_connect.php');

        $query = "select * from `products`";
        $result = mysql_query($query);

        while($row = mysql_fetch_array($result))
        {
            $imagem = $row['imagem'];
            $texto = $row['texto'];

            echo "<img src=Images/Products/$imagem> <br> $texto";
        }
        ?>    

I have the image and the text of the image that i want to show in my database.

I show the image but i have problems with the text... The text dont show the enters/spaces and the accents.

Image of problem: https://i.stack.imgur.com/khw12.png

I want this: https://i.stack.imgur.com/khw12.png#1

Isaac Bennetch
  • 11,830
  • 2
  • 32
  • 43
rubcpires
  • 13
  • 5
  • Welcome to Stack Overflow! You should use **[`MySQLi`](http://cz1.php.net/manual/en/book.mysqli.php)** or **[`PDO`](http://cz1.php.net/manual/en/book.pdo.php)** instead of **[`mysql_*`](http://cz1.php.net/manual/en/book.mysql.php)** functions, which are deprecated and will be removed in the future versions of PHP. [More information avalible here](http://php.net/manual/en/mysqlinfo.api.choosing.php). – Petr R. Jun 04 '14 at 17:31

1 Answers1

1

This is happening because you didn't properly set the encoding to UTF-8 (or another one that contains all characters you want to display). To do this, you need to:

  • Set the encoding to UTF-8 in the database itself (you can skip this step if you can see the text properly in PhpMyAdmin).
  • Tell PHP that you're using UTF-8. To do this, run:

    mysql_query("SET NAMES utf8");
    

    right after you connect to the database (add this line to the end of your sql_connect.php file).


Please note that you shouldn't use mysql_* functions anymore (see my comment on your question). If you switch to MySQLi, you can run this:

$db->set_charset("utf-8");

to change the charset.


See also:

Community
  • 1
  • 1
Petr R.
  • 1,247
  • 2
  • 22
  • 30