Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Leguim

#531
Cita de: MinusFour en 27 Agosto 2019, 05:28 AM
Tienes que volver a re insertar la información en tu base de datos, porque la información que está en tu base de datos está incorrecta.

SON UNOS GENIOS! VOS Y EDEPC MUCHAS GRACIAS A LOS DOS!
#532
Cita de: MinusFour en 27 Agosto 2019, 05:12 AM
No se si haya menus en español, yo tengo mi sublime en inglés. Pero primero abro el archivo con sublime y después voy a File->Reopen With Encoding->Windows 1252. Yo creo que el archivo si está en UTF-8....

Lo del charset, si es muy probable que este afectando tu información. Porque la información viaja codeada en ISO-8859-1 (Mysql no usa Windows 1252??), lo que significa que tu cliente malforma el texto UTF-8.

Para PDO puedes hacer:

Código (php) [Seleccionar]
$db = new PDO('mysql:host=localhost;dbname=basededatos;charset=utf8', 'usuario', 'contraseña');

Y yo probaría de nuevo con el query para estar seguro.



Hice eso pero el resultado ahora aparece así en la pantalla, lo imprime así:

Míguel Cañellas
de igual forma sigue sin funcionar ahora aunque escriba "mí" no lo encuentra

EDIT: el charset igualmente ahora si sale en utf8
#533
Cita de: MinusFour en 27 Agosto 2019, 04:52 AM
Nosotros solo vamos a poder ver UTF-8 porque es el encoding que usa el foro. Tendrías que subir el archivo a algún lado o nos puedes dar el dump en hexadecimal (pero no lo hagas). Como dije, la forma más simple de revisar si el archivo está en Windows 1252, es simplemente usar un editor que te permita abrir el archivo usando otros encodings.

Sublime es gratis, tiene está función y es super sencillo de usar. Notepad++ también tiene una función similar.

O podrías darnos el hexadecimal de los caracteres relevantes. Tampoco es difícil.

Si tuviera que adivinar tienes:


0x4d 0xc3 0x83 0xc2 0xad 0x67 0x75 0x65 0x6c


Para el string de: Míguel

Si yo uso sublime sería cosa de pegar el dump en sublime text y en que parte esta esa funcionalidad de la que hablas?
y sobre lo del charset que me devolvió "latin_1" esto podría ser lo que me de el fallo de no reconocer acentos?
#534
Ya pude!

Código (php) [Seleccionar]

-- MySQL dump 10.16  Distrib 10.1.37-MariaDB, for Win32 (AMD64)
--
-- Host: localhost    Database: basedatos
-- ------------------------------------------------------
-- Server version 10.1.37-MariaDB

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `usuarios`
--

