Foros del Web » Programando para Internet » PHP »

Caracteres no validos al importar datos de Mysql

Estas en el tema de Caracteres no validos al importar datos de Mysql en el foro de PHP en Foros del Web. Buenas Tengo una base de datos mysql, y en ella una tabla que se llama Almacén, tipo Myisam y codificada como utf8_general_ci , y en ...
  #1 (permalink)  
Antiguo 27/07/2018, 02:37
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 9 meses
Puntos: 1
Caracteres no validos al importar datos de Mysql

Buenas

Tengo una base de datos mysql, y en ella una tabla que se llama Almacén, tipo Myisam y codificada como utf8_general_ci , y en esta tabla, un campo llamado "calle" que esta codificado como utf8_spanish_ci.

Bien, pues si abro la tabla con phpmyadmin, los datos escritos en este campo se ven correctamente, las ñ, los acentos, etc.

ahora quiero extraer una calle y presentarla en html y no hay forma de que me lo presente adecuadamente.

aqui el codigo:

Código PHP:
<?php
session_start
();
if(!isset(
$_SESSION['contra'])){
  
header("Location:../index.php");
}
header("Content-Type: text/html;charset=utf-8");
$usuario $_SESSION["usuario"];
$contra $_SESSION["contra"];
require_once 
"conn.php";
$connect->set_charset("utf8");
$result2=mysqli_query ($connect"SELECT CODIGO,COMPANIA,CALLE,POBLA,PROVIN,CP,TELEFONO,RUTA,C_ALM from almacen where codigo='$contra';");
$num_total_registros2 mysqli_num_rows($result2);
if (
$num_total_registros2>0) {
  
?>
  <!DOCTYPE html>
  <html>
  <head>
    <title>Zona Clientes</title>
    <link rel="stylesheet" type="text/css" href="css/formatos.css">
    <script type="text/javascript" src="css/mio.js"></script>
  </head>
  <body onload="nobackbutton();">
    <img src='imagenes/logoemp.jpg' width='143' height='53'/>
    <table border="1" width="100%" bgcolor="#6495ED" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#000000">
      <tr>
        <td width="100%">
          <h1>ELEGIR SUCURSAL</h1>
        </td>
      </tr>
    </table>
    <p> &nbsp; </p>
    <div style="text-align:center;">
      <table border="2" style="margin: 0 auto;">
        <?php
        
echo "<tr> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>NOMBRE</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>DIRECCION</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>POBLACION</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>PROVINCIA</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>C.POSTAL</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>SELECCION</b></center></font></td> \n";
        echo 
"</tr> \n";
        
$nCont=0;
        while (
$row2 mysqli_fetch_array($result2)){
     
?>
          <tr>
            <form action="ponsesion.php" method="post"><!-- abre tu form -->
              <td><left><?php echo trim($row2["COMPANIA"]);                   ?><input type="hidden" name="compania" value="<?php echo trim($row2["COMPANIA"]);?>"></left></td>
              <td><left><?php echo ucwords(strtolower(trim($row2["CALLE"]))); ?><input type="hidden" name="calle_alm" value="<?php echo trim($row2["CALLE"]);?>"></left></td>
              <td><left><?php echo ucwords(strtolower(trim($row2["POBLA"]))); ?><input type="hidden" name="pobla_alm" value="<?php echo trim($row2["POBLA"]);?>"></left></td>
              <td><left><?php echo ucwords(strtolower(trim($row2["PROVIN"])));?><input type="hidden" name="provin_alm" value="<?php echo trim($row2["PROVIN"]);?>"></left></td>
              <td><center><?php echo trim($row2["CP"]);                       ?><input type="hidden" name="cp" value="<?php echo trim($row2["CP"]);?>"></center></td>
              <td colspan=5 align=center><b><input type=submit value='Confirmar' style="background-color:#61a11a; color:#fff;"></b></center></td>
              <input type="hidden" name="telefono" value="<?php echo trim($row2["TELEFONO"]);?>">
              <input type="hidden" name="ruta" value="<?php echo trim($row2["RUTA"]);?>">
              <input type="hidden" name="almacen" value="<?php echo trim($row2["C_ALM"]);?>">
            </form>
          </tr>
          <?php
          $nCont 
+= $nCont+1;
        }
        echo 
"</table> \n";
        echo 
"</div> \n";
      }
      else {
        echo 
"<META HTTP-EQUIV=REFRESH CONTENT='0; URL=ponsesion.php'>";
      }
      
?>
    </table>
  </div>
</body>
</html>
he probado a poner :
<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> en la cabecera, y nada
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> y tampoco

tambien utf8_encode, utf8_decode,

cuando me presenta en pantalla:
Código PHP:
             <td><left><?php echo ucwords(strtolower(trim($row2["CALLE"]))); ?><input type="hidden" name="calle_alm" value="<?php echo trim($row2["CALLE"]);?>"></left></td>
depende si pongo utf8_encode u otra cosa van variando los caracteres raros, es decir unas veces en la ñ aparece una interrogacion, otras veces un simbolo ascii raro etc.

Que puede ser?

Saludos
  #2 (permalink)  
Antiguo 27/07/2018, 04:55
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Respuesta: Caracteres no validos al importar datos de Mysql

Como está codificado en archivo en ansi o utf-8? Tienes que convertir el archivo a utf-8

Saludos.
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #3 (permalink)  
Antiguo 27/07/2018, 05:05
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Caracteres no validos al importar datos de Mysql

Buenas

No hay archivo, por lo tanto no esta codificado en nada, lo que hay, como he explicado es un dato que esta en una tabla mysql, que tiene un cotejamiento utf8_spanish_ci y creo que por lo tanto es utf8, y ahora lo que pretendo es que me lo muestre en pantalla, dentro de un html.

Gracias de antemano por contestar

Saludos
  #4 (permalink)  
Antiguo 22/08/2018, 05:53
 
Fecha de Ingreso: diciembre-2012
Mensajes: 3
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Caracteres no validos al importar datos de Mysql

Hola. El compañero "sotadeoro" se referia al archivo script .php. Usa un editor como notepad++ y verifica que el archivo este en utf8 sin bum. Esas son cosas pequeñas pero que terminan desesperando.

Etiquetas: caracteres, html, mysql, nombre, query, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:14.