Foros del Web » Programando para Internet » PHP »

Guardar texto con formato en bbdd

Estas en el tema de Guardar texto con formato en bbdd en el foro de PHP en Foros del Web. Hola amigos a ver si me pueden ayudar. Sabrian decirme como puedo insertar texto en mi base de datos sql pero con texto con formato? ...
  #1 (permalink)  
Antiguo 25/08/2014, 11:49
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Guardar texto con formato en bbdd

Hola amigos a ver si me pueden ayudar.

Sabrian decirme como puedo insertar texto en mi base de datos sql pero con texto con formato?

Se que se hace con "htmlspecialchars"

Pero no se implementarla en mi codigo podrian ayudarme, este es mi codigo, gracias de antemano


Código MySQL:
Ver original
  1. mysql_query("UPDATE cat_administracion_empresa SET
  2.        
  3.         nombre_curso = '$nombre_curso',
  4.  
  5.         comentario = '$comentario',
  6.        
  7.         palabras_clave = '$palabras_clave',
  8.        
  9. nombre_tema_1 = '$nombre_tema_1', nombre_tema_2 = '$nombre_tema_2', nombre_tema_3 = '$nombre_tema_3', nombre_tema_4 = '$nombre_tema_4', nombre_tema_5 = '$nombre_tema_5',    
  10.  
  11. nombre_tema_6 = '$nombre_tema_6', nombre_tema_7 = '$nombre_tema_7', nombre_tema_8 = '$nombre_tema_8', nombre_tema_9 = '$nombre_tema_9', nombre_tema_10 = '$nombre_tema_10',  
  12.  
  13. contenido_tema_1 = '$contenido_tema_1', contenido_tema_2 = '$contenido_tema_2', contenido_tema_3 = '$contenido_tema_3', contenido_tema_4 = '$contenido_tema_4', contenido_tema_5 = '$contenido_tema_5',
  14.  
  15. contenido_tema_6 = '$contenido_tema_6', contenido_tema_7 = '$contenido_tema_7', contenido_tema_8 = '$contenido_tema_8', contenido_tema_9 = '$contenido_tema_9', contenido_tema_10 = '$contenido_tema_10',
  16.        
  17.  
  18.  
  19. test_pregunta_1 = '$test_pregunta_1', test_pregunta_2 = '$test_pregunta_2', test_pregunta_3 = '$test_pregunta_3', test_pregunta_4 = '$test_pregunta_4', test_pregunta_5 = '$test_pregunta_5',      
  20.        
  21. test_pregunta_6 = '$test_pregunta_6', test_pregunta_7 = '$test_pregunta_7', test_pregunta_8 = '$test_pregunta_8', test_pregunta_9 = '$test_pregunta_9', test_pregunta_10 = '$test_pregunta_10',
  22.  
  23.  
  24.                    
  25. test_respuesta_1 = '$test_respuesta_1', test_respuesta_2 = '$test_respuesta_2', test_respuesta_3 = '$test_respuesta_3', test_respuesta_4 = '$test_respuesta_4', test_respuesta_5 = '$test_respuesta_5',    
  26.        
  27. test_respuesta_6 = '$test_respuesta_6', test_respuesta_7 = '$test_respuesta_7', test_respuesta_8 = '$test_respuesta_8', test_respuesta_9 = '$test_respuesta_9', test_respuesta_10 = '$test_respuesta_10'
  28.        
  29.        
  30.         WHERE id_categoria_foranea = $id_categoria_foranea AND id_curso = $id_curso",$link);

Última edición por mensajeescrito; 25/08/2014 a las 12:14
  #2 (permalink)  
Antiguo 25/08/2014, 14:53
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

Muy buenas,

¿A qué te refieres con "texto con formato"? Suponiendo que es con formateado con html, lo suyo es que antes de llegar al INSERT ya lo hayas formateado con el formulario y que hayas eliminado todo código malicioso que pudiera haber. Por lo demás... En esa fase no habría nada más que hacer. Ejemplo: Si $contenido_tema_1='<h2>Titulo>/h2><p>Texto de ejemplo</p>'; pues eso es lo que entrará en la bbdd.

Un saludo!
__________________
diseño web | Clan Rol
  #3 (permalink)  
Antiguo 25/08/2014, 15:20
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

Lo que necesito es que el texto que guardo en cada variable y se guarda posteriormente en la bbdd.

Se muestre despues esta informacion en la web como texto con sus negritas, cursivas, saltos de linea etc, creo que se conoce como texto enrriquecido.


la idea es que en el formulario , en los campos del formulario , pueda pegar un texto que tiene cursivas, negritas etc y que procede de un documento de word , y pegar dicho texto en el campo del formulario y se guarde posteriormente en la base de datos y muestre este texto en la web.
  #4 (permalink)  
Antiguo 26/08/2014, 03:27
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

He probado a meter en el textarea del formulario etiquetas <b></b> para poner en negrita, y me las guarda en la bbdd, y se muestra el texto en negrita en la web , pero claro tener que hacer esto con cada palabra que se quiera poner en negrita es un poco engorroso.

He estado investigando lo de implementar un editor wising pero no se si eso es la solucion.

y tampoco se como implementar uno en mi formulario de php.

Podrian ayudarme , gracias
  #5 (permalink)  
Antiguo 26/08/2014, 03:48
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

Muy buenas,

Tienes muy buenas soluciones que puedes usar para hacer eso. Yo uso habitualmente tinymce en mis proyectos, es muy completo y para la mayoría de usuarios cumple de sobra. En su web puedes ver de qué va todo esto del editor, pero en esencia:

1. En el head de tu web, donde tengas el formulario, añades el script que carga todo el javascript del editor, mas la instancia específica del propio textarea que quieras que edite:

Código HTML:
Ver original
  1. <script src="//tinymce.cachefly.net/4.1/tinymce.min.js"></script>
  2.         tinymce.init({selector:'nombre-de-tu-textarea'});

Este está cargado desde cachefly, pero puedes descargártelo, subirlo donde te interese y ponerlo, o desde otro sitio... ya a tu gusto.

2. Y luego, donde sea, pones el textarea y listo.

Hay otras opciones, no creas que tinymce es lo único, ya depende de cómo de completo quieras ;)
Un saludo!
__________________
diseño web | Clan Rol
  #6 (permalink)  
