Autor Tópico: RESOLVIDO Erro: Fatal error: Cannot use object of type ADORecordSet_pdo as array  (Lida 176 vezes)

ramosinfo

  • Intermediário
  • ***
  • Mensagens: 149
Estou tentando fazer um formulário preencher os dados de campos de uma outra tabela, utilizando um "Texto auto compelemento" na busca e fazendo um evento Ajax OnChange neste campo.

O evento ajax está assim:

$check_sql = 'SELECT endereco, complemento, bairro, cidade, estado, telefone, celular, cod_piscineiro'
   . ' FROM clientes'
   . " WHERE Nome = '{cliente}'";

sc_select(rs, $check_sql);

if (FALSE === {rs}) {
   sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({rs})) { /* EOF */

   sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");
}
else {

   
   {telefone} = {rs[0][0]};
   {endereco} = {rs[0][1]};
   {numero} = {rs[0][2]};
   {complemento} = {rs[0][3]};
   {bairro} = {rs[0][4]};
   {cidade} = {rs[0][5]};
   {estado} = {rs[0][6]};
   {piscineiro} = {rs[0][6]};

}

Roda o formulário, mas quando vai aplica o onChange dá o erro:

Fatal error: Cannot use object of type ADORecordSet_pdo as array in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\app\Casa_das_Piscinas\form_pedido_header_1\form_pedido_header_1_apl.php on line 4428
« Última modificação: Maio 31, 2016, 11:29:38 am por Ronyan Alves »


Jailton

  • Expert
  • *****
  • Mensagens: 2038
Re:Erro: Fatal error: Cannot use object of type ADORecordSet_pdo as array
« Responder #2 Online: Maio 30, 2016, 11:08:22 am »
O Correto é assim:

sc_lookup recomendado para ser usado para verificar se registros existem, se for ler uma grande
          quantidade de registros usar sc_select

Código: [Selecionar]
/* Macro sc_lookup */

$sql = "
SELECT
     endereco,
     complemento,
     bairro,
     cidade,
     estado,
     telefone,
     celular,
     cod_piscineiro
FROM
     clientes
WHERE
     Nome = '{cliente}'
";


sc_lookup(cli, $sql)

/* Erro no lookup */
if (FALSE === {cli}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({cli})) { /* EOF */

sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");
}
else {

/* Inclua aqui sua rotina de processamento */

    {telefone} = {cli[0][0]};
    {endereco} = {cli[0][1]};
    {numero} = {cli[0][2]};
    {complemento} = {cli[0][3]};
    {bairro} = {cli[0][4]};
    {cidade} = {cli[0][5]};
    {estado} = {cli[0][6]};
    {piscineiro} = {cli[0][7]};

}


** Agora um Observação: Você esta buscando pelo nome na tabela de clientes o certo seria pelo código ID do cliente, porque vamos supor que tiver 5 JOÃO DA SILVA no cadastro,
    como você vai diferenciar qual a ficha correta de cada um?
« Última modificação: Maio 30, 2016, 11:12:39 am por Jailton »
O Princípio da Vibração. "Nada está parado, tudo se move, tudo vibra". Caibalion.

ramosinfo

  • Intermediário
  • ***
  • Mensagens: 149
Re:Erro: Fatal error: Cannot use object of type ADORecordSet_pdo as array
« Responder #3 Online: Maio 30, 2016, 01:04:25 pm »
Oi Jailton, funcionou, obrigado.