18 Jun 2014 10:00
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?
$sql="SELECT * FROM COMPRAS WHERE CODIGO=".$reg;
while( false !== ( $Row = @odbc_fetch_array( $rs ) ) ) {
}
odbc_fetch_row($rs,$reg);
$cod = odbc_result($rs,"codigo");
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?
Toledo escreveu:Dê uma olhada no exemplo que está no link
<input pattern="[0-9][0-9][0-9],[0-9][0-9]" name="preco" min="1" max="999" step="0.01" type="number">
18 Jun 2014 23:24
<html>
<head>
<title>Cadastrando preço</title>
</head>
<body>
<?php
$reg= $_GET['id'];
$prec= $_POST['preco'];
$dsn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME'])."/meusarq/agenda/;";
$conn= odbc_connect($dsn,"","");
if(!$conn)
{ exit("conexao falhou: ".odbc_errormsg()); }
else
echo "Registro: ".$reg;
echo '<br>';
echo "Preço digitado: ".$prec;
echo '<br>';
$sql="SELECT * FROM COMPRAS WHERE CODIGO=".$reg;
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
$db = dbase_open("meusarq/agenda/compras.dbf", 2);
if ($db)
{$registro = dbase_get_record_with_names($db, $reg);}
else
{echo "Não abriu a base";}
echo '<br>';
echo "data : ".$registro['data'];
echo '<br>';
echo "produto : ".$registro['produto'];
echo '<br>';
echo "preço máximo : ".$registro['prmaximo'];
echo '<br>';
$registro['prmercador']=$prec;
unset($registro['deleted']);
if (!dbase_replace_record($db, $registro, $cod))
{echo 'Não foi possível alterar registro no banco de dados';}
dbase_close($db);
?>
19 Jun 2014 08:34
$sql="SELECT * FROM COMPRAS WHERE CODIGO=".$reg;
$rs=odbc_exec($conn,$sql);
if (!$rs)
{exit("Error in SQL");}
$reg= $_GET['id'];
$reg= str_replace(".0","",$_GET['id']);
19 Jun 2014 13:26
<html>
<head>
<title>Cadastrando preço</title>
</head>
<body>
<?php
$reg= str_replace(".0","",$_GET['id']);
$prec= $_POST['preco'];
$dsn = "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=".dirname($_SERVER['SCRIPT_FILENAME'])."/meusarq/agenda/;";
$conn= odbc_connect($dsn,"","");
if(!$conn)
{ exit("conexao falhou: ".odbc_errormsg()); }
else
echo "Registro: ".$reg;
echo '<br>';
echo "Preço digitado: ".$prec;
echo '<br>';
$db = dbase_open("/meusarq/agenda/compras.dbf", 2);
if ($db)
{$registro = dbase_get_record_with_names($db, $reg);}
else
{echo "Não abriu a base";}
echo '<br>';
echo "data : ".$registro['data'];
echo '<br>';
echo "produto : ".$registro['produto'];
echo '<br>';
echo "preço máximo : ".$registro['prmaximo'];
echo '<br>';
$registro['prmercador']=$prec;
unset($registro['deleted']);
if (!dbase_replace_record($db, $registro, $reg))
{echo 'Não foi possível alterar registro no banco de dados';}
dbase_close($db);
?>
19 Jun 2014 17:02
cjp escreveu:O $reg continua com um .0 no final.
cjp escreveu:pelo que eu entendi, essa função não se aplicaria para campos numéricos, como é o caso do campo registro da minha base.
20 Jun 2014 13:30
PHP Warning: dbase_open() [<a href='function.dbase-open'>function.dbase-open</a>]: unable to open database /meusarq/agenda/COMPRAS.DBF in C:\Inetpub\Wwwroot\inaciobr\cadprec.php on line 21
PHP Warning: dbase_replace_record() [<a href='function.dbase-replace-record'>function.dbase-replace-record</a>]: Unable to find database for identifier 0 in C:\Inetpub\Wwwroot\inaciobr\cadprec.php on line 39
PHP Warning: dbase_close() [<a href='function.dbase-close'>function.dbase-close</a>]: Unable to find database for identifier 0 in C:\Inetpub\Wwwroot\inaciobr\cadprec.php on line 42