Antiguo 26/08/2014, 04:09
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

Hola Toledo_nocturno, mira he puesto en mi archivo php en el cual no tengo head ni body, solo tengo codigo php , lo siguiente:


Código Javascript:
Ver original
  1. <script src="js/tinymce.min.js"></script>
  2.     <script>
  3.             tinymce.init({selector:'contenido_tema_1'});
  4.     </script>


Código HTML:
Ver original
  1.                         <textarea name="contenido_tema_1" placeholder="Insertar o modificar contenido Tema 1" value=""
  2.                        
  3.                        id="contenido_tema_1" class="textarea_style_tema_n" title="Contenido tema 1"></textarea>
  4.  
  5. </form>


y en una carpeta a parte llamada "js", dentro tengo el archivo llamado: "tinymce.min.js"

Solo tengo esto, y no funciona.

Que estoy haciendo mal?
  #7 (permalink)  
Antiguo 26/08/2014, 04:32
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Guardar texto con formato en bbdd

Si entendi bien lo que quieres hacer es guardar en la DB texto html.
El ejemplo mas facil de este tipo de procedimiento es este mismo foro cuando escribes un mensaje.
Deberias especificar mejor lo que necesitas.
Primero, Si lo que quieres es poner una de tus variables en negrita podrias usar algo como esto.
Cita:
$nombre_tema_1 = '<b>'.$nombre_tema_1.'</b>
otra opcion es introducir el texto en tu formulario con un formato BBcode personalizado.
Mirate las especificaciones de BBcode aqui
Leete un poco el tema y si tienes dudas pregunta por aqui y intentaremos ayudarte. Lo que no puedes pretender es que te digan como implementarlo, es mejor que te digamos lo que puedes leer, para conseguirlo, por que si no, no aprenderas a programar nunca.
Un saludo
__________________
http://www.roglastudios.es
  #8 (permalink)  
Antiguo 26/08/2014, 05:22
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

mensajeescrito, prueba a añadir directamente así:

Código HTML:
Ver original
  1.         tinymce.init({selector:'textarea'});

Porque es el tipo de elemento al que coge en la instalación básica.

