Foros del Web » Programando para Internet » PHP »

problema al guardar ñ en base datos

Estas en el tema de problema al guardar ñ en base datos en el foro de PHP en Foros del Web. hola el problema es que cuando yo escribo un comentario y le guardo en la base de datos al visualizarlo de nuevo me sale de ...
  #1 (permalink)  
Antiguo 14/11/2011, 08:15
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
problema al guardar ñ en base datos

hola
el problema es que cuando yo escribo un comentario y le guardo en la base de datos al visualizarlo de nuevo me sale de esta manera:
mañana cuando deberia poner mañana, como puedo soucionar este problema??
gracias
  #2 (permalink)  
Antiguo 14/11/2011, 09:02
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

en el php.ini busca la linea

default_charset = "iso-8859-1" y colocale

iso-8859-1

o donde vas a imprimir la variable haz lo siguiente


Código PHP:
Ver original
  1. $turno = utf8_decode($_POST[turno]);
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #3 (permalink)  
Antiguo 14/11/2011, 13:11
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

como deberia poner la linea que me has dado tal cual esta nose como debería de ponerla en el codigo donde tengo la consulta me puedes explicar un pco??
  #4 (permalink)  
Antiguo 14/11/2011, 13:17
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

crea el archivo phpinfo.php con el siguiente contenido

Código PHP:
Ver original
  1. <?php
  2. ?>

ejecuta el script en tu navegador de la forma

http://localhost/phpinfo.php

te saldra una pagina con una serie de valores buscas la linea

Loaded Configuration File E:\xampp\php\php.ini

q sera la ubicacion de tu php.ini

busca ese archivo en la ruta que te salio anteriormente y en el archivo le das buscar

default_charset

si esta comentada la liena te aparecera con una coma antes asi:

;default_charset = utf-8

y por defecto el mio venia con utf-8

quita la coma al inicio y quedara asi:

default_charset = iso-8859-1

guarda los cambio y reinicia tu server apache
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #5 (permalink)  
Antiguo 14/11/2011, 13:22
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

para hacerlo en el script de php que quieres que salga la ñ supongamos que tenemos una consulta a la base de datos de turnos los cuales son mañana y tarde, y queremos hacer un select seria de esta forma:

