Foros del Web » Programando para Internet » PHP »

problema al concatenar funcion php en consulta mysql

Estas en el tema de problema al concatenar funcion php en consulta mysql en el foro de PHP en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $sql = "select tema,campo2,campo3,etc from temas" ; y aca quiero pasarle una funcion para formatear el tema(reemplazos de acentos ...
  #1 (permalink)  
Antiguo 16/03/2016, 22:40
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
problema al concatenar funcion php en consulta mysql

Código PHP:
Ver original
  1. $sql="select tema,campo2,campo3,etc from temas";
y aca quiero pasarle una funcion para formatear el tema(reemplazos de acentos etc)
pero resulta que marca error al concatenar.
Código PHP:
Ver original
  1. $sql="select ".formatear(."tema".).",campo2,campo3,etc from temas";

podria hacerlo en mysql, pero la funcion es extensa y no quisiera hacer la consulta sql tan larga.
de antemano gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por minombreesmm; 16/03/2016 a las 22:56
  #2 (permalink)  
Antiguo 16/03/2016, 23:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al concatenar funcion php en consulta mysql

Creo que lo que intentas hacer no es posible.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/03/2016, 01:01
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: problema al concatenar funcion php en consulta mysql

Cita:
Iniciado por pateketrueke Ver Mensaje
Creo que lo que intentas hacer no es posible.
pues parece que no, pero deberia, pues es algo muy usual, formatear campos de sql con funciones hechas en php..
deberia..
lo tuve que poner manual, los replaces, toda la consulta se hizo larga con los 20 replaces que inclui..
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #4 (permalink)  
Antiguo 17/03/2016, 02:56
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: problema al concatenar funcion php en consulta mysql

Tu problema es que no concatenar de manera adecuada

Código PHP:
Ver original
  1. // Mal
  2. $sql="select ".formatear(."tema".).",campo2,campo3,etc from temas";
  3. // Bien
  4. $sql="select ".formatear("tema").",campo2,campo3,etc from temas";

http://php.net/manual/es/language.operators.string.php
  #5 (permalink)  
Antiguo 17/03/2016, 18:25
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: problema al concatenar funcion php en consulta mysql

Cita:
Iniciado por xerifandtomas Ver Mensaje
Tu problema es que no concatenar de manera adecuada

Código PHP:
Ver original
  1. // Mal
  2. $sql="select ".formatear(."tema".).",campo2,campo3,etc from temas";
  3. // Bien
  4. $sql="select ".formatear("tema").",campo2,campo3,etc from temas";

http://php.net/manual/es/language.operators.string.php
Funciona para una cadena normal, pero yo la estoy metiendo en una consulta sql.
la consulta va a regresarme varios registros y la cadena de la consulta sql debe enviar la funcion tantos registros vaya a jalar.
sin embargo la he concatenado mal. en el ejemplo solo viene para cadenas normales.

la idea seria esta
Código SQL:
Ver original
  1. $sql="select t.id_tema, {funcionretorna(t.tema)} from temas t";

la función entre llaves?
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #6 (permalink)  
Antiguo 17/03/2016, 18:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al concatenar funcion php en consulta mysql

A ver si entendí, minombreesmm ¿quieres aplicar una función de PHP a los resultados de una consulta de SQL?

Porque eso lo debes hacer después de obtener los datos, cuando los tengas como arrays u objetos en PHP: colocar funciones de PHP en la sintaxis de SQL no sirve.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 17/03/2016, 20:17
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: problema al concatenar funcion php en consulta mysql

Cita:
Iniciado por pateketrueke Ver Mensaje
A ver si entendí, minombreesmm ¿quieres aplicar una función de PHP a los resultados de una consulta de SQL?

Porque eso lo debes hacer después de obtener los datos, cuando los tengas como arrays u objetos en PHP: colocar funciones de PHP en la sintaxis de SQL no sirve.
el detalle, es que la consulta sql, es muy grande.. esta combinada con otras tablas y unida con otras consultas, por lo que concateno los campos creando solo uno para que tenga forma de oracion segun la notificacion..
tiene mas de 2 consultas unidas y cada consulta regresa un campo concatenado..
ese campo concatenado es el resultado de un variado numero de campos por consulta.
por ejemplo
1.-Jennifer a comentado el tema funciones php ayer
2.-jazmin a votado el tema manual de java
3.-has recibido 2 puntos por votar el tema programacion orientada a objetos en la categoria programacion
4.-Feliz cumpleaños Vanesa

la 1, obtengo nombre de usuario y tema y la fecha
la 2 obtengo nombre de usuario y tema
la 3 obtengo los puntos recibidos y el tema
la 4 obtengo los púntos obtenidos, el tema y la categoria

si te fijas necesito eso para variar las oraciones y variar la cantidad de campos concatenados.
para solo en php hacer eso
Código PHP:
Ver original
  1. <div><? echo $registro['notificacionconcatenada']; ?></div>

ya no preocuparme de como presentarlo en php..
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #8 (permalink)  
Antiguo 17/03/2016, 20:17
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: problema al concatenar funcion php en consulta mysql

En lo que tratas de hacer estás formateando la palabra "tema" únicamente

Tienes que, como dice @pateketrueke, formatear tu información una ves devuelta la consulta.

Así que sí, lo que quieres hacer no es posible como lo estás planteando.
  #9 (permalink)  
Antiguo 17/03/2016, 20:27
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: problema al concatenar funcion php en consulta mysql

Cita:
Iniciado por rodocoyote15 Ver Mensaje
En lo que tratas de hacer estás formateando la palabra "tema" únicamente

Tienes que, como dice @pateketrueke, formatear tu información una ves devuelta la consulta.

Así que sí, lo que quieres hacer no es posible como lo estás planteando.
bueno para ser mas especifico, debo formatear la palabra tema, pero esa palabra esta concatenada con otros campos..

la consulta me va a regresar oraciones variadas..
tendria que de alguna manera detectar en php cual es el tema y luego meter la palabra esa formateada a la oracion..
seria mucho pero mucho mas tedioso.


sacar cada notificacion con sus variaciones y luego ...

mmm.. creo que ya me cayo el 20..

obtengo la notificacion toda concatenada..
aparte de la notificacion obtengo el campo tema solo..
luego le doy el formado y lo incrusto con str_replace de la siguiente manera

str_replace($temaformatooriginal,formatear($temafo rmatooriginal),$registro['notificacion']..

aunque me marcará error creo en la cuarta notificacion, la del cumpleaños, ya que alli no existe el campo tema
y los unions deben coincidir en numero de columnas
excelente...
ahora solo me faltara modificar lo de la funcion generica que formatea ya que no la incluyo en todos los archivos.. y como las notificaciones siempre estan visibles..
un include(http..) no es posible, debo modificar directivas y esa no es la idea..
bueno ese es otro tema
probare lo de arriba...
gracias..
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Etiquetas: concatenar, funcion, mysql, select, 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




La zona horaria es GMT -6. Ahora son las 00:39.