DROP TABLE IF EXISTS `usuarios`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `usuarios` (
 `id_user` int(50) NOT NULL AUTO_INCREMENT,
 `name` varchar(25) COLLATE utf8_spanish_ci DEFAULT NULL,
 `surname` varchar(25) COLLATE utf8_spanish_ci DEFAULT NULL,
 `email` varchar(200) COLLATE utf8_spanish_ci DEFAULT NULL,
 `password` varchar(200) COLLATE utf8_spanish_ci DEFAULT NULL,
 `year_birth` int(2) DEFAULT NULL,
 `month_birth` int(2) DEFAULT NULL,
 `day_birth` int(2) DEFAULT NULL,
 `sex` int(2) DEFAULT NULL,
 `avatar` varchar(200) COLLATE utf8_spanish_ci DEFAULT NULL,
 PRIMARY KEY (`id_user`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `usuarios`
--

LOCK TABLES `usuarios` WRITE;
/*!40000 ALTER TABLE `usuarios` DISABLE KEYS */;
INSERT INTO `usuarios` VALUES (1,'Míguel','Cañellas','canellasmiguel2000@gmail.com','d123c4898730d77d2672621636b8376822bf7cd5df07f4bc1d0d13em7pr2f221e0223kf7dfd9f7d0847149efa5e4afzcd2a54af4uv8b3776e1c4d7f82be09a10d7',2000,6,4,1,'78180511T20198102052.jpeg');
/*!40000 ALTER TABLE `usuarios` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2019-08-26 23:27:55


pasarón 86 años pero ya pude! jaja

el charset me devolvio esto
Código (php) [Seleccionar]

array(1) { [0]=> array(2) { ["@@character_set_client"]=> string(6) "latin1" [0]=> string(6) "latin1" } }
#535
Cita de: EdePC en 27 Agosto 2019, 03:15 AM
- Me he descargado una versión viejita de MySQL 5.6.35, y todo funciona correctamente también, jeje no logro replicar tu problema XD.

- Por cierto, el dump lo hago ejecutando:


Woao te agradezco mucho el gesto!  :rolleyes:

eso donde lo ejecuto en la consola de phpmyadmin?

EDIT: me di cuenta que eso lo ejecutas en una consola jeje, cual es mysql.exe?
#536
¿Algo así?
Ya se  ya se, soy un desastre...

Código (php) [Seleccionar]

function Conexion($user, $pass)
{
try
{
$con = new PDO('mysql:host=localhost;dbname=datos', $user, $pass);
echo $con->query('SELECT @@character_set_client');
return $con;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}
#537
Sería algo así, si ya se soy algo duro para entender  :xD

Código (php) [Seleccionar]

function Conexion($user, $pass)
{
try
{
$con = new PDO('mysql:host=localhost;dbname=basedatos', $user, $pass);
$con->character_set_name();
return $con;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}


Porque la manera en la que lo puse da errores, también probé tal y como me lo pasaste mysql_chararacter_set_name($mysql);
pero da el error de que la función no existe (la variable $mysql la adapte por supuesto)

EDIT: recien me di cuenta que que era mysqli_ y no mysql_ viendo el manual de php me di cuenta nose como no pude ver la i en la función que mandaste, igual ahora me da un warning

"mysqli_character_set_name expects parameter 1 to be mysqli, object given in on line 1301"

Código (php) [Seleccionar]

        function Buscar_Usuarios_Ajax($search)
{
$con = Conexion("root", "");
echo mysqli_character_set_name($con);
$consulta = $con->prepare("SELECT id_user, name, surname, avatar FROM usuarios WHERE CONCAT(name, ' ', surname) LIKE '%".($search)."%' ORDER BY CONCAT(name, ' ', surname) ASC LIMIT 6");
$consulta->execute();
$resultados = $consulta->fetchAll();

return $resultados;
}
#538
No creo que te haya entendido muy bien jeje  ;D pero en base a lo que te pude entender hice esto.

Código (php) [Seleccionar]

       function Buscar_Usuarios_Ajax($search)
{
$con = Conexion("root", "");
echo $search; // imprimo la busqueda (texto)
$search = utf8_encode($search);
echo $search; // imprimo la busqueda (texto) pero codificada a utf8
$consulta = $con->prepare("SELECT id_user, name, surname, avatar FROM usuarios WHERE CONCAT(name, ' ', surname) LIKE '%".($search)."%' ORDER BY CONCAT(name, ' ', surname) ASC LIMIT 6");
$consulta->execute();
$resultados = $consulta->fetchAll();
echo $resultados[0]['name']; // imprimo el nombre encontrado

return $resultados;
}


me devuelve si escribo "Míguel"
echo = "Míguel"
echo = "MÃguel"
naturalmente no va encontrar resultados pero digamos si escribo "M" antes de poner una i sin acento ya que en la base de datos existe "Míguel" pero se almacena "MÃguel"

echo "M"
echo "M"
echo "Míguel" // sería el resultado obtenido o que se muestra

de igual forma sigue sin funcionar

y en breve me parece que va a pasar esto:
#539
Hola! ya cambié algunas cosas, revise las cosas que me dijeron primero revisar el editor si guarda en el encoding utf8 que estaba bien, luego editar mysql la collation en ese archivo que estaba en utf8_uniqode_ci y lo cambie a utf8_spanish_ci,  pero sigue igual lo que no se ahora es hacer un dump...

No se si sea relevante pero digamos un nombre el mio por ejemplo si le pones la i con acento se vería así en la base de datos:

Míguel y no Míguel, me imagino que esto esta bien porque me codifica a utf8 pero quería señalarlo.

Gracias a los dos!
#540
Gracias manolo, me quedo un poco más claro!