Si con esto no funciona, intenta también tirando desde su caché, a fin de ir acotando el tema y ver dónde está exactamente el problema:


Código HTML:
Ver original
  1. <script src="//tinymce.cachefly.net/4.1/tinymce.min.js"></script>

Prueba y cuéntanos, que debería funcionar.

Un saludo!
__________________
diseño web | Clan Rol
  #9 (permalink)  
Antiguo 26/08/2014, 05:55
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

En el tiempo que me estabas escribiendo el post, al final he conseguido que funcione.

HE conseguido implementarlo en mi formulario y cuando escribo algo puedo ponerlo en negrita etc

y tambien puedo enviar el contenido a la base de datos y que se muestre en la web con el texto ya en negrita etc.

Objetivo cumplido, y gracias a ti toledo_nocturno por guiarme.

Pero tengo una duda de ultima hora:


Cuando antes de implementar este editor de texto, tenia un text-area normal y corriente el cual cuando seleccionaba previamente una opcion de un combobox , se cargaba automaticamente en el text-area , el dato de ese text-area almacenado ya en la bbdd.

el tema esta en que ya implementado el editor, no me carga lo ya almacenado en la bbdd.

y que previamente se escribio en el editor y se subio con el formulario.

¿Como puedo hacer para que cargue el editor lo almacenado en la bbdd, para reeditar etc el contenido del texto?

Gracias.
  #10 (permalink)  
Antiguo 26/08/2014, 06:37
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Guardar texto con formato en bbdd

puedes chequear tu base de datos con php antes de cargar el contenido y mostrarlo si existe el dato en la DB
__________________
http://www.roglastudios.es
  #11 (permalink)  
Antiguo 26/08/2014, 06:46
Avatar de toledo_nocturno  
Fecha de Ingreso: agosto-2011
Ubicación: Under the northen star
Mensajes: 86
Antigüedad: 12 años, 8 meses
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

Buenas de nuevo,

Imagino que la opción con la que lo activabas era pulsando un botón/desplegable con algo en javascript... ¿Puedes ponérnoslo?
Normalmente estos elementos cogen cosas por id o por nombre, o bien interfiere algo de un js con el otro, o hay alguna propiedad que nos hemos comido en el proceso, jajajaja

Otra opción es lo que dice Dalam, que si de antemano sabes que un elemento existe en la bbdd, lo cargue automaticamente.

Un saludo!
__________________
diseño web | Clan Rol
  #12 (permalink)  
Antiguo 26/08/2014, 07:21
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

Este es el codigo que hace que se cargue la informacion en el text-area:

Código PHP:
Ver original
  1. <select
  2.        name="lista_cursos"
  3.        id="lista_cursos[]"
  4.        class="estilo_combo_id_curso"
  5.        onchange="mostrarValor(
  6.  
  7.            this.options[this.selectedIndex].innerHTML,
  8.            this.value,
  9.            this.options[this.selectedIndex].getAttribute('data-comentario'),
  10.  
  11.            this.options[this.selectedIndex].getAttribute('palabras_clave'),
  12.            
  13.                      
  14.            this.options[this.selectedIndex].getAttribute('nombre_tema_1'),          
  15.            this.options[this.selectedIndex].getAttribute('contenido_tema_1'),  
  16.  
  17. .
  18. .
  19. .bla bla bla
  20. .
  21. .
  22.        )"
  23.     >
  24.  
  25.  
  26.      <option value="0">Elija un curso</option>
  27.  
  28.  
  29.  
  30.             <option value="
  31.            
  32.                 <?php echo $id_curso ?>"
  33.                 data-comentario="<?php echo $comentario ?>"
  34.  
  35.                 palabras_clave="<?php echo $palabras_clave ?>"
  36.                                
  37.                                  
  38.                 nombre_tema_1="<?php echo $nombre_tema_1 ?>"
  39.                 contenido_tema_1="<?php echo $contenido_tema_1 ?>"
  40.  
  41. .
  42. .
  43. ..bla bla bla
  44. .
  45. ..
  46.  
  47.                 ><?php echo $nombre_curso ?> </option>
  48.  
  49.  
  50.     <?php }; ?>
  51.  
  52. </select>



