Alguém que me ajude neste código

  • Autor Autor blogers
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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

Inserir CODE, HTML ou 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
 
Inserir CODE, HTML ou 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

Inserir CODE, HTML ou 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

Inserir CODE, HTML ou 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 edição:
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.
 

Tópicos similares

Valentinags24
Respostas
2
Visitas
114
Valentinags24
Valentinags24
colombiano3454
Respostas
4
Visitas
30
wilfry_002
W
Musk
Respostas
10
Visitas
304
Luis Eduardo Jaimes H
Luis Eduardo Jaimes H
DaniZ777
Respostas
7
Visitas
83
Antonielys Flores
A
Voltar
Topo