Jump to content


Erro Array


  • Faça o login para participar
7 replies to this topic

#1 flavionogueiranery

flavionogueiranery
  • Visitantes

Posted 11/07/2006, 08:45

Pessoal que tipo de erro é esse?

Warning: array_keys(): The first argument should be an array in /home/site/www/paginas/solicitacao/cat_solicitacao.php on line 20


nesse linha tem isso:

$chave = array_keys($v_prod);



#2 raphaelcarlos

raphaelcarlos

    Futebol, Cerveja e Familia Ø VIVA LoCuRa Ø

  • Usuários
  • 239 posts
  • Sexo:Não informado
  • Localidade:Sao paulo

Posted 11/07/2006, 08:54

posta todo o codigo que esta a array, porque essa parte não tem erro.
Raphael prefere :
Mozilla/5.0 => Tema :Noia 2.0 (eXtreme) | Linux Mandriva
Linguagens :
PHP | ASP | VB | JavaScript | Dhtml |
Banco de dados :
ODBC | Mysql | SQL Server | Oracle 10g
To aprendendo :
Java | Ajax | Web 2.0
Ferramentas :
PL - SQL | Mysql Front | PHP editor | PhotoShop | Mysql Adminstrator

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 11/07/2006, 09:00

O PHP está dizendo que $v_prod não é um array. :D

[]’s :DAté mais

#4 flavionogueiranery

flavionogueiranery
  • Visitantes

Posted 11/07/2006, 09:29

<?

// chama config
include "config.php";

// seleciona as tabelas do banco de dados
$query = mysql_query("SELECT id,chamada,preco FROM cadastro_produtos WHERE id = '$id'");

// lista dados das tabelas
$id = mysql_result($query, 0, "id");
$chamada = mysql_result($query, 0, "chamada");
$preco = mysql_result($query, 0, "preco");

// AQUI COMEÇA O CARRINHO

// recebe as variáveis
$v_prod = $_POST["txtprod"];

// pega a chave da array
$chave = array_keys($v_prod);

// exibe
for($i=0; $i<sizeof($chave); $i++) {
$indice = $chave[$i];

// verifica
if(!empty($v_prod[$indice][QTDE]) ) {

// grava array na cesta
$cesta[$indice][CHAMADA] = $v_prod[$indice][CHAMADA];
$cesta[$indice][PRECO] = $v_prod[$indice][PRECO];
$cesta[$indice][QTDE] = $v_prod[$indice][QTDE];

} // fecha if

} // fecha for

// grava na sessão
$_SESSION[cesta] = $cesta;

?>


é aquele carrinho do imasters, que eu to tentando adaptar para usar pegando as informações só pelo ID que vem pelo link.

#5 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 11/07/2006, 14:49

Veja bem $v_prod não é um array, e sim uma variável que recebeu o valor de uma chave do array $_POST.

#6 flavionogueiranery

flavionogueiranery
  • Visitantes

Posted 11/07/2006, 17:25

Como é que eu faço então?

No exemplo dele, ele cria as ARRAYS numa página anterior, e quando o formulário envia, ele envia também para a página carrinho.php alguns campos em hidden.

No meu caso eu tenho o ID de um produto, eu quero que ele identifique pelo ID, o preco e a chamada do produto. Ok, isso eu fiz.

Agora eu quero que ele pegue estes valores e trabalha da mesma maneira que o exemplo.

Isso foi o que eu fiz

// chama config
include "config.php";

// seleciona as tabelas do banco de dados
$query = mysql_query("SELECT id,chamada,preco FROM cadastro_produtos WHERE id = '$id'");

// lista dados das tabelas
$id = mysql_result($query, 0, "id");
$chamada = mysql_result($query, 0, "chamada");
$preco = mysql_result($query, 0, "preco");



Isso é o exemplo:

// recebe as variáveis
$v_prod = $_POST["txtprod"];

// pega a chave da array
$chave = array_keys($v_prod);

// exibe
for($i=0; $i<sizeof($chave); $i++) {
$indice = $chave[$i];

// verifica
if(!empty($v_prod[$indice][QTDE]) ) {

// grava array na cesta
$cesta[$indice][CHAMADA] = $v_prod[$indice][CHAMADA];
$cesta[$indice][PRECO] = $v_prod[$indice][PRECO];
$cesta[$indice][QTDE] = $v_prod[$indice][QTDE];

} // fecha if

} // fecha for

// grava na sessão
$_SESSION[cesta] = $cesta;



#7 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 11/07/2006, 22:51

Esse _POST[txtprod] vem daonde? Mostra aí...

Se vier apenas esse elemento no $_POST, então você pode usar a função array_keys diretamente no $_POST, mas eu penso que deve ser muito inseguro né... Mas você que sabe.

#8 flavionogueiranery

flavionogueiranery
  • Visitantes

Posted 12/07/2006, 08:57

Na verdade eu quero fazer um Carrinho de compras.

O cliente entra no site.

Escolhe o produto. Na tela do produto, que é dinâmica, tem um botão "solicitar"

Este link leva o usuário para a pagina de solicitação, assim:

Estrutura do link:

../../solicitacao/index.php?pag=solicitacao&id(ID DINAMICO DO PRODUTO)


Exemplo:

../../solicitacao/index.php?pag=solicitacao&id=666


Exemplo prático:

http://www.litecomme..._houseware.html


Ele faz o que eu quero fazer, puxa os dados do produto pelo ID. na própria página do carrinho.

Exemplo prático do link:

../cart.php?target=product&action=buynow&product_id=227


não está dentro de um formulário e nao possui campos hidden.

------------------------------------------------------------------

Depois disso, eu quero RESGATAR os dados do produto pelo ID. já na página do carrinho.

Depois, fazer com que os dados, através de SESSIONS (ou sei lá o que usar pra isso), sejam gravados no carrinho.

entendeu?

A dúvida de fato é:

como fazer um carrinho de compras resgatando os valores do banco de dados que serão puxados pelo ID do produto?



Se alguém puder ajudar, muito obrigado

Edição feita por: flavionogueiranery, 12/07/2006, 09:00.





0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq