PHP - autocomplete no muestra nada

 
Vista:

autocomplete no muestra nada

Publicado por Roberto (42 intervenciones) el 23/05/2019 11:02:47
Hola. Tengo un fichero llamado autocomplete_socios.php que uso para buscar en un formulario por apellidos,codigo y demas.

El codigo es este sin más. el problema es que me funcionaba bien, me mostraba datos y demas pero he cambiado en la bd los tipos de dato de algunos campos y he añadido uno nuevo y a raiz de eso ya no me muestra ningun registro al ejecutar el archivo. Lo curioso es que si le hago un where en esta misma select si que me lo muestra, pero todos los registros no. No entiendo nada la verdad.


1
2
3
4
5
6
7
8
9
<?php
header('Content-type: application/json');
$datos = new PDO("mysql:dbname=RESERVAS;host:127.0.0.1","root","");
 
$sql = $datos->prepare("SELECT * FROM SOCIOS");
$sql->execute();
$resultado = $sql->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($resultado);
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

autocomplete no muestra nada

Publicado por xve (6928 intervenciones) el 23/05/2019 15:20:36
Hola Roberto, a simple vista parece que esta correcto...

Exactamente que te devuelve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por Roberto (42 intervenciones) el 23/05/2019 17:45:27
no me devuelve nada pero lo curioso es que si le meto un where si que me muestra el o los registros.
El numero de registros entiendo que no tiene nada que ver en esto no?.
Quiero decir que da igual si tengo 10.000 registros en la tabla socios .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.037
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

autocomplete no muestra nada

Publicado por xve (6928 intervenciones) el 23/05/2019 20:38:51
Hola Roberto, la verdad es que mejor que no haya muchos para probar... a lo mejor tarda y finaliza por timeout!!!

Prueba a enviar uno solo haber si funciona correctamente
1
$sql = $datos->prepare("SELECT * FROM SOCIOS LIMIT 1");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 24/05/2019 00:45:29
Me muestra el primero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 24/05/2019 11:30:39
Le he hecho un var_dump a la sql y me devuelve error en la fila1 columna1 y un Bool(false) y si limito la select a 797 registros si que me los muestra. Más registros de 797 no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 1.668
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

autocomplete no muestra nada

Publicado por Mauro (467 intervenciones) el 24/05/2019 14:41:30
Más que var_dump prueba usar:

1
$sql->errorInfo();

Fíjate en https://www.php.net/manual/es/pdo.errorinfo.php para más información.

Podría pasar que se estén agotando los recursos del servidor (Es raro siendo tan pocos registros, aunque si la tabla es muy grande y el servidor no podría pasar).

Yo te diría también que pruebes cambiar el * por una lista de campos más pequeña (Por ejemplo, comienza por el id a ver si te da todos)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 25/05/2019 00:29:27
Efectivamente. Mostrando solo los 3 campos que necesito para hacer el autocomplete me muestra todos los registros. El problema es que necesito todos los campos por que son los que luego rellenaran mi formulario de socios.
Me explico. Tengo un Buscar Socio que es el que hace el autocomplete y me va mostrando resultados segun voy introduciendo un apellido codigo o lo que sea. Cuando selecciono el registro se vuelcan todos los valores de ese registro a los inputs del formulario. Si solo selecciono 3 campos pues solo me rellena esos 3 y necesito todos.
Tendré que modificar entonces el php.ini? Como lo ves.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 25/05/2019 14:46:53
$sql->errorInfo();- Muestra un array ( [0]=>00000
[1]=>
[2]=>
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 25/05/2019 15:10:29
He modificado tambien el fichero Mysqld.cnf aumentando al doble los valores que vienen por defecto de estos conceptos:
Query_cache_limit
Query_cache_size
Max Binlog_size
long_query_time
key_buffer_size
Max_allowed_packet
Thread_stock
Theread_cache
expire_logs_days
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 25/05/2019 15:55:57
Acabo de probar esta ventana en otro pc con xampp y me muestra todos los registros super rápido.
Parece que es problema de mi servidor en ubuntu para ese pc concreto. Es un pc con pocos recursos 1mb de ram solamente y demas no se si tendrá que ver.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 1.668
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

autocomplete no muestra nada

Publicado por Mauro (467 intervenciones) el 25/05/2019 16:21:19
Es un poco raro... suena como que el problema está en el servidor pero es difícil de saberlo sin verlo...

Lo que te sugeriría es, como salida rápida, dejar para el autocomplete el SELECT sólo con los campos necesiarios y hacer una segunda consulta para obtener todos los datos una vez que el usuario haya seleccionado un registro (Y traer el registro completo sólo para ese id).

Como solución de más largo plazo habría que revisar la estructura de la base... no deberías tener este problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 25/05/2019 19:10:17
Vale esa opcion ya la estaba barajando yo tambien. Tiraré por ahí a ver que tal lo soluciono.
Ahora precisamente estoy intentando hacer otra cosa. Estoy insertando un csv con esos 10.000 registros en la tabla nuevamente y el campo nif lo hasheo antes de hacer el insert.
Lo va haciendo y se para en el registro 180 con este mensaje.
Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Bpxport\leer_ficheros.php on line 118.

He accedido al php.ini he modificado la linea donde dice max_execution_time=3600
y me sigue cascando en el mismo sitio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

autocomplete no muestra nada

Publicado por ROBERTO (42 intervenciones) el 25/05/2019 20:34:22
Solucionado. He puesto al principio del php set_time_limit(3000) y ya parece que inserta los 10.000 registros haciendo el hash y demas.
Gracias por tu tiempo y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar