Acentuação em banco de dados / PHP x Harbour

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Acentuação em banco de dados / PHP x Harbour

Mensagem por JoséQuintas »

cnexao.png
Pois é, só pra lembrar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Acentuação em banco de dados / PHP x Harbour

Mensagem por cjp »

Sim, vc disse.
Só que eu não sabia como fazer isso.
Mas que bom que o Vlademiro sabe.
Inacio de Carvalho Neto
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Acentuação em banco de dados / PHP x Harbour

Mensagem por cjp »

Estou tentando adaptar as demais páginas, mas encontrei problemas em algumas.

Veja esta, por exemplo:

Código: Selecionar todos

<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="">
  <meta name="author" content="Tony Moreira de Araujo">
  
  <title>Bíblia</title>

  <!-- Bootstrap core CSS -->
    <link href="/site/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="/site/css/style.css" rel="stylesheet">
</head>

<body>

  <main>
<?php
	 
        echo "<font size='2'>";
        include("conexao.php");
        conectk("","");
        $sql = "SELECT biblia,paginas,leitura,parei,data,qual FROM leiturabiblica WHERE id<=4";
        $rs=mysql_query($sql);
        if (!$rs)
         {
		 exit("Error in SQL: ".$sql);
		 }
         $nrec = mysql_num_rows($rs); //total de registros
        if($nrec>0)
         {
         echo "<table>";
         echo '<table Border="1"><tr>';
//         echo '<font size="1">';
         ?>
         <style>
         table, th, td 
		 {
          border:2px solid black;
         }
         </style>
         <?php
         echo "<th>Bíblia</th>";
         echo "<th>Páginas</th>";
         echo "<th>Leitura</th>";
         echo "<th>Parei</th>";
         echo "</tr>";
         $i=1;
         while ($l = mysql_fetch_array($rs))
         {
          echo "<tr>";
          echo '<font size="2">';
          echo "<th><p align='Left'>".utf8_encode($l['biblia'])."</p></th>";
          echo "<th><p align='Left'>".utf8_encode($l['paginas'])."</p></th>";
          echo "<th><p align='Left'>".utf8_encode($l['leitura'])."</p></th>";
          echo "<th><p align='Left'>".utf8_encode($l['parei'])."</p></th>";
//          echo "<th><p align='Left'>".utf8_encode(substr($l['assunto'],0,28))."</p></th>";
          echo "</tr>";  
          $i++;
		  }
         echo "<table>";
         echo '<table Border="1"><tr>';
//         echo '<font size="2">';
         ?>
         <style>
         table, th, td 
		 {
          border:2px solid black;
         }
         </style>
         <?php
         $sql = "SELECT biblia,paginas,leitura,parei,data,qual FROM leiturabiblica WHERE data>'".(date('H')-3)."'";
         $rs=mysql_query($sql);
         if (!$rs)
          {
		  exit("Error in SQL: ".$sql);
		  }
         echo "<tr>";
         echo "<th>Data</th>";
         echo "<th>Qual</th>";
         echo "</tr>";
         $i=5;
         while ($l = mysql_fetch_array($rs))
         {
          echo "<tr>";
          echo '<font size="1">';
          echo "<th><p align='Left'>".$l['data']."</p></th>";
          echo "<th><p align='Left'>".utf8_encode($l['qual'])."</p></th>";
//          echo "<th><p align='Left'>".utf8_encode(substr($l['assunto'],0,28))."</p></th>";
          echo "</tr>";  
          $i++;
         } 
         echo "</table>";
         }
        echo '<a href="biblia2.php" class="btn btn-primary btn-lg col-5 col-xs-5 col-sm-5 col-md-5 col-lg-5 col-xl-5 align-self-center d-flex flex-column justify-content-center align-items-center line-6">Alterar Bíblia</a>';
?>

        </div>
      </div>
    </div>

  </main>
  <script src="./bootstrap/js/bootstrap.bundle.min.js"></script>
</body>

</html>

A função conectk está assim:

Código: Selecionar todos

function conectk()
{
$dthj=date('Y-m-d');
$banco = "xxx";
$usuario = "xxx";
$senha = "xxx";
$hostname = "mysql.xxx.com.br";

$conn = mysql_connect($hostname,$usuario,$senha);
mysql_set_charset("UTF8", $conn);
if (!$conn) 
   {
   echo "<br>";
   echo "Não conectou";
   }

$sel=mysql_select_db($banco,$conn);
if (!sel)
   {
    echo "Não foi possível abrir o banco de dados";
    echo 'MySQL Error: ' . mysql_error();
    exit;
	}
}	
Veja nos anexos como está aparecendo a tabela no Heidisql e como aparece na consulta deste php.

O collation da tabela parece estar correto:
CREATE TABLE `leiturabiblica` (
`Biblia` CHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
`paginas` CHAR(25) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
`leitura` CHAR(30) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
`parei` CHAR(30) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
`data` DATE NULL DEFAULT NULL,
`qual` CHAR(16) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
`id` INT(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`) USING BTREE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=14
;
Será que ainda estou fazendo algo errado?
Anexos
tela.png
Heidi1.png
Inacio de Carvalho Neto
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Acentuação em banco de dados / PHP x Harbour

Mensagem por Vlademiro »

Não é necessário usar a função utf8_encode porque o dado já está em utf8.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Acentuação em banco de dados / PHP x Harbour

Mensagem por cjp »

Verdade. Tinha esquecido deste detalhe.
Tirei e resolveu.
Muito obrigado.
Inacio de Carvalho Neto
Responder