Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Al llenar un select con los registros de una tabla muestra �

Estas en el tema de Al llenar un select con los registros de una tabla muestra � en el foro de PHP en Foros del Web. Hola. Tengo una tabla en un servidor SQL Server, la tabla tiene un campo llamado fracción tipo charvar(20), los registros son de este tipo: 59069903 ...
  #1 (permalink)  
Antiguo 17/09/2014, 12:57
Avatar de jclaurian  
Fecha de Ingreso: diciembre-2004
Ubicación: Tijuana
Mensajes: 85
Antigüedad: 19 años, 4 meses
Puntos: 0
Pregunta Al llenar un select con los registros de una tabla muestra �

Hola.

Tengo una tabla en un servidor SQL Server, la tabla tiene un campo llamado fracción tipo charvar(20), los registros son de este tipo:
59069903
12345678
87654321
01478515
15648462

Tengo un archivo php donde lo único que hace es jalar todos esos registros y mostrarlos en un select, funciona sin problema, mi código es este:
Código:
Código:
function fracciones() {
$data = new Connection('DATA');
$sql = "SELECT fraccion FROM fracciones";
$res = $data->query($sql);
echo "<select>";
while( $fraccion = odbc_fetch_array($res) ) {
echo "<option>".$fraccion[fraccion]."</option>";		
}
echo "</select>";
}
//Imprimo el "formulario"
fracciones();
Como mencione, esto hace justo lo que quiero. Pero mi problema es a la hora de implementarlo dentro de un formulario en otro archivo. Cuando llamo a esta función, me imprime el select, pero al imprimir los registros, algunos se muestran de la siguiente manera:
59069903��������
59069903��������
59069903��������
59069903��������
12345678
87654321
01478515
15648462
...

Los que muestran esos caracteres raros son repetidos como en el ejemplo, no entiendo dónde puede estar el problema, si llamo a la función en otro archivo que no tenga nada los imprime bien, pero en mi formulario lo muestra así.

¿Qué podrá ser el problema?
__________________
<< Solo se que no se nada >>
  #2 (permalink)  
Antiguo 17/09/2014, 13:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Al llenar un select con los registros de una tabla muestra �

Cita:
¿Qué podrá ser el problema?
Es complicado de adivinar, pero a simple vista parece un tema de codificación, deberías revisar exactamente cómo están guardados dichos datos en tu DB porque sencillamente esos caracteres no deberían mostrarse por arte de magia.

Además, sería conveniente si no es problema propio de tu script y su codificación, puede que eso ande contaminando tus resultados.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/09/2014, 13:19
Avatar de jclaurian  
Fecha de Ingreso: diciembre-2004
Ubicación: Tijuana
Mensajes: 85
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Al llenar un select con los registros de una tabla muestra �

Ya lo pude solucionar, tenía un archivo de funciones incluido en mi código donde tenia la línea: header('Content-Type: text/html; charset=UTF-8');

La elimine y enseguida ya funcionó mi formulario.

Es raro, yo pensaba que esa línea era necesaria para poder imprimir acentos y ñ, pero fue al revés.

Gracias.
__________________
<< Solo se que no se nada >>
  #4 (permalink)  
Antiguo 17/09/2014, 13:24
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Al llenar un select con los registros de una tabla muestra �

Cita:
Iniciado por jclaurian Ver Mensaje
Es raro, yo pensaba que esa línea era necesaria para poder imprimir acentos y ñ, pero fue al revés.
Probablemente la codificación del archivo mismo no era siquiera UTF-8 y al forzarla sencillamente se rompía todo.

Te sugiero estudiar más acerca de tipos de encoding, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/09/2014, 13:35
Avatar de jclaurian  
Fecha de Ingreso: diciembre-2004
Ubicación: Tijuana
Mensajes: 85
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Al llenar un select con los registros de una tabla muestra �

Gracias pateketrueke, le echaré un ojo
__________________
<< Solo se que no se nada >>

Etiquetas: Ninguno
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




La zona horaria es GMT -6. Ahora son las 08:44.