Código PHP:
Ver original
  1. $sql = "select * from tbl_turno order by 1 asc";
  2. $rs = mysql_query($sql) or die(mysql_error());
  3. $select = "<select name='turno'>";
  4. while($row=mysql_fetch_array($rs){
  5. //con la funcion utf8_decode conviertes a caracteres latinos la cadena
  6. $select .= "<option value='$row[id]'>".utf8_decode($row[turno])."</option>";
  7. }
  8. $select .= "</select>";
  9.  
  10. echo $select;
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #6 (permalink)  
Antiguo 14/11/2011, 13:22
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

y para hacerlo en un host de 000webhost es con el que trabajo, es que es donde tengo mi web, gracias.
  #7 (permalink)  
Antiguo 14/11/2011, 13:25
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

EN TU CASO No tienes acceso al php.ini puedes crear un .htaccess con esta linea dentro

AddDefaultCharset iso-8859-1 o hacerlo como el codigo anterior
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #8 (permalink)  
Antiguo 14/11/2011, 13:27
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

http://www.askapache.com/htaccess/se...-htaccess.html ahi tienes toda la documentacion del .htaccess al respecto
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #9 (permalink)  
Antiguo 14/11/2011, 14:24
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

poniendo esto .utf8_decode delante de la variable que enseña la palabra mañana es suficiente y con eso todas las palabras con ñ saldran con ñ??
  #10 (permalink)  
Antiguo 14/11/2011, 14:27
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

eso solo aplica a la variable que se lo coloques, si quieres que sea para todas las paginas tenes que hacerlo mediante el .htaccess aqui te dejo el tuto http://www.askapache.com/htaccess/se...-htaccess.html
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #11 (permalink)  
Antiguo 14/11/2011, 14:49
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

he hecho el .htaccess pero sigue sin funcionar lo he hecho asi:
Código PHP:
<Files "^\.(htaccess|htpasswd)$">

deny from all

</Files>

Options Indexes

AuthUserFile admin
/.htpasswd

AuthGroupFile 
/dev/null

AuthName 
"Please enter your ID and password"

AuthType Basic

require valid-user 

DirectoryIndex index
.php

order deny
,allow

deny from db
.php

deny from js

deny from privados
/config.php

deny from privados
/rpc.php

deny from privados
/jquery-1.2.1.pack.js
AddDefaultCharset iso
-8859-
hay que poner luego la direccion a los archivos php o solo con crear ese archivo vale? y esta bien hecho?? es que es la primera vez que hago esto. gracias
  #12 (permalink)  
Antiguo 14/11/2011, 14:54
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

LO UNICO QUE veo diferente es que no esta escrito en mayusculas prueba asi:

AddDefaultCharset ISO-8859-1

o

AddDefaultCharset UTF-8

Ve con cual te camina
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #13 (permalink)  
Antiguo 14/11/2011, 15:19
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

No me funciona con ninguna de las dos formas.
  #14 (permalink)  
Antiguo 14/11/2011, 15:27
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

en tu base de datos lo visualizas bien ñ???


prueba hacer esto


Código PHP:
Ver original
  1. echo "ñ";
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #15 (permalink)  
Antiguo 14/11/2011, 15:31
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

no en mi base de datos tambien se guarda asi mañana y nose por que.
  #16 (permalink)  
Antiguo 14/11/2011, 15:34
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

por eso no funciona pq ya esta guardado en la base de datos mal

cuando creas la base de datos el cotejamiento debe ser : latin1_spanish_ci y el cotejamiento de conexion debe ser: latin1_spanish_ci

cuando envies texto que tenga caracteres latinos como ñ y acentos debes hacer

Código PHP:
Ver original
  1. utf8_encode($variable)

asi cuando consultes ya te saldra bien prueba modifcar la ñ manual en tu base de datos para que veas
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #17 (permalink)  
Antiguo 14/11/2011, 15:37
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

como dijimos al principio de poner eso antes de l variable para que salga bien no? y con eso ya esta solucionado? claro pero si un usuario se llama toño para que salga bien lo tengo q poner eso no? e interfiere a los demas o lo demas saldra bien??
  #18 (permalink)  
Antiguo 14/11/2011, 15:39
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

en la base de datos esta guardado un caracter + o algo parecido donde va ñ esa conversion ya no la puedes hacer por codigo sino manual remplazando pq ya se guardo con el formato incorrecto en la base de datos

el utf8_encode lo usas para convertir cadenas que enviaras con caracters latino una es para enviar utf8_decode para recibir.
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #19 (permalink)  
Antiguo 14/11/2011, 15:41
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

y como guardo bien el valor en la base??
  #20 (permalink)  
Antiguo 14/11/2011, 15:44
Avatar de tomark4  
Fecha de Ingreso: septiembre-2007
Mensajes: 154
Antigüedad: 16 años, 7 meses
Puntos: 29
Respuesta: problema al guardar ñ en base datos

muestrame tu codigo y te digo como
__________________
"Todos somos ignorantes, pero no todos ignoramos las mismas cosas"

http://www.pctec21.blogspot.com
http://www.pctec21.com
  #21 (permalink)  
Antiguo 14/11/2011, 15:51
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

esta es la pag en la que esta el formulario
Código PHP:
<? include("header.php"); 

if (!isset(
$_SESSION['logueado_usuario'])) { 
    include (
"login.php");  
echo 
"<a href='registro.php'>Registrarse</a>" ;} 
    else {  
    
$nombre =$_SESSION['logueado_nombre']; 
    
$id_usuario=$_SESSION['logueado_id']; 
?> 
<?php
include("privados/config.php");
$registros=mysql_query("select * from usuarios WHERE id = '$id_usuario'"$conexion)or
  die(
"Problemas en el select:".mysql_error());
  while(
$reg=mysql_fetch_array($registros))
  {
  
?><div id="izquierda">
  <div class="nombre"><? echo $nombre?></div>
<div class="img_usuario"> <img src="<?php echo "".$reg['imagen']. "";?>" /></div>
<div class="logout"><a href="logout.php">Desconectarse</a></div> 
</div> 
<?php
  
}
?>
 
 <div class="contenedor_muro"> 
Que te pasa por la cabeza ? 
     <form name="form" method="post"> 
     <textarea cols="30" rows="2" name="textarea_noticia" class="textarea_noticia" id="textarea_noticia"></textarea><br /> 
     <input type="submit" value="Compartir" class="enviar_noticia" /> 
     </form> 
</div> 

<div id="cargando"></div> 

<div id="mostrar"></div> 
<?php

include("consulta.php"); 




// cerramos el else 

include ("footer.php");  
?>
esta es la que los muestra
Código PHP:
<?php 
// Hacer consulta para recuperar noticias 
$query mysql_query("SELECT * FROM messages order by msg_id desc"); 
while(
$resultado mysql_fetch_assoc($query)){ 
    
$id $resultado["msg_id"]; 
    
$estado utf8_decode($resultado['estado']);//$resultado["estado"]; 
    
$gusta $resultado["gustar"]; 
    
$id_us$resultado["user_id"]; 
    
$query2=mysql_query("SELECT * FROM usuarios WHERE id = '$id_us' "); 
    
$array2=mysql_fetch_array($query2); 
    
$nombre_posteador=$array2["nombre"]; 
    
?> 
    <?php
include("privados/config.php");
$registros=mysql_query("select * from usuarios WHERE nombre = '$nombre_posteador'"$conexion)or
  die(
"Problemas en el select:".mysql_error());
  while(
$reg=mysql_fetch_array($registros))
  {
  
  
$imagen=$reg['imagen'];
  }
    
?>
    <div class="bar<?php echo $id;?>" id="bar"> 
    <!-- Contenedor que mostrara los estados --> 
    <div class="post_box"> 
    <div class="otro"> 
   <img src="<?php echo $imagen ?>?<?php echo time();?>" width="38" height="38" class="imagen" /> 
    <div class="nombre_usuario"><?php echo $nombre_posteador?>
    <div class="noticia"><?php echo $estado;?></div> 
    <div class="eliminar_noticia"><? if ($id_us==$_SESSION['logueado_id']){ ?>
    <form action="borrar.php" method="post">
    <input type="hidden" name="id" value="<?php echo $id;?>" />
    <input type="image" src="imagenes/borrar.png" />
    <? ?></div> 
    <div id="pie"> 
        <div class="cotenEstado" id="cotenEstado<?php echo $id;?>"> 
        <?php 
         
if($gusta == 0){ 
         
?> 
        <a href="gustar.php" class="MeGustaNotice" id="<?php echo $id;?>">Me gusta</a> 
        <?php } else if($gusta == 1) { ?> 
        <a href="nogustar.php" class="NoMeGustaNotice" id="<?php echo $id;?>">Ya no Me gusta</a> 
        <legend>Te gusta esto</legend> 
        <? ?> 
        </div> 
        </div>             
        </div>                     
    </div>             
</div> 
<?php 
    
}   ?>
  #22 (permalink)  
Antiguo 14/11/2011, 15:56
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

y por ultimo este es el que lo guarda se llama insertarestado.php pero lo manda por javascript que yo no se de ese codigo jeje
Código PHP:
<?php session_start(); 
    include(
"db.php"); 
    
$nombre =$_SESSION['logueado_nombre']; 
    
// si se ha enviado contenido 
    
if(isset($_POST["textarea_noticia"])){ 
        
$msg $_POST["textarea_noticia"]; 
        
$msg_limpiostrip_tags($msg); 
        
$id_usuario $_SESSION['logueado_id']; 
        
// Insertar la informacion 
        
$sql mysql_query("INSERT INTO messages(estado,user_id)values('$msg','$id_usuario')"); 
        
$result mysql_query("SELECT * FROM messages order by msg_id desc"); 
        
$row mysql_fetch_assoc($result); 
        
$id $row["msg_id"]; 
        
$msg $row["estado"]; 
        
$id_user_post $row["user_id"]; 
    } 
?> 
<div class="bar<?php echo $id;?>" id="bar"> 
            <!-- Contenedor que mostrara los estados --> 
            <div class="post_box"> 
            <div class="otro"> 
            <img src="usuarios/<?php echo $id_usuario?>.jpg" width="38" height="38" class="imagen" /> 
            <div class="nombre_usuario"><?php echo $nombre?></div> <!-- Imagen del Usuario, sera la misma hasta que usemos mas base de datos--> 
            <div class="noticia"><?php echo $msg;?></div> 
            <div class="eliminar_noticia"><? if ($id_user_post==$_SESSION['logueado_id']){ ?><a href="borrar.php" id="<?php echo $id;?>" class="eliminar_noticia_actualizado">X</a><? ?></div> 
            <div id="pie"> 
            <div class="cotenEstado" id="cotenEstado<?php echo $id;?>"> 
            <?php 
            
if($gusta == 0){ 
            
?> 
            <a href="" class="MeGustaNotice" id="<?php echo $id;?>">Me gusta</a> 
            <?php } else if($gusta == 1) { ?> 
            <a href="#" class="NoMeGustaNotice" id="<?php echo $id;?>">Ya no Me gusta</a> 
            <legend>Te gusta esto</legend> 
            <? ?> 
            </div> 
        </div>             
    </div>                     
</div>             
</div>
  #23 (permalink)  
Antiguo 16/11/2011, 04:56
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

no doy con cual es el problema de que no me guarde bien la ñ que puede ser? gracias por contestar.
  #24 (permalink)  
Antiguo 19/11/2011, 07:53
(Desactivado)
 
Fecha de Ingreso: septiembre-2011
Mensajes: 283
Antigüedad: 12 años, 7 meses
Puntos: 10
Respuesta: problema al guardar ñ en base datos

alguien sabe que puede ser lo que hace que no me guarde la ñ? gracias
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 16:42.