Alguien que me ayude en este codigo

  • Autor Autor blogers
  • Fecha de inicio Fecha de inicio
B

blogers

Pi
SEO
Hola primero que nada les agradeceria si me ayudan de ante mano yo quiero ir aprendiendo un poco de php pero hay veces que necesito ayuda en algunos codigos, les paso mi duda

tengo actualmente este codigo que me paso cicklow

mysql_query("DELETE FROM tabla WHERE (length(description)<=200 OR description='') AND description NOT LIKE '%JoS%';");

ese me ha funcionado de maravilla para borrar descripciones en blanco y menores de 200

pero yo quiero ahora borrar en el campo de description los registros con menos de 100 caracteres pero como hacer para que cuente solo las letras y no los espacion blancos
 
Lo veo un poco complicado de realizar con puro MySQL. Si encuentras solucion a esto con MySQL, seguro sera algo lento. Y la forma correcta es manejar los datos con PHP.

Mi recomendacion es filtrar el registro de estos datos antes de guardarlos en la BD, de esta manera les aplicas cualquier filtro, que podria ser un contador de palabras por ejemplo (str_word_count(..)...).

Incluso al manejar los datos con PHP podrias eliminar temporalmente los espacios en blanco del campo, y contar todos los caracteres, y si acierta no se hace nada con este campo, se pueden usar Arrays junto con los ID, y así cuando se encuentre un elemento, este se elimina mediante una consula SQL sencilla.

Pero mas que nada necesito saber el entorno en el que manejas los datos, y el fin.
 
Lo veo un poco complicado de realizar con puro MySQL. Si encuentras solucion a esto con MySQL, seguro sera algo lento. Y la forma correcta es manejar los datos con PHP.

Mi recomendacion es filtrar el registro de estos datos antes de guardarlos en la BD, de esta manera les aplicas cualquier filtro, que podria ser un contador de palabras por ejemplo (str_word_count(..)...).

Incluso al manejar los datos con PHP podrias eliminar temporalmente los espacios en blanco del campo, y contar todos los caracteres, y si acierta no se hace nada con este campo, se pueden usar Arrays junto con los ID, y así cuando se encuentre un elemento, este se elimina mediante una consula SQL sencilla.

Pero mas que nada necesito saber el entorno en el que manejas los datos, y el fin.


Gracias [MENTION=557]shadowhck[/MENTION] eres un capo del php te debo una :star2:
 
Hola primero que nada les agradeceria si me ayudan de ante mano yo quiero ir aprendiendo un poco de php pero hay veces que necesito ayuda en algunos codigos, les paso mi duda

tengo actualmente este codigo que me paso cicklow



ese me ha funcionado de maravilla para borrar descripciones en blanco y menores de 200

pero yo quiero ahora borrar en el campo de description los registros con menos de 100 caracteres pero como hacer para que cuente solo las letras y no los espacion blancos

Insertar CODE, HTML o PHP:
mysql_query("DELETE FROM  tabla WHERE (CHAR_LENGTH(REPLACE(description,' ',''))<=200 OR description='') AND description NOT LIKE '%JoS%';");
tan simple como eso...
Si kieres esperimentar mas: MySQL :: MySQL 5.0 Reference Manual :: 12.3 Funciones para cadenas de caracteres
 
Insertar CODE, HTML o PHP:
mysql_query("DELETE FROM  tabla WHERE (CHAR_LENGTH(REPLACE(description,' ',''))<=200 OR description='') AND description NOT LIKE '%JoS%';");
tan simple como eso...
Si kieres esperimentar mas: MySQL :: MySQL 5.0 Reference Manual :: 12.3 Funciones para cadenas de caracteres

Es parecida a mi solucion. xD

Insertar CODE, HTML o PHP:
mysql_query("
DELETE FROM tabla
WHERE
    (
        (
            length(REPLACE(description, ' ', '')) <= 100
            AND
            length(description) <= 200
        )
        OR
        description = ''
    )
    AND
    description NOT LIKE '%JoS%';
");
 
Es parecida a mi solucion. xD

Insertar CODE, HTML o PHP:
mysql_query("
DELETE FROM tabla
WHERE
    (
        (
            length(REPLACE(description, ' ', '')) <= 100
            AND
            length(description) <= 200
        )
        OR
        description = ''
    )
    AND
    description NOT LIKE '%JoS%';
");

si lo que pasa con lenght es que cuenta los bytes como 2... si tienes un texto de 5 caracteres char_lenght cuenta 5, lenght cuenta 10
 
si lo que pasa con lenght es que cuenta los bytes como 2... si tienes un texto de 5 caracteres char_lenght cuenta 5, lenght cuenta 10

Bueno, no conocia ese detalle. Al menos lo aclaraste. :encouragement:

Edito: Aunque estoy seguro que funciona como debería, lo probe en MariaDB 5.5 con HeidiSQL.
 
Última edición:
Bueno, no conocia ese detalle. Al menos lo aclaraste. :encouragement:

Edito: Aunque estoy seguro que funciona como debería, lo probe en MariaDB 5.5 con HeidiSQL.

sisi funciona bien. si el code 1 yo se lo pase. solo que ese es la dif entre los dos.
 
Atrás
Arriba