[RESOLVIDO] Sistema salva imagem como Int

Olá pessoal, estou com uma aplicação de Terceiros (Framework - Prestashop) onde tem uma coisa interessante.
Ao incluir um produto, e da um Insert em uma determinada Foto, no banco de dados, percebi que não é tipo Blob e sim Int, o sistema armazena a foto em um local (ainda não descobri onde) e referencia ao número que ele gera pra esse produto.

Por exemplo, fiz um Upload de uma foto, no banco de dados o valor é um inteiro e não um blob. Quando quero dar um select e logo após um “Echo” nessa foto, ele me traz apenas o número. Como faço pra trazer a foto ?

Alguém conhece esse esquema de programação?

Obrigado!

Grande Fred, mano o Prestashop salva as imagens em img/p, o que ele salva no banco é apenas o nome da imagem que ele mesmo cria e referencia ao produto que esta sendo cadastrado.

O Prestashop referencia as imagens assim:

No banco ele grava por exemplo 1-1.jpg e 1-2.jpg, isso significa que o produto com id 1 tem as imagens 1 e 2 referenciadas nele, depois continua 2-1.jpg, 2-2.jpg, 2-3.jpg sendo que o produto id 2 tem 3 imagens ligadas a ele.

Poxa muito bacana Saulo! Fiz um select onde ele puxa o Preço, o nome do produto e a foto do produto:

[code]<?
include("…/itens/conn.php");
$lang = “1”;
$lim_prod = “28”;

$SQLprod = "SELECT * from ps1__product, ps1__image, ps1__image_lang WHERE (ps1__product.id_product = ps1__image.id_product) LIMIT $lim_prod ";
$prod = mysql_query($SQLprod);

?>[/code]

Após isso fiz o seguinte para trazer as informações:

[code] <? while ($p = mysql_fetch_array($prod)){
$products_id = $p[‘id_product’];
$prodnome = $p[‘legend’];
$pnome = substr($prodnome,0,20);
$prodtit = $p[‘legend’];
$ptit = substr($prodtit,0,24);
$pimg = $p[‘id_image’]; // Aqui esta trazendo o numero e não a foto
$preco = $p[‘price’];
$preco=number_format($preco,2,’.’,’,’);
?>

// Aqui tentei converter o numero para a figura (foto) mas sem sucesso!

<? echo $pnome ?>
<? echo $pnome; ?>
<? echo $ptit; ?><? if (strlen($ptit) > 21){ echo "...";}?>
R$ <? echo $preco ?>
<? } ?>[/code]

Olha só como ficou?

http://dyingmusic.com/site/fred_test.php

Ele traz tudo menos as fotos… =/

Você esta apontando incorretamente o diretório onde o prestashop armazena as imagens.

Verdade Saulo o diretório correto é:

<img src="../criandonovalojadm2/img/p<? echo $pimg ?>

Porém o erro ainda persiste, e acredito que esta nesse href:

<a href="http://dyingmusic.com/criandonovalojadm2/modules/homefeatured/homefeatured.php?id_product=<? echo $products_id; ?>

Terei que descobrir como funciona essa estrutura do Prestashop, pois o mesmo trabalha com TLP. E eu sei muito pouco sobre esse tipo de arquivo no que tange a estrutura de programação.

Mesmo assim, obrigado pela ajuda!

A imagens estão sem extensão, use o inspecionar elemento do crome pra você ver as imagens… ainda esta com erro no apontamento de imagem.

Mas Saulo o caminho das imagens é esse mesmo:

<img src="../criandonovalojadm2/img/p<? echo $pimg ?>

E não é um “caminho Path” ? Acho que é assim que o presta joga as imagens no banco, só o caminho! No caso se fosse pra colocar a extensão, como ficaria?

Não entendi…

Olha na tabela onde ele salva o nome do arquivo, deve ter algum campo onde ele salva o arquivo com extensão ou a extensão separada.

Já procurei na tabela o nome do arquivo (nome da foto) e não tem, ele apenas salva a foto com um número, assim como você exemplificou acima, EX: 1-1, 1-2, etc… Se quiser te passo por skype o acesso ao banco pra você ver!

Bem fiz da seguinte maneira:

o href que “Realmente” estava errado o correto é:

<a href="http://dyingmusic.com/criandonovalojadm2/product.php?id_product=<? echo $id_product; ?>

E o caminho das imagens realmente tem que esta com sua devida extensão assim como o Saulo falou!

<img src="../criandonovalojadm2/img/p/<? echo $id_product."-".$pimg.".jpg" ?>

Deu certo, o problema agora é o Sql…

Tenho que fazer o select de:

Tabela “ps1__product” os campos (id_product; price; )
Tabela “ps1__image” o campo (id_image; )
Tabela "ps1__image_lang o campo (legend)

Fiz assim:

[code]$lim_prod = “28”;

$SQLprod = "SELECT * from ps1__product, ps1__image, ps1__image_lang WHERE (ps1__product.id_product = ps1__image.id_product) LIMIT $lim_prod ";
$prod = mysql_query($SQLprod);[/code]

Mas não deu certo:

Resultado: http://dyingmusic.com/site/fred_test.php

RESOLVIDO:

$SQLprod = "SELECT DISTINCT ps1__product.id_product, price, ps1__image.id_image, ps1__image_lang.legend FROM ps1__product INNER JOIN ps1__image ON ps1__product.id_product = ps1__image.id_product INNER JOIN ps1__image_lang ON ps1__image.id_image = ps1__image_lang.id_image WHERE (ps1__product.id_product = ps1__image.id_product) ORDER BY ps1__image.id_product DESC LIMIT $lim_prod";

Apenas isso pra finalizar!

Obrigado Saulo!