\n\n\n"); printf("
Inclusãocategoriinc01.php
\n"); # SWITCH CASE com a variável $passo SWITCH (TRUE) { # 1 case ($passo=='1'): { # 1.1 - Vamos montar o formulario para entrada de dados da categoria de equipamentos # o formulario faz uma chamada recursiva do programa categoriinc01.php # alimenta os valores das variaveis passo=1 e salto=$salto printf("
\n"); printf("\n"); printf("\n"); # monta uma tabela com duas colunas e na linhas monta o texto e o campo de input para cada campo da tabela printf("\n"); # O codigo da categoria sera gerada pelo programa printf("\n"); # campo de descricao deve ter tamanho de 60 caracteres e comprimento maximo de 60 printf("\n"); # o campo de data de cadastro deve ser dividido em tres partes para dia/mes/ano printf("\n"); printf("
Código: Será gerado pelo sistema
Descrição:
Cadastrado em://
\n"); # montar o botão de voltar uma página printf(""); # os botões de "limpar" e "incluir" devem estar fora da tabela e colocados na mesma linha printf(""); printf("
\n"); # terminar o case com valor do passo = 1 break; } # 1.1 case ($passo=='2'): { # 1.2 Vamos atualizar a categorias com os dados que foram digitados # Conectando o MySQL $SERVERNAME='localhost'; $USERNAME='estudante'; $SENHA='e1s2t3u4d5a6n7t8e9'; $BASENAME='minhabase'; $db=mysql_pconnect($SERVERNAME,$USERNAME,$SENHA) or die ("Erro ao conectar ao Banco"); $banco=mysql_select_db($BASENAME,$db) or die ("Problemas ao escolher a base de dados"); # Acertando a tabela de caracteres que sera usada no MySQL # O MySQL trabalha com vários tipos de caracteres em idiomas diferentes. Os comandos seguintes 'calibram' o MySQL para caracteres do Português-Brasil. mysql_query("SET NAMES 'utf8'"); mysql_query('SET character_set_connection=utf8'); mysql_query('SET character_set_client=utf8'); mysql_query('SET character_set_results=utf8'); # Vamos iniciar o tratamento de transação $tentativa=1; while ( $tentativa == 1 ) { # 1.1 - O laço se repete enquanto a variável de controle $tentativa valer 1 (TRUE) # Iniciando a transação. $query=mysql_query("START TRANSACTION"); # Se a operação for de INCLUSÃO, temos que pegar o máximo valor da PK e somar 1 # Este trecho pode ser retirado caso se adote na Base de Dados os campos AUTOINCREMENT para as PK. # Vamos Pegar o ultimo valor do codigo de categoria cadastrado e somar uma unidade # Esta sequencia deve ser realizada DENTRO da Transacao!! $cmd="SELECT max(cpcategoria) as CodMax FROM categorias"; $ultcod = mysql_query($cmd); # Em $cpcateg colocamos o maximo valor do campo cpcateg da tabela categorias $cp = ( mysql_num_rows($ultcod) ==0 ) ? "0" : (mysql_result($ultcod, 0, "CodMax")); printf("Último Código Gravado: %s
\n",$cp); # soma 1 ao codigo $PK=$cp + 1; printf("Agora será gravado o valor $PK para o código

\n"); $dtcadastro=$_POST['dtanocad']."-".$_POST['dtmescad']."-".$_POST['dtdiacad']; $comando="INSERT INTO categorias VALUES ($PK, '$_POST[txnomecateg]', '$dtcadastro')"; # A variavel $comando tem o comando que deve ser executado no MySQL (e ter seu resultado monitorado na aplicação). # Executando o comando $result=mysql_query($comando); # O Próximo SWITCH trata as situações de erro. A função mysql_errno($db) retorna o número do erro do MySQL. switch (TRUE) { # 1.1.3 - Avaliação da situação de erro (se existir). case mysql_errno($db) == 1213 : { # 1.1.3.1 - Erro de DeadLock - Cancelar e Reiniciar a transacao $query=mysql_query("ROLLBACK"); $tentativa=1; break; } # 1.1.3.1 case mysql_errno($db) > 0 : { # 1.1.3.2 - Erro! NÃO por deadlock. AVISAR o usuario. CANCELAR A transacao printf("Erro na tentativa de $textoope!
\n"); $mens=mysql_errno($db)." : ".mysql_error($db); printf("Mensagem: $mens
\n"); $query=mysql_query("ROLLBACK"); $tentativa=0; break; } # 1.1.3.2 case mysql_errno($db) == 0 : { # 1.1.3.3 - Nao tem erro! Concluir a transacao e Avisar o usuario. $query=mysql_query("COMMIT"); printf("Registro Atualizado com sucesso!
\n"); $tentativa=0; break; } # 1.1.3.3 } # 1.1.3 - Fim do SWITCH tratando os status da transação } # 1.1 - Fim do laço de repetição printf(""); break; } # 1.2 } # 1 printf("
\n"); printf("\n\n"); ?>