Código Javascript:
Ver original
  1. var mostrarValor = function(a) {
  2.  
  3. document.getElementById('contenido_tema_1').value = a;
  4.  
  5. }



<input type="text" name="nombre_tema_1" placeholder="Insertar o modificar nombre del tema 1" value=""

id="nombre_tema_1" class="input_style_nombre_tema_n" maxlength="90" size="90" title="Nombre del tema 1"/>


Me inclino a pensar que es algun javacript que hacen conflicto o algo asi.

Pero , me pierdo, no se que puede ser , he conseguido implementarlo y que guarde en base de datos con texto enrriquecido y que se muestre en la web enrriquecido el texto.

Pero no se como por donde meterle mano a esto.

Como digo, si le quito el editor al text area , si , se carga la informacion de la bbdd en el text area perfectamente, pero cuando le implemento esto dice que no se carga la info en el text area.

Y me falta esta guinda para terminar.

Última edición por mensajeescrito; 26/08/2014 a las 07:28
  #13 (permalink)  
Antiguo 26/08/2014, 08:08
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Guardar texto con formato en bbdd

con el bla,bla,bla no vale, si no muestras todo el codigo creo que nadie podra ayudarte.
Lo primero por que no se si cargas los datos de la db y ocultas los que no utilizas o el problema esque si no tienes cargado todos los datos tendrias que hacer una peticion get o post para extraer los datos.
Todo esto es porque javascript se ejecuta en el cliente y php en el servidor, si no tienes los datos cargados en la pagina, javascript no sabra que poner en el formulario.
__________________
http://www.roglastudios.es
  #14 (permalink)  
Antiguo 26/08/2014, 08:16
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

cuando pongo blablabla es por que es "contenido_tema_2" ....3...4...5.. asi hasta tema 10

y esta parte funciona toda perfectamente

Te puedes hacer la idea poner contenido_tema_ hasta 10 lo he visto innecesario.

Es todo lo mismo y como digo funciona toda esta parte.

es solo cuando implemento el editor (que funciona e inserta datos perfectamente), el cual no deja mostrar lo que antes, si ,mostraba, osea la info de la bbdd en el text area de cada contenido_tema_1, contenido_tema_2, contenido_tema_3.......tema 10

Y el codigo es el que he puesto.

Nada mas.
  #15 (permalink)  
Antiguo 26/08/2014, 08:27
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Guardar texto con formato en bbdd

prueba a mandar un string a mostrarvalor() por que lo que le mandas es un array, puede que esto sea tu problema
__________________
http://www.roglastudios.es
  #16 (permalink)  
Antiguo 26/08/2014, 08:38
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 12 años
Puntos: 5
Respuesta: Guardar texto con formato en bbdd

Pero ¿dices sustituir el array con el contenido de los 10 temas por 10 strings?

No se si lo he entendido bien, pero de ser asi me cuesta mas la salsa que el pollo



habia pensado en poner un segundo text-area para contenido_tema_1,

un segundo tex-area pero hidden , oculto, y sin implementarle el editor, en el que ahi si se mostraria el contenido de la bbdd.

El problema es que como los dos text area hacen referencia a la misma id , no funciona.

Ni guarda en la bbdd , ni muestra datos tampoco pero como digo supongo que sera por que los dos text area tienen la misma id.

Asi que continua mi agonia


humm ahora que pienso, quizas podria ser una solucion el que si el id del text area estuviera vacio a la hora de enviar los datos desde el formulario que mediante php no enviara ni guardara el digamos "vacio", borrando con ello lo que hubiera previamente en la bbdd.


osea que si el valor de la variable enviada desde el formulario mediante POST , estuviera vacia, pues que no borrara lo ya guardado en la bbdd con anterioridad.

Última edición por mensajeescrito; 26/08/2014 a las 08:43
  #17 (permalink)  
Antiguo 26/08/2014, 11:01
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Guardar texto con formato en bbdd

eso ultimo estaria bien.
Tambien puedes chequear los datos enviados del formulario para que no esten vacios, o que tengan un cierto numero de caracteres, incluso que tengan que confirmar el envio de datos mediante un checkbos que active el boton de submit, eso es cosa tuya de como mejor te venga
__________________
http://www.roglastudios.es

Etiquetas: bbdd, formato, mysql, 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 01:10.