Ir para conteúdo

POWERED BY:

Arquivado

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

Jorge Seiki Teruya

While

Recommended Posts

Olá pessoal!

 

Fiz um cadastro de imagens em php, funciona direitinho e talz, a parte de mostrar as imagens também está ok.

 

Mas para mostrar mais de uma imagem não estou conseguindo fazer funcionar.. Coloquei um While mas só aparece a primeira imagem, será que errei o código?

 

 

<?php

$cliente = $_POST['fk_sys_clientes'];

$conv_cliente = str_replace('\\\'','',$cliente);

$inicio = $_POST['inicio'];

$termino = $_POST['fim'];

 

$retorno = mysql_query("Select srt_imagem from sup_rat where fk_sys_clientes = '$conv_cliente' and srt_data between '$inicio' and '$termino'"); //Seleciona a imagem busando o id

$fetch = mysql_fetch_assoc($retorno);

header("Content-Type: image/jpeg");

//echo $fetch['srt_imagem'];//Exibe a mesma

 

while($row = mysql_fetch_array($retorno)){

echo $row[0];

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá "Wingdings" obrigado pela ajuda!

 

Não deu certo, o Select testei via MysqlQueryBrowser e retorna 3 registros.

 

Mas só retorna a primeira imagem, já tentei com:

echo $row['srt_imagem'];
echo $row[0];

 

E também já testei com:

mysql_fetch_assoc($retorno);
mysql_fetch_array($retorno);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é necessário expecificar o nome do campo para este caso, pois no select ele já faz isso, e a chave 0 do array já é correspondente ao campo do select.

 

Verifque o valor passado em:

where fk_sys_clientes = '$conv_cliente'

 

talvez só tenha 1 imagem cadastrada para este convite. Tente a alteração abaixo.

 

<?php
$cliente = $_POST['fk_sys_clientes'];
$conv_cliente = str_replace('\\\'','',$cliente);
$inicio = $_POST['inicio'];
$termino = $_POST['fim'];

mysql_connect("","","");
mysql_select_db('base');

$retorno = mysql_query("Select srt_imagem from sup_rat where fk_sys_clientes = '$conv_cliente' 
and srt_data between '$inicio' and '$termino'")or die(mysql_error());

if(mysql_num_rows($retorno)==1)
{

header("Content-Type: image/jpeg");

 while($row = mysql_fetch_array($retorno)){
 echo $row[0];
 }
}else{

print 'Sem registros.';

}

?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá "Alaerte Gabriel" Obrigado pela ajuda.

 

Se puder editar sua postagem e apagar os dados do meu banco seria bom.. kkk eu esqueci de tirar rs

 

Fiz o código e testei, mas neste caso tenho 3 imagens cadastradas para o cliente ou seja mysql_num_rows = 3, então ele me mostrou a mensagem "Sem Registros"

 

Mudei no Código para

if(mysql_num_rows($retorno)>=1)

E só me retornou uma imagem.. precisava retornar as 3.. será que tem algum erro no meu While?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A minha estrutura do banco de dados está armazenando as imagens em formato LONGBLOB no Mysql remoto. Estou salvando a imagem diretamente no BD devido a regra de negócio do sistema do cliente.

 

O Header é para informar que será exibido uma imagem no Browser, se eu comentar esta linha do header aparece no meu browser diversos códigos que vem direto do banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei o código para:

 

<?php

$cliente = $_POST['fk_sys_clientes'];

$conv_cliente = str_replace('\\\'','',$cliente);

$inicio = $_POST['inicio'];

$termino = $_POST['fim'];

 

$retorno = mysql_query("Select srt_imagem, srt_numero_os from sup_rat where fk_sys_clientes = '$conv_cliente'

and srt_data between '$inicio' and '$termino'")or die(mysql_error());

 

if(mysql_num_rows($retorno)>=1)

{

 

// header("Content-Type: image/jpeg");

 

while($row = mysql_fetch_array($retorno)){

echo $row[1];

}

}else{

 

print 'Sem registros.';

 

}

 

?>

 

 

Ele me retornou os registros corretos do banco, 3 Os's.

 

Mas se passo o argumento $row[0] da imagem, ele só aparece uma ainda.. será que tem um esquema diferente para exibir várias imagens?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um erro ai o :

$conv_cliente = str_replace('\\\'','',$cliente);

Concerta e testa ai .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um erro ai o :

$conv_cliente = str_replace('\\\'','',$cliente);

Concerta e testa ai .

 

Então.. essa conversão está funcionando normal pois se estivesse errada não iria trazer nenhum resultado certo? Só uso essa variável no Where do Select.

 

Ou se puder explicar porque tá errado eu agradeceria pois não encontrei o erro :lol:

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.