Foros del Web » Programando para Internet » PHP »

mssql_fetch_array no me regresa datos completos

Estas en el tema de mssql_fetch_array no me regresa datos completos en el foro de PHP en Foros del Web. Hola que tal, mi pregunta es si a alguien le ha ocurrido que una consulta a base de datos no regrese los datos completos, por ...
  #1 (permalink)  
Antiguo 20/05/2011, 10:46
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
mssql_fetch_array no me regresa datos completos

Hola que tal, mi pregunta es si a alguien le ha ocurrido que una consulta a base de datos no regrese los datos completos, por ejemplo, en mi BD tengo una tabla con un campo llamado Noticia, en la cual tengo un dato por ejemplo: "Las comunidades indígenas son muy vulnerables a enfermedades" y al realizar la consulta solo me regresa esto: "Las comunidades indígenas son muy vulnerables a", estoy utilizando SQL Server, mi codigo es el siguiente:
Código PHP:
    $query "SELECT Noticia FROM NoticiasMundo";
    
$result mssql_query($query);
    
$tot mssql_num_rows($result);
    
$num rand(1,$tot);
    
$i 1;
    
$array = array("á"=>"á","é"=>"é","í"=>"í","ó"=>"ó","ú"=>"ú""ñ"=>"ñ","ü"=>"ü");
    while(
$row mssql_fetch_array($resultMSSQL_BOTH))
    {
    echo 
"Noticia ".$i.":";
    echo 
"<br>";
    echo 
strtr($row['Noticia'],$array);
    echo 
"<br><br>";
    
$i++;
    } 
Todo me funciona correctamente, solo el detalle de que no me regresa la cadena completa como la tengo en la BD.
Espero me alla dado a entender.
  #2 (permalink)  
Antiguo 20/05/2011, 10:59
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: mssql_fetch_array no me regresa datos completos

Quizá el problema está en la codificación del texto, que el navegador no te lo muestra.
Si haces un strlen($noticia) sabrás el tamaño real de la cadena que te devuelve la consulta, y por cierto, sería mejor que usaras codificación utf8 para transformar caracteres especiales en vez de usar el strtr, algo así: $noticia=utf8_encode($noticia).
  #3 (permalink)  
Antiguo 20/05/2011, 11:02
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por ocp001a Ver Mensaje
Quizá el problema está en la codificación del texto, que el navegador no te lo muestra.
Si haces un strlen($noticia) sabrás el tamaño real de la cadena que te devuelve la consulta, y por cierto, sería mejor que usaras codificación utf8 para transformar caracteres especiales en vez de usar el strtr, algo así: $noticia=utf8_encode($noticia).
Lo que pasa que ese código lo estoy utilizando en asterisk para un TTS (Text To Speech) y solamente así me respeta los acentos, con respecto a lo otro, realizo la misma consulta en la base de datos directamente y si me muestra los datos completos, lo raro es que tengo varias noticias y solamente sucede eso en unas cuantas, no en todas, teniendo diferente tamaño de caracteres todas.
  #4 (permalink)  
Antiguo 20/05/2011, 11:11
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: mssql_fetch_array no me regresa datos completos

si muestras la noticia simplemente asi:

echo $row['Noticia'];

sale completa?
  #5 (permalink)  
Antiguo 20/05/2011, 11:12
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por memoadian Ver Mensaje
si muestras la noticia simplemente asi:

echo $row['Noticia'];

sale completa?
No, sale igual, ya lo he intentado
  #6 (permalink)  
Antiguo 20/05/2011, 11:19
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: mssql_fetch_array no me regresa datos completos

esta muy raro, realmente desconozco la respuesta, pero la clave podría estar en ver el caracter o los caracteres donde se corta, por que dices que no sucede en todos, y podría estar relacionado con la codificación.
  #7 (permalink)  
Antiguo 20/05/2011, 11:24
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por xtimed Ver Mensaje
Lo que pasa que ese código lo estoy utilizando en asterisk para un TTS (Text To Speech) y solamente así me respeta los acentos, con respecto a lo otro, realizo la misma consulta en la base de datos directamente y si me muestra los datos completos, lo raro es que tengo varias noticias y solamente sucede eso en unas cuantas, no en todas, teniendo diferente tamaño de caracteres todas.
Pues por eso, transformando al set de caracteres, te respetaría acentos, eñes etc. sin tener que sustituir caracteres.
  #8 (permalink)  
