***Solucionado***Contador

Boa tarde

Eu utlizo um código em php onde ele conta os acessos e com este componho o numero da proxima proposta que enviarei ao cliente, tentei adapta-lo ao Scriptcase mas estou apanhando desde o inicio pois utilizei as macros sc_lookup e sc_select em ambas deu error o codigo antigo é este, bem simples:

<?php //Banco de Dados mysql_select_db($database_conex) or die ("Não foi possivel selecionar o banco de dados"); //busca a ultima visita no banco de dados $consulta = "SELECT visitas FROM contador"; $resultado = mysql_query ($consulta) or die ("Falha na consulta"); $linha = mysql_fetch_assoc($resultado); $visita = $linha["visitas"]; // Uma variavel recebe o valor da ultima visita $res = $visita + '1';//outra variavel recebe o valor da ultima visita e adiciona + 1 //insere o novo valor da visita no banco de dados $insere = "UPDATE contador SET visitas = $res WHERE visitas = '$visita'"; $resul_insere = mysql_query($insere) or die ("Falha na inserção"); //Imprime o número da Proposta $DATA=date('dmY'); $Proposta= 'ELM' . ' ' . $DATA . '-' . $res; //Fim BANCO DE DADOS ?>

em onValidateSuccess inseri desta forma

$resultado = sc_lookup(“SELECT visitas from contador”);

//$resultado = mysql_query ("$consulta"); nao sei se esta linha é necessária ou se a macro trás esta query

$linha = mysql_fetch_assoc($resultado);
$visita = $linha[“visitas”];
$res = $visita + ‘1’;;

$update_table = ‘contador’;
$update_where = “visitas = ‘$visitas’”; // Where clause
$update_fields = array( // Field list, add as many as needed
“visitas = ‘$res’”,
);

// Update record
$update_sql = ‘UPDATE ’ . $update_table
. ’ SET ’ . implode(’, ', $update_fields)
. ’ WHERE ’ . $update_where;
sc_exec_sql($update_sql);

$DATA=date(‘dmY’);

//forma o numero da proposta

$Proposta= ‘ELM’ . ’ ’ . $DATA . ‘-’ . $res;

Edivaldo bom dia,

Entendo tuas dúvidas. Por isto dê uma boa lida neste link, que fala sobre todas as macros do SC: http://www.scriptcase.com.br/docs/pt_br/v81/macros-scriptcase/macros-scriptcase

Espero que ajude.

É o que mais estou fazendo, porem achei muito vago as explicações para um iniciante, mas vou pesquisar mais, agradecido

Acho que o que faltou no seu select foi um max, ou seja, SELECT max(visitas) FROM contador.

Com o max, vc vai trazer o numero maior que tem na sua tabela contador. Use a macro sc_lookup

Grato pela força

O que esta emperrando o script é o array que nao completa para o banco de dados pois nao abastece $visita e $res tentei usar um wile mas como se trata de um unico registro de linha, nao justificava isto.

Creio quie o impasse esteja nisto

$linha = mysql_fetch_assoc($resultado);
$visita = $linha[“visitas”];
$res = $visita + ‘1’;;

Amigo, bom dia!!

Usa a macro sc_lookup.

$consulta = "SELECT max(visitas) FROM contador";
sc_lookup(rs, $consulta);

if (isset({rs[0][0]})){
    $res = {rs[0][0]} + 1;
}else{
    $res = 1;
}

Edivaldo, neste caso como é uma tabela de único registro, você também pode fazer o seguinte:

$consulta = "UPDATE contador SET visitas = visitas+1"; sc_exec_sql($consulta);

Caso seja o primeiro registro vc faz um Insert ou até mesmo deixa na geração do banco o valor padrão de 0;

Agradecido pelo código, mas creio que precise de duas variaveis $visita = {rs[0][0]}; // numero atual de visitas e $res = {rs[0][0]} + 1; //atualizado, o codigo esta muito bom, grato

Flavio

Isto ai! Diminuiu bastante codigo, deu certinho para o que preciso

Obrigado

Edivaldo essas propostas não são arquivadas? em uma tabela no banco? caso o cliente fechar o orçamento? você reativa e finaliza a proposta?

Sim, são arquivadas, no meu sistema antigo, tenho uma tabela enorme que colhe todos os dados, mas primeiramente meu intuito é cercar de conhecimento no scriptcase para montar o sistema definitivo.
Em nodo geral, hoje existe 23 tipos de proposta diferentes, para diferentes areas, e estas propostas inclusive vao gerar, as despesas de cada area, as taxas como impostos da região, tambem as margens de lucro, desconto e a mobilização e ate o parcelamento da proposta.
Lá na frente tenho que estudar como vou fazer para editar a proposta, com desconto ou com alterações nos topicos.
Pois bem, me dei um prazo de mais 3 meses de montagem do esqueleto e tambem aprofundamento no Scriptcase, para gerar o sistema com versao 1.0

Acho que espliquei

Grato

Boa noite

Valeu Edivaldo!