Autor Tópico: ** RESOLVIDO ** Gerar sequencia de numeros  (Lida 865 vezes)

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
** RESOLVIDO ** Gerar sequencia de numeros
« Online: Novembro 20, 2015, 10:49:35 am »
Pessoal bom dia.
Estou com a necessidade, o usuário irá digitar o número de inicio, termino e quantidade a ser criada.
ex: campo numero inicio: 1100
      campo numero termino: 1109
no banco de dados o campo numero recebe inicio e termino, assim que clicar em incluir no form.

No FORM criei os campos inicio e termino.

Fui no onValidateSuccess e coloquei:

if (sc_btn_insert){
$term= {termino};

for ($ini = {inicio};$ini <=$term;$ini++){
    {numero}=$ini;
 }
}

Mas o problema é que não esta criando os números no BD, poderia me ajudar?
« Última modificação: Dezembro 02, 2015, 02:39:56 pm por celso »

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1154
  • .....
    • Email
Re:Gerar sequencia de numeros
« Responder #1 Online: Novembro 20, 2015, 12:25:59 pm »
vichi nossa , mais errado que isso impossível..


vamos fazer assim

coloca aqui o nome da tabela e coluna que vai receber os números vai ser sequencia certo , tipo a tabela na coluna vai receber varias linhas com a sequencia de números certo??

te dou um exemplo de cara

Código: [Selecionar]
if (sc_btn_insert){
$term= {termino};

for ($ini = {inicio};$ini <=$term;$ini++){
    $sql = "INSERT INTO tbl_numeros (sequencia) VALUES ($ini)";
    sc_exec_sql($sql);
 }
}

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #2 Online: Novembro 20, 2015, 02:32:13 pm »
William boa tarde.

Muito obrigado pelo apoio, deu certinho, como você descreveu.

if (sc_btn_insert){
$term= {termino};

for ($ini = {inicio};$ini <=$term;$ini++){
    $sql = "INSERT INTO tbl_numeros (numero) VALUES ($ini)";
    sc_exec_sql($sql);
 }
}

Agora estou com uma dificuldade, para não cadastrar números que já existem, mas estou verificando as possibilidades e revendo os manuais e informações, caso tenha alguma informação para passar agradeço muito.

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #3 Online: Novembro 20, 2015, 05:04:35 pm »
Outra coisa, esta sendo acrescentado os números 1100 a 1199 e também o numero 0, como faço para tirar o zero hein?

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1154
  • .....
    • Email
Re:Gerar sequencia de numeros
« Responder #4 Online: Novembro 20, 2015, 06:39:24 pm »
Outra coisa, esta sendo acrescentado os números 1100 a 1199 e também o numero 0, como faço para tirar o zero hein?

como assim zero não entendi. explique melhor


Agora estou com uma dificuldade, para não cadastrar números que já existem, mas estou verificando as possibilidades e revendo os manuais e informações, caso tenha alguma informação para passar agradeço muito.

Bom neste caso pode sobre carregar um pouco o processo e fazer um SQL verificador antes

Código: [Selecionar]
if (sc_btn_insert){
$term= {termino};

for ($ini = {inicio};$ini <=$term;$ini++){
    $sql_verificador = "SELECT COUNT(*) FROM tbl_numeros WHERE numero = $ini";
    sc_lookup(ds_ver,$sql_verificador );
    if({ds_ver[0][0]} == 0){
        $sql = "INSERT INTO tbl_numeros (numero) VALUES ($ini)";
         sc_exec_sql($sql);
    }
   
 }
}






uma questão simples de Logica

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #5 Online: Novembro 23, 2015, 06:53:38 am »
Willian, bom dia.
Muito obrigado, quanto ao zero, quando crio a sequencia 100 a 110 é criado mais um no final.
100,101,102,103,104,105,106,107,108,109,110,0.

vou alterar para while e ver o que acontece.

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #6 Online: Novembro 23, 2015, 09:32:07 pm »
Olha esta imagem para exemplificar o que esta acontecendo

é criado um valor em branco
« Última modificação: Novembro 27, 2015, 04:30:21 pm por celso »

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #7 Online: Novembro 24, 2015, 04:16:37 pm »
Mais alguém já passou por isso?

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1154
  • .....
    • Email
Re:Gerar sequencia de numeros
« Responder #8 Online: Novembro 24, 2015, 04:22:20 pm »
coloca o código que tu ta usando completo

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #9 Online: Novembro 25, 2015, 07:37:11 am »
Prezado Willian, muito obrigado pelo apoio.
Segue o código utilizado conforme imagem acima.

if (sc_btn_insert)
{
$ter={termino};   

for ($ini={inicio}; $ini <= $ter; $ini++){
   
   $sql = "INSERT INTO tb_ramais (ramais) VALUES ($ini)";
        sc_exec_sql($sql);
   }
}

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1154
  • .....
    • Email
Re:Gerar sequencia de numeros
« Responder #10 Online: Novembro 25, 2015, 08:08:09 am »
Faz assim agora para fazer uma depuração mais refinada

Código: [Selecionar]

if (sc_btn_insert)
{
$ter={termino};   

echo "TERMINO = $ter".'\r\n';

$ini={inicio};

echo "INICIO= $ini".'\r\n';

for ($inicio=$ini; $inicio<= $ter; $inicio++){

      echo "INTERATOR = $inicio".'\r\n';

   $sql = "INSERT INTO tb_ramais (ramais) VALUES ($inicio)";
        sc_exec_sql($sql);
   }
}




Depois ponha aqui o resultado que sai na tela

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #11 Online: Novembro 25, 2015, 08:33:30 am »
Resultado foi este:

TERMINO = 1110\r\nINICIO= 1100\r\nINTERATOR = 1100\r\nINTERATOR = 1101\r\n
   
Atenção   Fechar
Erro ao acessar o banco de dados
Duplicate entry '1100' for key 'PRIMARY'

View SQL

celso

  • Intermediário
  • ***
  • Mensagens: 247
    • Email
Re:Gerar sequencia de numeros
« Responder #12 Online: Novembro 26, 2015, 07:57:25 pm »
Ola willian viu alguma coisa

Kleyber

  • Expert
  • *****
  • Mensagens: 2239
    • Email
Re:Gerar sequencia de numeros
« Responder #13 Online: Novembro 27, 2015, 08:50:03 am »
Celso bom dia,

Você apagou os registros da tabela pra poder executar o teste? O erro se dá porque o registro já existe...
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Jailton

  • Expert
  • *****
  • Mensagens: 2041
Re:Gerar sequencia de numeros
« Responder #14 Online: Novembro 27, 2015, 09:20:46 am »
Duplicate entry '1100' for key 'PRIMARY'
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.