Antiguo 20/05/2011, 11:35
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por ocp001a Ver Mensaje
Pues por eso, transformando al set de caracteres, te respetaría acentos, eñes etc. sin tener que sustituir caracteres.
Ok, si funcionó, gracias =) pero el problema original sigué igual

Cita:
esta muy raro, realmente desconozco la respuesta, pero la clave podría estar en ver el caracter o los caracteres donde se corta, por que dices que no sucede en todos, y podría estar relacionado con la codificación.
la palabra que no me muestra es "compuertas", ya verifique la base de datos, y al parecer, es el unico registro que me lo regresa incompleto, no son varios si no solo uno, y esa palabra es la unica que no me muestra y está al final de la cadena
  #9 (permalink)  
Antiguo 20/05/2011, 16:51
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

A nadie le a ocurrido algo parecido?
  #10 (permalink)  
Antiguo 20/05/2011, 17:20
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: mssql_fetch_array no me regresa datos completos

Extraño... ¿Estás seguro que la frase está bien almacenada en la base de datos?
Si el tamaño del varchar es inferior al texto que añades se corta.
Así de entrada es lo que se me ocurre porque el strtr() no debería darte problemas y si la consultas la tienes bien tampoco puede ser.

Además tampoco lo estás añadiendo en un input text que esté limitado con un maxlenght sino que haces un echo nada más... Así que sólo veo eso
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #11 (permalink)  
Antiguo 20/05/2011, 17:36
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por IEKK Ver Mensaje
Extraño... ¿Estás seguro que la frase está bien almacenada en la base de datos?
Si el tamaño del varchar es inferior al texto que añades se corta.
Así de entrada es lo que se me ocurre porque el strtr() no debería darte problemas y si la consultas la tienes bien tampoco puede ser.

Además tampoco lo estás añadiendo en un input text que esté limitado con un maxlenght sino que haces un echo nada más... Así que sólo veo eso
Así es, bastante extraño, como comenté anteriormente, realizo la consulta directamente en el SQL Server Management Studio y todo me aparece bien, solaente es un registro el que me regresa con datos incompletos, que solamente es una palabra a que me corta, y es la palabra completa
  #12 (permalink)  
Antiguo 20/05/2011, 17:49
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: mssql_fetch_array no me regresa datos completos

¿Has probado a cambiar ese registro? Prueba a cambiar la frase, o borrala y vuelve a añadirla. No lo planteo como solución, pero si actualizas ese campo con otra frase y la corta ya se ve si es algo de la BD.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #13 (permalink)  
Antiguo 20/05/2011, 17:54
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por IEKK Ver Mensaje
¿Has probado a cambiar ese registro? Prueba a cambiar la frase, o borrala y vuelve a añadirla. No lo planteo como solución, pero si actualizas ese campo con otra frase y la corta ya se ve si es algo de la BD.
Ya habia realizado eso, cambie datos para verificar si por ahí era el problema pero no funcionó, me aparecia igual cortado, pero encontré el problema, tenía declarado en la BD la noticia como VARCHAR(500) pero por alguna u otra razón, la consulta en PHP solo me estaba tomando 255 caracteres, cambié el tipo de dato a TEXT y ya con eso funcionó, gracias por las respuestas.
  #14 (permalink)  
Antiguo 20/05/2011, 18:15
 
Fecha de Ingreso: mayo-2011
Ubicación: Guadalupe, N.L, México
Mensajes: 45
Antigüedad: 13 años
Puntos: 6
Respuesta: mssql_fetch_array no me regresa datos completos

el errror es simple jajajaja
es mysql_fetch_array() no myssql_fetch_array() cambialo por favor.
si no me explico avisen
  #15 (permalink)  
Antiguo 20/05/2011, 18:17
 
