Instrução SQL MUITO SIMPLES funciona no Mysql-Front mas não funciona no PHP

Olá, pessoal,

Estou tendo um problema muito estranho com PHP + Mysql: um select trivial está funcionando normalmente no mysql-front mas não está trazendo nenhum resultado no PHP. Não ocorre nenhum erro na busca pelo PHP, apenas não recebo nenhum resultado, ao contrário do mysql-front que traz o resultando sem qualquer tipo de problema.

A busca que estou realizando é a seguinte:

$stringBusca = "select a.prodcont_id, b.prod_nome, c.pos_nome from produtos_contagens a, produtos b , postos c where a.prodcont_produtoID=b.prod_id and a.prodcont_postoID=c.pos_id";
$resultado = mysql_query($stringBusca ,$conectar);
$registro = mysql_fetch_array($resultado);
if ($registro = mysql_fetch_array($resultado))
echo "encontrou";
else
echo "não encontrou";

Absurdamente, sempre recebo a resposta “não encontrou”. Se peço pra printar a variável com a string de busca ($stringBusca) e jogo o resultado no mysql-front eu obtenho o resultado que desejo, sem fazer absolutamente nenhum alteração!

Agora, se eu trocar a busca por algo ainda mais simples, por exemplo “select * from produtos” tudo funciona normalmente.

Alguém tem algum palpite do que pode estar ocorrendo???

tente assim…

$stringBusca = "select a.prodcont_id, b.prod_nome, c.pos_nome from produtos_contagens a, produtos b , postos c where a.prodcont_produtoID=b.prod_id and a.prodcont_postoID=c.pos_id";  
$resultado = mysql_query($stringBusca ,$conectar);  
while($registro = mysql_fetch_array($resultado)){  
   echo $registro['prod_nome'];
   //....outro campos
}

Perdeu, funcionou! Cara, muito obrigado mesmo, estava o dia inteiro enroscado nesse problema!

Sempre fiz os select usando o método que mostrei na primeira mensagem, inclusive funciona em diversas outras páginas que fiz:

$resultado = mysql_query($stringBusca ,$conectar);  
$registro = mysql_fetch_array($resultado);  
if ($registro = mysql_fetch_array($resultado)) 

Você sabe por qual motivo esse modo funciona em alguns casos e em outros simplesmente não retorna nenhum valor?

Mais uma vez, obrigado!

Cara, tem um tempo que eu não programo em PHP, mas vc chamou a função “mysql_fetch_array” duas vezes:

$registro = mysql_fetch_array($resultado);  
if ($registro = mysql_fetch_array($resultado))  

Se a consulta tiver retornado somente uma linha, na primeira chamada ela é retornada como array pra variável registro, e na segunda chamada, justamente o teste do IF, é retornado false porque não existe mais registros… Talvez seja isso…

[quote=bob_sponja]Cara, tem um tempo que eu não programo em PHP, mas vc chamou a função “mysql_fetch_array” duas vezes:

$registro = mysql_fetch_array($resultado);  
if ($registro = mysql_fetch_array($resultado))  

Se a consulta tiver retornado somente uma linha, na primeira chamada ela é retornada como array pra variável registro, e na segunda chamada, justamente o teste do IF, é retornado false porque não existe mais registros… Talvez seja isso…[/quote]
Cara, vc tem razão. Fiz um teste aqui e é isso mesmo.
A minha deixei minha instrução da seguinte forma e funcionou:

$stringBusca = "select a.prodcont_id, b.prod_nome, c.pos_nome from produtos_contagens a, produtos b , postos c where a.prodcont_produtoID=b.prod_id and a.prodcont_postoID=c.pos_id";
	$resultado = mysql_query($stringBusca ,$conectar);
	$registro = mysql_fetch_array($resultado);	
	if ($registro)
	{

Agora ele encontra e traz o resultado exatamente como o esperado. O estranho é que essa alteração foi necessária para esse tipo de select, se eu colocar um outro select mais simples funciona mesmo com o meu código reduntante de antes… vai entender, né.
Muito obrigado, bob_sponja!

Que isso, nem precisa agradecer, estamos aqui pra isso =)…
Quanto aos outros códigos que estavam iguais e funcionavam, pode ser que eles retornavam mais de um registro, como falei… mas o importante é que vc resolveu seu problema, então, boa sorte e bons códigos pra vc aí =)…