Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandromx

[Resolvido] Criar Array para fazer a consulta

Recommended Posts

Oi pessoal,

Só falta uma coisa para terminar o que eu quero

 

seguinte, eu já gravo o array, já listo ele..

Só preciso fazer uma consulta dentro dele, sei usar o in_array

vou postar, está funcionando

<?php
session_start();
$ids = "1,2,3,4,13";
$produtos = array($ids);
$idp = $_GET['idproduto'];
if(in_array($idp, $produtos) )
{
	echo "Id existente";
}
else
{
$_SESSION["produtos"][] = $_GET['idproduto'];
	  echo "Não consta ID e incluo o array";
}
?>

beleza assim funciona, porque lá em cima eu fiz eu isso daqui $ids ="1,2,3,4,5"

mas eu não quero fazer assim, eu preciso consulta através da seesion gravadas.

 

Eu eu peguei a parte que lista tudo

Isso ai funciona

<?
for ($i = 0; $i < count($_SESSION["produtos"]); $i++) {
 echo $_SESSION["produtos"][$i] . ",";
 $produto = $_SESSION["produtos"][$i];
}
?>

E joguei dentro do $ids porque preciso criar "1,2,3,4,5" das minhas seções gravadas..

Só falta isso... não consigo mais sair disso..

 

Alguém poderia dar essa LUZ

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então mas não consigo fazer..

Não sei se tenho que fazer um loop e listar o resultado dentro do array()

é isso que naõ estou conseguindo fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que naõ estou explicando direito

É assim

 

eu tenho

$ids = array(1,2,3,4,5,6,7,8);

 

Depois eu listo dentro do array

$produtos = array($ids);

 

Depois eu procuro dentro do array

if(in_array($idp, $produtos) )

 

Dessa forma manual funciona...

 

Eu preciso fazer assim

no array() montará as sessões gravadas certos?

 

Ai eu preciso

array(MOSTRAR AS SESSÕES GRAVADAS PARA PROCURAR)

 

Isso que não sei fazer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu não estou te entendendo então...

 

no link que te passei tem um exemplode como usar, você abriu a página do link que te passei ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abri sim, verifiquei tudo ,, estou desda 9 da manhã lendo e relendo um monte de coisa...

 

Eu faço assim para listar todas as sessões gravadas

 

for ($i = 0; $i < count($_SESSION["produtos4"]); $i++) {

echo $_SESSION["produtos4"][$i] . ",";

$produto = $_SESSION["produtos4"][$i] ;

}

 

beleza ele me trás tudo que foi gravada

nesse exemplo:

1,2,3,4,5,6,7,8,9 etc... coloquei com virgula para listar dentro do array

 

Ai eu peguei esse código acima e joguei dentro de um VAR para poder comparar dentro do array

<?php
session_start();


$produtos = array(for ($i = 0; $i < count($_SESSION["produtos4"]); $i++) {
 echo $_SESSION["produtos4"][$i] . ",";
 $produto = $_SESSION["produtos4"][$i];
});
$vai = $_GET['tipo'];

if(in_array($vai, $produtos) )
{
	echo "Já consta ";
}
else
{
$_SESSION["produtos4"][] = $_GET['tipo'];
	  echo "não tem e gravo";
}
?>

 

Ai ele me dá o erro

 

Parse error: syntax error, unexpected T_FOR, expecting ')'

 

O que não estou sabendo fazer é montar array(todas as sessões gravadas)

para procura usando in_array.. a forma manual funciona, ele acha certinho ..

Mas preciso fazer a pesquisa das sessões gravadas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Executa ai e veja se dar erro.

 

<?php
session_start();


$produtos = array(for ($i = 0; $i < count($_SESSION["produtos4"]); $i++)) {
echo $_SESSION["produtos4"][$i] . ",";
$produto = $_SESSION["produtos4"][$i];
};
$vai = $_GET['tipo'];

if(in_array($vai, $produtos) )
{
	echo "Já consta ";
}
else
{
$_SESSION["produtos4"][] = $_GET['tipo'];
	  echo "não tem e gravo";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou seja, não pode colocar um for dentro de um array, iria endoidar tudo.

 

o que tu quer não é pesquisar um determinado ID dentre as sessões já gravadas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo Alaerte

por isso que fiz o for dentro do array() para montar o array(1,2,3) com as sessões já gravdas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa ai:

 

 

Não tenha certeza, mais esse GET ai seria o id do produto pra ver se já está no arrai ne ?

<?php
for ($i = 0; $i < count($_SESSION["produtos"]); $i++) {
echo $_SESSION["produtos"][$i] . ",";
$produto = $_SESSION["produtos"][$i];
if(array_search($_GET['idproduto'],$produto)){
print 'Já consta.';
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente criando outro array assim:

 

<?php
for ($i = 0; $i < count($_SESSION["produtos"]); $i++) {
echo $_SESSION["produtos"][$i] . ",";
$produto =array($_SESSION["produtos"][$i]);
if(array_search($_GET['idproduto'],$produto)){
print 'Já consta.';
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Puts nem assim vai..

Tentei colocar o in_array e nada tb,

 

Página em Branco...

Ai eu tentei assim

 

 

<?php

// inicia a sessão

session_start();

for ($i = 0; $i < count($_SESSION["produtos"]); $i++) {

echo $_SESSION["produtos"][$i] . ",";

$produto =array($_SESSION["produtos"][$i]);

if(in_array($_GET['tipo'],$produto)){

print 'Já consta.';

} else {

$produto = $_SESSION["produtos"][$i];

}

}

?>

 

e nada tbm...

puts o que estou fazendo de errado??

Estou copiando na integra seu código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando esse código

<?php
// inicia a sessão
session_start();
print_r($_GET);

for ($i = 0; $i < count($_SESSION["produtos"]); $i++) {
echo $_SESSION["produtos"][$i] . ",";
$produto =array($_SESSION["produtos"][$i]);
if(array_search($_GET['idproduto'],$produto)){
print 'Já consta.';
}
}
?>

Deu isso daqui

 

Array ( [idproduto] => 1 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta utilizar essa função pra pesquisar recursivamente em arrays:

 

function procuraArrayRecursivo($needle, $haystack, $strict=false, $path=array())
{
	if (!is_array($haystack))
	{
		return false;
	}
 
	foreach ($haystack as $key => $val)
	{
		if(is_array($val) && $subPath = procuraArrayRecursivo($needle, $val, $strict, $path))
		{
			$path = array_merge($path, array($key), $subPath);
			return $path;
		}
		elseif ((!$strict && $val == $needle) || ($strict && $val === $needle))
		{
			$path[] = $key;
			return $path;
		}
	}
	return false;
}

$ids = array(1,2,3,4,5,6,7,8);
$produtos = array($ids);
$idp = $_GET['idproduto'];

if (procuraArrayRecursivo($idp, $produtos))
{
	print "existe";
}
else
{
	print "nao existe";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu um echo e não me trás nada..

Mesmo eu gravando ele

 

Aqui eu listo todos

 

for ($i = 0; $i < count($_SESSION["produtos"]); $i++) {

echo $_SESSION["produtos"][$i] . ",";

 

}

 

Aqui eu acrescentei para gravar

 

....

print 'Já consta.';

} else {

$_SESSION["produtos"][] = $_GET['idproduto'];

}

 

Nada mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.