cjp escreveu:1) Troquei mas não resolveu. Fico com a dúvida: será que $registro está em branco, ou se tem conteúdo que não está sendo exibido? Não tem uma forma de testar?
Inácio, a única maneira é verificar o código para ver se você não fez nada errado. Então vamos analisar o seu código do terceiro PHP:
$sql="SELECT * FROM COMPRAS WHERE CODIGO=".$reg;
Aqui você está filtrando o registro do produto que tem o código igual ao que o usuário selecionou, então vai retornar APENAS um registro.
while( false !== ( $Row = @odbc_fetch_array( $rs ) ) ) {
}
odbc_fetch_row($rs,$reg);
$cod = odbc_result($rs,"codigo");
Não entendi porque você colocou este While.
Na função odbc_fetch_row($rs,$reg) vai retornar uma linha do resultado do filtro feito anteriormente, onde $rs é o retorno do filtro de APENAS um produto e $reg é o CÓDIGO do produto escolhido pelo usuário (este CÓDIGO pode ser de 1 a 1000).
Então, este último código que destaquei, só vai dar certo se o CÓDIGO do produto escolhido pelo usuário for igual a 1. Se for maior que 1 (de 2 a 1000) não vai retornar nada, então $cod vai ficar vazio.
Como resolver isto?
Como este código que destaquei não tá servindo para nada, então simplesmente excluir estas linhas e se na variável $reg já tem o código do produto escolhido pelo usuário, então alterar a linha $registro = dbase_get_record_with_names($db, $cod);, substituindo $cod por $reg.
cjp escreveu:Pelo que eu entendi, a função pegaria para a array os campos da base, acrescendo o campo para indicar se o registro está ou não deletado. É isso? Neste caso, a array tem um campo a mais do que a base, e esse campo teria que ser excluÃdo para ser recolocado na base. Estou correto?
Exatamente, este campo tem que ser excluÃdo. Como excluir??? Na minha mensagem anterior eu disse:
Toledo escreveu:Dê uma olhada no exemplo que está no link
Então era para olhar o exemplo mesmo que está no link:
http://php.net/manual/en/function.dbase-replace-record.php#example-1148
Veja o "remove the 'deleted' entry".
Sobre o campo do formulário para digitar o preço, tente o seguinte:
<input pattern="[0-9][0-9][0-9],[0-9][0-9]" name="preco" min="1" max="999" step="0.01" type="number">
Abraços,
Abraços,