Jack Oliveira 1 Denunciar post Postado Abril 10, 2020 Boa noite @Omar~ preciso de uma ajuda sua se puder ou qualquer pessoal aqui que poderá me auxiliar no problema Meu cliente ele cadastra as empresas dele destacando por espaço na frente do titulo.. cada espaço dado pra ele seria um tipo de destaque, quanto mais ter espaço na frente mais aquela empresa aparecerá no site dele Acho que esta entendo o que estou dizendo aqui.. Porém ele quer criar um form onde os clientes dele possa editar as informações, mais sem puder tirar os espaço que esta, uma maneira dos cliente mudar apenas o titulo e manter estes espaço. Teria alguma forma pra isso?? Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Maio 4, 2020 tenta botar uns exemplos comentados pra gente entender melhor. eu mesmo não entendi quase nada do problema. onde e em que fica esses espaços? de que jeito esses espaços são colocados lá? de que jeito vai alterar? é php, javascritpt... Compartilhar este post Link para o post Compartilhar em outros sites
Jack Oliveira 1 Denunciar post Postado Maio 4, 2020 @marsolim boa tarde então é o seguinte vou tentar fazer um exemplo vou por em números na frente do titulo este numero seria os espaços que ele dar ao cadastrar.. 1Mercado Novo Preço 2Mercado Bela Vista 3Mercado Da Dona Maria 4Mercado Sorriso Aí cada numero na frente resulta a quantidade de espaço dado o que é preciso é apenas o titulo ser alterado sem que os clientes mude o espaço os cadastrados é feito em php Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Maio 4, 2020 cara não ia ser mais fácil cadastrar esse dado em um campo separado no banco de dados? eu faço é dessa forma. aí tu não precisa se preocupar da pessoa mudar ele. isso é o correto de se fazer cada dado em seu respectivo lugar. Compartilhar este post Link para o post Compartilhar em outros sites
Jack Oliveira 1 Denunciar post Postado Maio 4, 2020 7 minutos atrás, marsolim disse: cara não ia ser mais fácil cadastrar esse dado em um campo separado no banco de dados? eu faço é dessa forma. aí tu não precisa se preocupar da pessoa mudar ele. isso é o correto de se fazer cada dado em seu respectivo lugar. Seria sim, porém o cliente não quer recadastrar tudo de novo pois são mais de 4 mil clientes cadastrado no banco Compartilhar este post Link para o post Compartilhar em outros sites
Omar~ 87 Denunciar post Postado Maio 5, 2020 Se eu entendi direito, seria como se o administrador pudesse ordenar quais "empresas" seriam priorizadas como ordem de exibição Nesse caso particularmente faria uma adição na tabela para ordenar isso, ou criaria outra para tal afim, e como nosso amigo @marsolim disse é o recurso eficiente. E não usaria um "espaço" e sim um input ou um select para tal coisa, seguindo o conceito que haveria uma coluna ou tabela onde poderia armazenar esse dado. No mais é até um upgrade simples dependendo da arquitetura do sistema. Porque "não é possível de se fazer" uma vez que o cliente/empresa pode alterar o campo onde fica gravado o nome. Se nós tentarmos pegar os espaços não dar certo pois por exemplo podemos ter um nome composto com "espaços" tipo " Loja de roupa" . Mesmo que tenhamos um espaço no início temos também espaços no decorrer da string, mesmo que possamos fazer uma expressão regular para tal afim acho que não daria certo. Veja essa questão dos espaços: <?php $stringAnterior = " anterior"; var_dump($stringAnterior); $totalDeEspacos = substr_count($stringAnterior, ' '); $espacos = " "; $novaString = str_repeat($espacos, $totalDeEspacos) . "substituir"; echo ("<br />"); var_dump($novaString); Compartilhar este post Link para o post Compartilhar em outros sites
Jack Oliveira 1 Denunciar post Postado Maio 5, 2020 10 horas atrás, Omar~ disse: Se eu entendi direito, seria como se o administrador pudesse ordenar quais "empresas" seriam priorizadas como ordem de exibição @Omar~ sim seria isso mesmo... o que eu tinha sugerido para ele era realmente criar um select seria na base deste aqui onde ele poderia criar vários destaque conforme seria a necessidade dele <div class="col-md-6"> <div class="form-group"> <label>Destaques:</label> <em> Destacar as empresas</em> <select class="form-control input-lg" name="id_destaque"> <?php $Query = DBRead('c_destaque','*','ORDER BY categoria ASC'); if (is_array($Query)) { foreach ($Query as $c_dados) { ?> <option value="<?php echo $c_dados['id']; ?>"><?php echo $c_dados['categoria']; ?></option> <?php } } ?> </select> </div> </div> Neste ex: aí ele teria uma categoria onde ele poderia cadastrar e editar os seus planos de destaque.. porém ele não quer porque diz que já tem mais de 4 mil cadastrado já com estes destaques e não quer editar um por um.... Na verdade este projeto dele é um projeto antigo que fizeram para ele trabalhar... passei uma solução apropriada para que o sistema dele fica organizado, ele só não quer editar os dados que já estão kkk Compartilhar este post Link para o post Compartilhar em outros sites
Jack Oliveira 1 Denunciar post Postado Maio 5, 2020 10 horas atrás, Omar~ disse: <?php $stringAnterior = " anterior"; var_dump($stringAnterior); $totalDeEspacos = substr_count($stringAnterior, ' '); $espacos = " "; $novaString = str_repeat($espacos, $totalDeEspacos) . "substituir"; echo ("<br />"); var_dump($novaString); Vou olhar aqui @Omar~ obrigado.... Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Maio 5, 2020 uma saída pra resolver a parada sem ter que ser um a um é criar um script que conte o número de espaço antes de começar o nome e aí bota esse número num campo da tabela tipo ele começa a contar do começo do nome já que os espaços vem antes e aí quando detectar que acabou os espaços para de contar e aí usa strlen pra contar esses espaços e pode até tirar eles fora da string deixando o número na tabela. pode fazer isso num laço for. Compartilhar este post Link para o post Compartilhar em outros sites
Jack Oliveira 1 Denunciar post Postado Maio 5, 2020 1 hora atrás, marsolim disse: uma saída pra resolver a parada sem ter que ser um a um é criar um script que conte o número de espaço antes de começar o nome e aí bota esse número num campo da tabela tipo ele começa a contar do começo do nome já que os espaços vem antes e aí quando detectar que acabou os espaços para de contar e aí usa strlen pra contar esses espaços e pode até tirar eles fora da string deixando o número na tabela. pode fazer isso num laço for. teria uma base deste script de como posso começar ele?? Compartilhar este post Link para o post Compartilhar em outros sites
marsolim 110 Denunciar post Postado Maio 6, 2020 tenho uma ideia melhor acho eu. tu podes usar um rtrim() num laço de uma array do mysqli usando o SELECT pra trazer todos as linhas. o rtrim() remove caracteres a direita. então tu podes pegar o número de caracteres antes de fazer o rtrim e também depois de fazer o rtrim e então calcula pra saber a diferença. essa diferença é a quantidade de espaço que vai botar no campo que vai criar pra isso na tabela e tu vai fazer isso com um UPDATE para poder atualizar o nome já sem os espaços e o campo com a quantidade de espaço. mais ou menos assim: $sql = "SELECT * FROM nome_da_tabela"; if($res = mysqli_query($con, $sql)){ while($row = mysqli_fetch_assoc($res)){ $id = $row["id"]; $nome_i = $row["nome"]; $nome_f = rtrim($nome_i); $qtd = (strlen($nome_i) - $strlen($nome_f)); $sql_u = "UPDATE nome_da_tabela SET nome='$nome_f', espaco=$qtd WHERE id=$id"; $res_u = mysqli_query($con, $sql_u); } } detalhes: no lugar de "nome_da_tabela", irás colocar o nome correto da tabela em questão. "espaco" é um nome hipotético para o nome do campo que irás criar para armazenar esse dado da quantidade de espaços na tabela. $con seria o nome da variável da sua conexão ao banco de dados usando o mysql. IMPORTANTE: não esquecer de fazer um backup da tabela pro caso de algo dar errado poder voltar a orignal. ah e pra cadastrar nomes novos claro que deverás ter um campo a mais no form pra poder colocar a quantidade de espaços invés de colocar os espaços em si. e se fosse eu trocava o nome "espaço" por algo como "destaque" ou "estrelas". Compartilhar este post Link para o post Compartilhar em outros sites