Fecha de Ingreso: mayo-2011
Ubicación: Guadalupe, N.L, México
Mensajes: 45
Antigüedad: 13 años
Puntos: 6
Código PHP:
Ver original
  1. $query = "SELECT Noticia FROM NoticiasMundo";
  2.     $result = mysql_query($query);
  3.     $tot = mysql_num_rows($result);
  4.     $num = rand(1,$tot);
  5.     $i = 1;
  6.     $array = array("á"=>"á","é"=>"é","í"=>"í","ó"=>"ó","ú"=>"ú", "ñ"=>"ñ","ü"=>"ü");
  7.     while($row = mysql_fetch_array($result, MYSQL_BOTH))
  8.     {
  9.     echo "Noticia ".$i.":";
  10.     echo "<br>";
  11.     echo strtr($row['Noticia'],$array);
  12.     echo "<br><br>";
  13.     $i++;
  14.     }
espero que sirva

me equivoque ¡rayos!, soy nuevo en esta web y no me fije que ya estaba resuelto xD

Última edición por jpinedo; 20/05/2011 a las 22:10 Razón: combinar
  #16 (permalink)  
Antiguo 20/05/2011, 18:23
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por tete_de Ver Mensaje
el errror es simple jajajaja
es mysql_fetch_array() no myssql_fetch_array() cambialo por favor.
si no me explico avisen
Cierto aunque mssql_fetch_array Existe...

http://www.php.net/manual/es/functio...uery.php#64090
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #17 (permalink)  
Antiguo 20/05/2011, 18:24
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por tete_de Ver Mensaje
me equivoque ¡rayos!, soy nuevo en esta web y no me fije que ya estaba resuelto xD
No importa, cualquier aporte es bueno, pero no estoy utilizando mysql, es por eso que no tengo mysql_fetch_array(), estoy utilizando SQL Server, por eso uso la libreria correspondiente y uso mssql_fetch_array().

Saludos
  #18 (permalink)  
Antiguo 20/05/2011, 19:00
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por xtimed Ver Mensaje
Ya habia realizado eso, cambie datos para verificar si por ahí era el problema pero no funcionó, me aparecia igual cortado, pero encontré el problema, tenía declarado en la BD la noticia como VARCHAR(500) pero por alguna u otra razón, la consulta en PHP solo me estaba tomando 255 caracteres, cambié el tipo de dato a TEXT y ya con eso funcionó, gracias por las respuestas.
Eso es porque en SQL debes poner un rango de 0 a 255 carácteres, no admite más.. Si necesitas almacenar más de 255, debes usar text

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #19 (permalink)  
Antiguo 20/05/2011, 19:11
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por Sourcegeek Ver Mensaje
Eso es porque en SQL debes poner un rango de 0 a 255 carácteres, no admite más.. Si necesitas almacenar más de 255, debes usar text

Saludos!
Asi es, lo raro es que tenia VARCHAR(500) y me guardaba perfectamente mas de 255 caracteres, incluso al realizar la consulta, me mostraba los datos completos, pero al realizarla en PHP solo me mostraba los 255, no mas
  #20 (permalink)  
Antiguo 20/05/2011, 19:36
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: mssql_fetch_array no me regresa datos completos

Qué raro... Seguro que eran más de 255 carácteres lo que almacenabas y realizabas consulta? Porque tengo entendido que sólo puede almacenar menos de 255 si es VARCHAR... Si es más de eso, se supone que los espacios se truncan, y si después de truncar espacios, quedan más de 255, tira un error.
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #21 (permalink)  
Antiguo 21/05/2011, 09:48
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: mssql_fetch_array no me regresa datos completos

Cita:
Iniciado por Sourcegeek Ver Mensaje
Qué raro... Seguro que eran más de 255 carácteres lo que almacenabas y realizabas consulta? Porque tengo entendido que sólo puede almacenar menos de 255 si es VARCHAR... Si es más de eso, se supone que los espacios se truncan, y si después de truncar espacios, quedan más de 255, tira un error.
Así es, tenia en SQL Server VARCHAR(500) y si me guardaba mas de 255 y no me daba error, por eso decia que no me traia los datos completos, en la base de datos se veia el texto entero y cuando realizaba la consulta se comida una palabra, solo legaba a los 255 caracteres, no mas

Etiquetas: sql
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 16:47.