Ir para conteúdo

POWERED BY:

Arquivado

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

EnioWM

[Resolvido] Notice: Undefined index PHP

Recommended Posts

Pessoal, sei que existem muitos tópicos relacionados ao título, mas não achei nenhum que me ajudasse a resolver o problema.

 

 

Estou fazendo uma consulta sql no postgres e recebo os valores da tabela e para cada linha do resultado imprimo os dois valores das colunas 'nome' e 'imagem'. Até aqui sai os resultados tudo certo:

 

$exec=pg_query($conn, $sql);/*executa a query*/
$num = 1;
while ($row=pg_fetch_assoc($exec)){

$arq_nome=pg_escape_string($row['nome']);
$arq_image=pg_escape_string($row['imagem']);


if(isset($arq_nome) && isset($arq_image)){
	echo "<BR>".$arq_nome." ".$arq_image."<BR>";


}
$num++;
}

pg_close($conn);/*fecha a conexão*/

 

frente do apto 17541

sala 17542

sala 17543

 

 

Mas quando eu tento colocar outra consulta sql utilizando essa variavel 'nome' dá erro de Undefined index:

 

 

 

$exec=pg_query($conn, $sql);/*executa a query*/
$num = 1;
while ($row=pg_fetch_assoc($exec)){

$arq_nome=pg_escape_string($row['nome']);
$arq_image=pg_escape_string($row['imagem']);


if(isset($arq_nome) && isset($arq_image)){
	echo "<BR>".$arq_nome." ".$arq_image."<BR>";
               $sqla = "select imagem from imagens where nome = '".$arq_nome."'";
	$exec = pg_query($conn, $sqla); 	/*executa a query*/
}
$num++;
}

pg_close($conn);/*fecha a conexão*/

 

 

Notice: Undefined index: nome in C:\Arquivos de programas\PostgreSQL\EnterpriseDB-Apache\Php\apache\www\getPropertyPictures.php on line 22

 

E essa linha 22 eh justamente a linha:

$arq_nome=pg_escape_string($row['nome']);

 

Os isset() do if retornam true mas na consulta afirma Undexed index: nome.

Porque quando está sem a consulta funciona e quando coloco a consulta dá esse erro?

 

Já tentei de tudo e não consigo fazer funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe essa chave no array. veja se a sua consulta esta trazendo essa campo do banco de dados q ira vira uma chave.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe sim, eh pq nao coloquei no codigo pra mostrar, agora ta completo:

 

$sql="select nome,imagem from imagens where id_imoveis=100;

$exec=pg_query($conn, $sql);/*executa a query*/
$num = 1;
while ($row=pg_fetch_assoc($exec)){

       $arq_nome=pg_escape_string($row['nome']);
       $arq_image=pg_escape_string($row['imagem']);


       if(isset($arq_nome) && isset($arq_image)){
               echo "<BR>".$arq_nome." ".$arq_image."<BR>";
               $sqla = "select imagem from imagens where nome = '".$arq_nome."'";
               $exec = pg_query($conn, $sqla);         /*executa a query*/
       }
       $num++;
}

pg_close($conn);/*fecha a conexão*/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa eu ver se explico direito:

Quando rodo esse código abaixo sai os resultados tudo certo, como podem ver na Saída logo abaixo, ou seja, encontra as chaves 'nome' e 'imagem' no array:

 

Código:

 

$sql="select nome,imagem from imagens where id_imoveis=100";
$exec=pg_query($conn, $sql);/*executa a query*/
$num = 1;
while ($row=pg_fetch_assoc($exec)){

       $arq_nome=pg_escape_string($row['nome']);
       $arq_image=pg_escape_string($row['imagem']);


       if(isset($arq_nome) && isset($arq_image)){
               echo "<BR>Nome:".$arq_nome." - Imagem:".$arq_image."<BR>";


       }
       $num++;
}

pg_close($conn);/*fecha a conexão*/

 

 

Saída:

Nome:frente do apto - Imagem:17541

Nome:sala - Imagem:17542

Nome:sala - Imaem:17543

 

 

Mas eh só eu adicionar outra consulta envolvendo uma das variáveis, no caso $arq_imagem que guarda a chave de 'imagem' que esta dando erro de Undefined index:

 

Código:

$sql="select nome,imagem from imagens where id_imoveis=100";
$exec=pg_query($conn, $sql);/*executa a query*/
$num = 1;
while ($row=pg_fetch_assoc($exec)){

       $arq_nome=pg_escape_string($row['nome']);
       $arq_image=pg_escape_string($row['imagem']);


       if(isset($arq_nome) && isset($arq_image)){
               echo "<BR>".$arq_nome." ".$arq_image."<BR>";
               $sqla = "select imagem from imagens where nome = '".$arq_nome."'";
               $exec = pg_query($conn, $sqla);         /*executa a query*/
       }
       $num++;
}

pg_close($conn);/*fecha a conexão*/

 

Saída:

Notice: Undefined index: nome in C:\Arquivos de programas\PostgreSQL\EnterpriseDB-Apache\Php\apache\www\getPropertyPictures.php on line 22

 

E essa linha 22 eh justamente a linha:

$arq_nome=pg_escape_string($row['nome']);

 

 

Se eu "comentar" a linha do metodo de consulta, no caso:

//$exec = pg_query($conn, $sqla);

mostra tudo certo.

 

Mas se eu deixar pra executar, ou seja, não "comentar' dá o erro.

 

Agora deu pra entender??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque isto

 

$exec = pg_query($conn, $sqla);

 

por isto

 

$execA = pg_query($conn, $sqla);

 

e execute o seu código novamente.

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.