quien sabe programar en PHP y usar la base de datos mySQL
4 participantes
quien sabe programar en PHP y usar la base de datos mySQL
oigan jovenes quien sabe programar en PHP y usar las bases de datos mySQL?, tengo un problema "al parecer" sencillo pero que ya llevo meses sin poder resolver o poder googlear con una respuesta satisfactoria. pero antes de comenzar con el tecnicismo quisiera si alguien sabe
Re: quien sabe programar en PHP y usar la base de datos mySQL
Bueno en PHP no se pero en SQL si!!! estudio analista de sistemas y si te puedo ser de ayuda con gusto!!
XD
XD
Guason- Top Gun
- Sexo :
Mensajes : 318
Edad : 34
Lugar : Misiones
Inscripción : 23/05/2009
Re: quien sabe programar en PHP y usar la base de datos mySQL
yo se un poco de mySql !!!
FALKEN- Hero
- Sexo :
Mensajes : 595
Edad : 33
Lugar : Colombia
Inscripción : 02/09/2008
Re: quien sabe programar en PHP y usar la base de datos mySQL
Ok con eso tengo para saber si el problema es en el PHP o en el MySQL
Tengo una base de datos encodeado en UTF-8 donde almanece tanto caracteres latinos como caracteres japoneses (Hiragana y Katakana).
ejemplo:
ahora bien.. usando phpMyAdmin, hago el siguiente query:
SELECT * FROM table WHERE name LIKE %Monica%
y obtengo 1 resultado.
SELECT * FROM table WHERE jname LIKE %モニカ%
y obtengo el mismo resultado.
Osea que TODO trabaja perfectamente como deseo que lo haga.. el problema consiste en lo siguiente:
Mediante PHP creo un input sencillo para realizar una busqueda:
lo que obtengo a continuacios es que si ingreso la palabra monica obtengo 1 resultado
PERO cuando ingreso algun caracter en japones como モニカ NO obtengo resultado alguno, en cambio en phpMyAdmin si sale resultado
solo obtengo resultado cuando pongo 1 unico caracter como モ pero eso no es practico.
teorias?
Tengo una base de datos encodeado en UTF-8 donde almanece tanto caracteres latinos como caracteres japoneses (Hiragana y Katakana).
ejemplo:
name | jname |
monica | モニカ |
SELECT * FROM table WHERE name LIKE %Monica%
y obtengo 1 resultado.
SELECT * FROM table WHERE jname LIKE %モニカ%
y obtengo el mismo resultado.
Osea que TODO trabaja perfectamente como deseo que lo haga.. el problema consiste en lo siguiente:
Mediante PHP creo un input sencillo para realizar una busqueda:
- Código:
<?php
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="get">';
echo 'Search <input type="text" name="search" value="'.@$_GET['search'].'">';
echo '</form>';
?>
- Código:
if(!empty($_GET['search'])){
$connection=mysql_connect("localhost","root");
mysql_select_db("names");
mysql_query("SET CHARACTER SET utf-8");
$result = mysql_query("SELECT * FROM table WHERE name LIKE %".$_GET['search']."%");
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows";
}
lo que obtengo a continuacios es que si ingreso la palabra monica obtengo 1 resultado
PERO cuando ingreso algun caracter en japones como モニカ NO obtengo resultado alguno, en cambio en phpMyAdmin si sale resultado
solo obtengo resultado cuando pongo 1 unico caracter como モ pero eso no es practico.
teorias?
Re: quien sabe programar en PHP y usar la base de datos mySQL
la verdad no se que estara funsionando mal con las caracteres japonese
la parte de SQL esta bien... es lo que te puedo desir pero voy a averiguar que pasa
tengo contactos que conocendel tema!!!
al principio creia que no estabas llamando mal a mysql... pero si te sale la consulta con caracteres latinos esta bien!! hay que ver si PHP reconoce cararcteres japonese la vedad que no se si los reconoce
bueno te aberiguo y te comente despues XD
la parte de SQL esta bien... es lo que te puedo desir pero voy a averiguar que pasa
tengo contactos que conocendel tema!!!
al principio creia que no estabas llamando mal a mysql... pero si te sale la consulta con caracteres latinos esta bien!! hay que ver si PHP reconoce cararcteres japonese la vedad que no se si los reconoce
bueno te aberiguo y te comente despues XD
Guason- Top Gun
- Sexo :
Mensajes : 318
Edad : 34
Lugar : Misiones
Inscripción : 23/05/2009
Re: quien sabe programar en PHP y usar la base de datos mySQL
Haber para los viciosos del mysql aqui les tengo una "facilita"
Miren lo que intento hacer ahora es sortear la base de datos por medio de las clasicas "letras"
A B C D E F G .. etc
SELECT * FROM table1 WHERE column1 LIKE "A%"
SELECT * FROM table1 WHERE column1 LIKE "B%"
con esto me da resultado de todas las palabras que comienzas con la determinada letra...
Ok ahora lo que quiero hacer es sortear por medio de numeros y simbolos.. he intentado hacer esto:
SELECT * FROM table1 WHERE column1 LIKE "[^a-z]%"
SELECT * FROM table1 WHERE column1 NOT LIKE "[a-z]%"
pero no me funciona.. estoy haciendo algo mal o tengo mala la sintaxis?
Lo que ando usando actualmente es lo siguiente:
SELECT * FROM table1 WHERE column1 LIKE "0%" OR column1 LIKE "1%" .. .. OR column1 LIKE "9%"
pero es ineficiente y salvaje, ya que en la DB no solo tengo palabras que comienzan con numeros sino con simbolos como #,@ y pues obviamente no me funciona al 100%
escucho sugerencias
Miren lo que intento hacer ahora es sortear la base de datos por medio de las clasicas "letras"
A B C D E F G .. etc
SELECT * FROM table1 WHERE column1 LIKE "A%"
SELECT * FROM table1 WHERE column1 LIKE "B%"
con esto me da resultado de todas las palabras que comienzas con la determinada letra...
Ok ahora lo que quiero hacer es sortear por medio de numeros y simbolos.. he intentado hacer esto:
SELECT * FROM table1 WHERE column1 LIKE "[^a-z]%"
SELECT * FROM table1 WHERE column1 NOT LIKE "[a-z]%"
pero no me funciona.. estoy haciendo algo mal o tengo mala la sintaxis?
Lo que ando usando actualmente es lo siguiente:
SELECT * FROM table1 WHERE column1 LIKE "0%" OR column1 LIKE "1%" .. .. OR column1 LIKE "9%"
pero es ineficiente y salvaje, ya que en la DB no solo tengo palabras que comienzan con numeros sino con simbolos como #,@ y pues obviamente no me funciona al 100%
escucho sugerencias
Re: quien sabe programar en PHP y usar la base de datos mySQL
Mira mucho no se de php, pero corresponde que donde va la condicion del LIKE valla una expresion regular?
Re: quien sabe programar en PHP y usar la base de datos mySQL
Darcrow escribió:Haber para los viciosos del mysql aqui les tengo una "facilita"
Miren lo que intento hacer ahora es sortear la base de datos por medio de las clasicas "letras"
A B C D E F G .. etc
SELECT * FROM table1 WHERE column1 LIKE "A%"
SELECT * FROM table1 WHERE column1 LIKE "B%"
con esto me da resultado de todas las palabras que comienzas con la determinada letra...
Ok ahora lo que quiero hacer es sortear por medio de numeros y simbolos.. he intentado hacer esto:
SELECT * FROM table1 WHERE column1 LIKE "[^a-z]%"
SELECT * FROM table1 WHERE column1 NOT LIKE "[a-z]%"
pero no me funciona.. estoy haciendo algo mal o tengo mala la sintaxis?
Lo que ando usando actualmente es lo siguiente:
SELECT * FROM table1 WHERE column1 LIKE "0%" OR column1 LIKE "1%" .. .. OR column1 LIKE "9%"
pero es ineficiente y salvaje, ya que en la DB no solo tengo palabras que comienzan con numeros sino con simbolos como #,@ y pues obviamente no me funciona al 100%
escucho sugerencias
podrías usar la sentencia AND o hacer sub querys ...para hacer la consulta que tu deseas yo usaría el AND y pondría cada símbolo por que utilizando OR la BD no hace el barrido completo, en cambio utilizando AND estas obligando a la BD a que te arroja ambos resultados.
que error te suelta la base de datos, en la parte donde lanza la excepcion donde dice 'near'
si no he entendido el problemas hasme saber xd
FALKEN- Hero
- Sexo :
Mensajes : 595
Edad : 33
Lugar : Colombia
Inscripción : 02/09/2008
Permisos de este foro:
No puedes responder a temas en este foro.