Foros del Web » Programando para Internet » PHP »

Insertar link en campo TEXT mysql

Estas en el tema de Insertar link en campo TEXT mysql en el foro de PHP en Foros del Web. Buenas, tengo el siguiente string: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $aecho = "Ha agregado una zona: <a href='zona.php?nombrez=" . $nombrez . "'>" . $nombrez ...
  #1 (permalink)  
Antiguo 09/01/2013, 07:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 15 años, 6 meses
Puntos: 3
Insertar link en campo TEXT mysql

Buenas, tengo el siguiente string:

Código PHP:
Ver original
  1. $aecho = "Ha agregado una zona: <a href='zona.php?nombrez=".$nombrez."'>".$nombrez."</a>";

Si le hago un echo el resultado es :


Ha agregado una zona: NombreZona.

"NombreZona" logicamente es un link.

Pero al incluir $aecho a mysql, me da error:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'agregado una zona: NombreZona)' at line 1


La consulta sql:

$sql = "INSERT INTO ultimahora (usuario,fecha,aecho) VALUES ('$usuario','$fechatiempo','$aecho')";


No se si sera por las comillas o que... Ando loco ya de tando probar.
  #2 (permalink)  
Antiguo 09/01/2013, 07:46
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Insertar link en campo TEXT mysql

claramente es por las comillas, tendrias que imprimir $sql para fijarte que pasa,
lo ideal es que uses realscapestring o bien preparar la string con php:

Código PHP:
Ver original
  1. return htmlentities(str_replace(array('\"','\\\''),array('"',"'"),$aecho), ENT_QUOTES, "UTF-8", true);
  #3 (permalink)  
Antiguo 09/01/2013, 08:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Insertar link en campo TEXT mysql

A ver, he probado lo que me dices y:

-El echo a la consulta da:

INSERT INTO ultimahora (usuario,fecha,aecho) VALUES ('phyron','2013-01-9 13:55:21','Ha agregado una zona: ZonaPrueba')

Siendo ZonaPrueba un link.

-Haciendo lo que me dices:
Código PHP:
Ver original
  1. $prueba =  htmlentities(str_replace(array('\"','\\\''),array('"',"'"),$aecho), ENT_QUOTES, "UTF-8", true);

el echo de $prueba da:

Ha agregado una zona: <a href='zona.php?nombrez=ZonaPrueba'>ZonaPrueba</a> (sin ser link).


-Si agrego $prueba a la sql,a cambio de $aecho, me lo agrega a mysql, pero de la siguiente manera:

Ha agregado una zona: &lt;a href='zona.php?nombrez=NOMBREZONABO'&gt;NOMBREZONA BO&lt;/a&gt;

Y luego al leerlo queda:

Ha agregado una zona: <a href='zona.php?nombrez=NOMBREZONABO'>NOMBREZONABO</a> ,sin activar el link diriamos.


Sigo igual mas o menos, si supieras como "activar" el link al devolverlo desde mysql..

Última edición por phyronx; 09/01/2013 a las 08:18
  #4 (permalink)  
Antiguo 09/01/2013, 08:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Insertar link en campo TEXT mysql

Cita:
Sigo igual mas o menos, si supieras como "activar" el link al devolverlo desde mysql..
Debes entender que para MySQL el "link" no existe, porque no existe un tipo de dato "link".
La base lo único que guarda es una cadena de texto, y es en PHP donde debes volver a implementar ese enlace como link de la pagina.
¿Se entiende la idea?
En ese sentido, lo que deberías guardar sería la ruta y el texto a representar en el link, pero no los etiquetados propios del HTML. pero eso es otro tema
.
Tienes que hacer que tu script tome esa cadena de texto y lo incorpore como parte del código de la pagina...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 09/01/2013, 08:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Insertar link en campo TEXT mysql

Ya se que no hay un tipo link para mysql.

Lo que quiero saber es como agregar un string que contenga el codigo del link, y que al hacer un echo, cree el link, igual que como lo estoy guardando en una veriable y luego hago el echo de esta y me lo crea bien.

Puedo ir directamente a phpmyadmin, e insertar en el campo aecho:

- El usuario a echo tal cosa, <a href='atalcosa.php'> IR </a>

Coger este campo en una consulta y hacer el echo, y el solito al leer el <a> me crea le link.

Lo que no consigo es agregar un string con un link en un campo mysql.

Lo puedo hacer como me dice Patriarka, pero imagino que al leer el echo asi "&lt;a ..." no detecta que es un link.


Pienso que manera chapuzera seria:

$aecho = "a echo tal cosa 88link77IR9 ";

agregarlo, y al cojerlo, cambiar 88 por '<a href=' etc etc....
  #6 (permalink)  
Antiguo 09/01/2013, 09:03
 
Fecha de Ingreso: mayo-2009
Mensajes: 232
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Insertar link en campo TEXT mysql

Lo consegui, y de la manera mas tonta:

$aecho = "Ha agregado una zona: <a href=zona.php?nombrez=".$nombrez.">".$nombrez."</a>";

le quite las comillas que guardan el link href='' .... y parece ser que funciona, al cojerlo me crea bien el link.

Etiquetas: link, mysql, sql, txt, usuarios, campos
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 21:42.