• ENTRAR
  • No hay productos en el carrito.

Dudas en proyecto

Viendo 9 publicaciones - del 1 al 9 (de un total de 9)
  • Autor
    Publicaciones
  • #11354

    valen.ayesa
    Participante

    Buenos días Israel, ya he terminado el curso por completo y aunque seguiré repasando algunos vídeos para recordar ciertos comandos y dependencias creo que la base la he cogido perfectamente. Ahora se me presentan algunas dudas ya que estoy “portando” una aplicación que tengo en php + mysql a nodeJS (como práctica), a ver si puedes echarme un poco de luz:

    Tengo un listado de personas, que funciona de vicio con la paginación y demás, todo perfecto pero ahora quiero buscar personas usando la misma view de listado. Tengo el formulario de búsqueda que llama a la ruta /personas/busqueda por post y le paso un string que puede ser nombre o apellido.

    He creado la ruta .post(‘/buscar’, (req, res, next) => {

    Persona.findByName(req.params.nombre, req.params.apellidos, (error, data) => {

    return Persona.response(res, error, data);

    })

    El método findByName también lo he creado yo en el modelo:

    Persona.findByName = (nombre, apellidos, callback) => {

    if(conn){

    conn.query(“SELECT * FROM persona WHERE ((nombre LIKE %?%) OR (apellidos LIKE %?%))”, [nombre, apellidos], (error, rows) => {

    if(error){

    return callback(error);

    }

    return callback(null, rows);

    })

    }

    }

    Ahora comienza la duda: ¿Cómo puedo pasarle los resultados a la view listado para mostrar solo los resultados obtenidos? Se podría en caso de solo tener un solo resultado enviarlo al perfil de dicha persona?

     

    Gracias de antemano, espero seguir desarrollando en NodeJS pero hay cosas que supongo que deberé de ir descubriendo yo mismo.

    #11355

    Cursosdesarrolloweb
    Jefe de claves

    Hola,

    Yo sencillamente utilizaría el tutorial de paginación con mysql y le añadiría los campos por los que deseas buscar, de esa forma podrás seguir utilizando la paginación pero además con los datos de un buscador.

    Una vez lo tengas listo recuerda que los datos por los que se esté buscando los deberás mantener en sesión para cuando la paginación empiece a funcionar.

    No sé si me he explicado.

    Un saludo.

    #11356

    valen.ayesa
    Participante

    Lo siento, pero no te entiendo… ni lo de las sesiones…. la verdad es que ha debido de quedarme muy clara esa parte

     

    #11357

    Cursosdesarrolloweb
    Jefe de claves

    Hola,

    De momento te recomiendo revisar esta unidad (Node.js y Express.js: Trabajo con sesiones), ahí hablamos de las sesiones, que es justo lo que necesitas aquí para montar este tipo de paginación.

    Una vez lo tengas claro y leas de nuevo la explicación anterior creo que lo podrás hacer, no sin esfuerzo, de todas formas, si ves que no puedes dímelo y lo miramos.

    Un saludo.

    #11358

    valen.ayesa
    Participante

    Lo he repasado un par de veces… pero no llego a entender para que necesito sesiones si al modelo ya le paso el parámetro que necesito vía post, solo tendría que mostrar resultados, no doy con la tecla.

     

    Voy a tener que contratar tutorías adicionales :-S

    #11359

    Cursosdesarrolloweb
    Jefe de claves

    Hola,

    Imagina que tienes unos enlaces de paginación con la búsqueda, la primera vez que haces la búsqueda sí estás haciendo una petición post, pero cuando pulses en un enlace de la paginación montada con la búsqueda esos datos post se perderán y no sabrás que estabas buscando, por eso debes guardar los datos post en sesión pero sólo cuando sea una petición post, así lo solucionas rápido.

    Sé que parece caótico pero tiene mucho sentido.

    Un saludo.

    #11360

    valen.ayesa
    Participante

    Estoy completamente atascado con eso.

    Te he enviado un correo con los src.

    A ver si podemos echarlo a andar.

    #11361

    valen.ayesa
    Participante

    Vale, me ha costado pero por fin he entendido la lógica y parece que todo funciona correctamente con las modificaciones que me mandaste, lo único que ahora (y llevo con ello desde las 17:30h :-S) me falla la consulta con las ‘?’. ¿Alguna idea?

    {“code”:”ER_PARSE_ERROR”,”errno”:1064,”sqlMessage”:”You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘?, ?’ at line 1″,”sqlState”:”42000″,”index”:0,”sql”:”SELECT * FROM paciente LIMIT ?, ?”}

    El código de la consulta es:

    sql = ‘SELECT * FROM paciente WHERE nombre LIKE ? OR apellidos LIKE ? LIMIT ?, ?’, [search, search, offset, limit];

    Gracias una vez más, estoy deseando de acabar esto para empezar el de Angular.

    • Esta respuesta fue modificada hace 1 año por  valen.ayesa.
    #11363

    valen.ayesa
    Participante

    Conseguido, aunque de momento solo busca por nombre, cuestión de pulir 😀

    La solución la he conseguido quitando los argumentos después de la variable sql:

    sql = ‘SELECT * FROM paciente WHERE nombre LIKE ? OR apellidos LIKE ? LIMIT ?, ?’;

    Y añadiendo los argumentos a la hora de ejecutar la consulta:

    conn.query(sql, [search, search, offset, limit], (error, rows) => {

    A por el siguiente bache 😀

Viendo 9 publicaciones - del 1 al 9 (de un total de 9)

Debes estar registrado para responder a este debate.

Síguenos en las redes sociales para estar al tanto de los últimas novedades :)

Facebook
Facebook
Google+
Google+
https://www.cursosdesarrolloweb.es/forums/topic/dudas-en-proyecto">
Pinterest
Pinterest
top
Cursosdesarrolloweb ©. Todos los derechos reservados.
🔓Inscríbete a cualquier curso por 9€ y accede a todos los cursos gratuitos para siempre🔓
🌍Los cursos gratuitos son exclusivos de esta plataforma, ÚLTIMOS CURSOS EN 4K🌍
+ +

Login

Create an Account Back to login/register