Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite
Eu tenho um banco de dados , no qual eu faço a consulta das empresas cadastradas, mas agora, além de fazer essa consulta que ja é por nome, atividade e cidade, eu gostaria de anexar imagem a essa consulta! Como devo proceder, será preciso fazer outra tabela, ou eu posso ja colocar um campo anuncio tipo 'BLOB' e mudar o [ Select * From] colocando esse campo!
Na consulta quero que se misture por exemplo, as empresa com imagens(anuncio) e as que estão sem!
Desde já agradeço!certo @juninhogpe, mas poderia relacionar os resultados das duas tabelas (pq uma tabela eu ja tenho, no caso eu criaria outra chamada TB_Banner por exemplo)! No cas então,
Quero consultar os clientes de vidraçaria, 3 tem o banner da sua vidraçaria respectiva e 3 não tem!
Os que possuem o banner aparecem primeiro e os outros aparecem a baixo!
Eles podem aparecer no mesmo resultado? Eu teria que fazer uma outra query de select?
eu acho que nem precisa de tabela e nem armazenar esse caminho basta nomear a foto com o id ou id+nome e passar ele na hora de montar a pagina tipo
$imagem = "<img src='" . $row["id"] . "_" . $row["nome"] . ".jpg'>";
@marsolim eu concordo, mais ai ele teria que fazer o upload das imagens tipo "na mão"?
Certo @marsolim, vamos supor que seja interessante eu enviar a foto direto pelo banco!
Onde eu colocaria esse código acima nesse código aqui:
$host = "localhost";
$usuario = "root";
$senha = "";
$bd = "bd_grtx";
$con = mysqli_connect($host , $usuario, $senha , $bd);
$Pesq = $_POST['Pesq'];
$Cidade = $_POST ['Cidade'];
ini_set('default_charset','UTF-8');
$con -> query("
SET NAMES utf8
");
$sql = mysqli_query($con,"SELECT NomeEmpresa, Bairr, Ender, Tel, Tel2, Tel3, Tel4, Tel5, Tel6, Cid, Estad FROM empresas_grtx WHERE ((NomeEmpresa Like '%".$Pesq."%') OR ( TextAre LIKE '%".$Pesq."%' OR RAtiv LIKE '%".$Pesq."%')) AND ( Cid LIKE '%".$Cidade."%')");
$row = mysqli_num_rows($sql);
if ($row > 0) {
while ($linha = mysqli_fetch_array($sql)) {
$NomeEmpresa = $linha ['NomeEmpresa'];
$Ender = $linha ['Ender'];
$Bairr = $linha ['Bairr'];
$Tel = $linha ['Tel'];
$Tel2 = $linha ['Tel2'];
$Tel3 = $linha ['Tel3'];
$Tel4 = $linha ['Tel4'];
$Tel5 = $linha ['Tel5'];
$Tel6 = $linha ['Tel6'];
$Cid = $linha ['Cid'];
$Estad = $linha ['Estad'];
echo "<br/><br/>"; ...................................
echo"</br></br></br></br></br></br></br>";
}
}
else{
echo"Desculpe , pesquisa não encontrada";
}
?>juninhogpe ai teria um codigo pra fazer o upload da imagem normalmente
Lisbi é só pegar o id da empres e montar o endereço da imagem com o nome dela e a extensão, vamos fingir que o nome da imagem é id_nome.jpg aí fica tipo
$idEmpresa = $linha ['idEmpresa'];
$NomeEmpresa = $linha ['NomeEmpresa'];
$imgPath = $idEmpresa . "_" . $nomeEmpresa . ".jpg";//se tiver na mesma pasta
$imgPath = "imagens/" . $idEmpresa . "_" . $nomeEmpresa . ".jpg";//se tiver numa subpasta
aí é só passar $imgPath no src da tag < img > na hora de imprimir os dados na tela
@marsolim cara eu não coompreendi muito bem! Olha como coloquei o codigo kkkkk
$sql = mysqli_query($con,"SELECT IdEmpresa , NomeEmpresa, Bairr, Ender, Tel, Tel2, Tel3, Tel4, Tel5, Tel6, Cid, Estad FROM empresas_grtx WHERE ((NomeEmpresa Like '%".$Pesq."%') OR ( TextAre LIKE '%".$Pesq."%' OR RAtiv LIKE '%".$Pesq."%')) AND ( Cid LIKE '%".$Cidade."%')");
$row = mysqli_num_rows($sql);
if ($row > 0) {
while ($linha = mysqli_fetch_array($sql)) {
$IdEmpresa = $linha ['IdEmpresa'];
$NomeEmpresa = $linha ['NomeEmpresa'];
$Ender = $linha ['Ender'];
$Bairr = $linha ['Bairr'];
$Tel = $linha ['Tel'];
$Tel2 = $linha ['Tel2'];
$Tel3 = $linha ['Tel3'];
$Tel4 = $linha ['Tel4'];
$Tel5 = $linha ['Tel5'];
$Tel6 = $linha ['Tel6'];
$Cid = $linha ['Cid'];
$Estad = $linha ['Estad'];
$imagem = "images" . $IdEmpresa . "_" . $NomeEmpresa . ".png";
$imagem = "<img src='C:/wamp64/www/ProjetoGuiaRede/imagens/images/image1" . $row["1"] . "_" . $row["Weldra Publicidade"] . ".png'>";
echo"$imagem";para esse caso a imagem tem que ter o nome composto pelo id do registro seguido de underline seguido do nome da empresa. se não tiver chance de conflito com algum outro id de outra tabela por exemplo pode ser só a id do registro da empresa. vamos supor que o id da empresa seja 254125. a imagem dessa empresa tem que ser renomeada pra 254125.png. nessa caso não presica passar o nome da empresa só a id do registro dela tipo assim apenas
$imagem = "images/" . $IdEmpresa ".png";
se a imagem tá nessa subpasta images e essa subpasta images tá dentro da mesma pasta da pagina php onde a imagem vai ser carregada não precisa passar mais nada muito menos o caminho completo. claro que o nome do campo onde tá esse registro na tabela tem que ser passado corretamente no lugar de idEmpresa se o nome for outroCara, não conseguir @marsolim, a imagem não aparece (aparece como se não tivesse uma imagem na pata)mas fica aquela figura que indica que ali é um arquivo de imagem.
Olha só
o meu campo id no banco é IdEmpresa
a foto, eu salvei como 1_Weldra Publicidade dentro de uma subpata chamada [.../Projeto/Imegens/images],
Talvez eu não esteja fazendo direito o código no passo a passo!
Tenho um a duvida tambem, no banco mysql não preciso alterar a tabela pra colocar essa imagem?
O meu código ficou assim
$sql = mysqli_query($con,"SELECT IdEmpresa , NomeEmpresa, Bairr, Ender, Tel, Tel2, Tel3, Tel4, Tel5, Tel6, Cid, Estad FROM empresas_grtx WHERE ((NomeEmpresa Like '%".$Pesq."%') OR ( TextAre LIKE '%".$Pesq."%' OR RAtiv LIKE '%".$Pesq."%')) AND ( Cid LIKE '%".$Cidade."%')");
$row = mysqli_num_rows($sql);
if ($row > 0) {
while ($linha = mysqli_fetch_array($sql)) {
$IdEmpresa = $linha ['IdEmpresa'];
$NomeEmpresa = $linha ['NomeEmpresa'];
$Ender = $linha ['Ender'];
$Bairr = $linha ['Bairr'];
$Tel = $linha ['Tel'];
$Tel2 = $linha ['Tel2'];
$Tel3 = $linha ['Tel3'];
$Tel4 = $linha ['Tel4'];
$Tel5 = $linha ['Tel5'];
$Tel6 = $linha ['Tel6'];
$Cid = $linha ['Cid'];
$Estad = $linha ['Estad'];
$anuncio = "images/" . $IdEmpresa . "_" . $NomeEmpresa . ".jpe";
$imagem = "<img src='images/" . $row["1"] . "_" . $row["Weldra Publicidade"] . ".jpe'>";
echo"$imagem";tu tá repetindo coisa de $anuncio em $imagem. e a extensão é jpe mesmo ou jpg? no lugar do endereço da imagem tu tem que passar a variável onde tá o endereço
$anuncio = "images/" . $IdEmpresa . "_" . $NomeEmpresa . ".jpg";
$imagem = "<img src='images/" . $anuncio . "'>";
ou tu pode passar tudo de uma vez só
$imagem = "<img src='images/" . $IdEmpresa . "_" . $NomeEmpresa . ".jpg'>";
echo $imagem;Cara, não deu certo aqui no meu código! Acho que vou cadastrar uma tabela de banners fazer a upload das imagens e vincular essa tabela a tabela empresas que ja tenho! Será que isso da certo! Me parece que essa maneira que você esta me indicando é mais fácil e mais direta @marsolim!
tem como botar um print da estrutura da tabela ou reproduzir os campos dela aí embaixo tipo
===============================================
| id | nomeEmpresa | Endereco |
=========|==================|===============|==
| 214521 | Indústrias Wayne | Gotham City |
---------|------------------|---------------|--
| 214522 | Indústrias Stark | New Yourk |
-----------------------------------------------
===============================================
|IdEmpresa| NomeEmpresa | Ender |
========= |====================|===============|==
| 1 | Weldra Publicidade|Rua egberto Rabelo Pina
--------- |--------------------|---------------|--
Esta assim @marsolim
O nome dos campos no banco é exatamente esses
e a pasta images onde ficam as imagens está na mesma pasta dessa página? porque se estiver não estou vendo porque não funciona hehehe. isso é se estiver usando a segunda opção que falei de colocar tudo num só se estiver usando a primeira com $anuncio e $imagem eu notei que cometi um erro repetindo images/ nas duas. corrigi lá dá uma olhada agora e veja se funfa
o caminho do meu projeto é esse @marsolim
C:\wamp64\www\Projeto\imagens\images
Nessa pasta images é que estão todas as imagens do projeto e é onde eu salvei a imagem
1_Weldra Publicida.png
então o caminho completo da imagem é C:\wamp64\www\Projeto\imagens\images\1_Weldra Publicida.png certo? e o caminho da página onde está colocando essas instrução? seria C:\wamp64\www\Projeto\imagens\index.php por exemplo? uma outra coisa que talvez pode interferir é espaços no nome. tenta colocar só o código do registro tipo 1.png ou então criar uma rotina pra tirar espaço e acento dos nomes só que isso dá mais trabalho porque vai ter que usar essa rotina sempre que for mostrar a imagem depois. se a pagina tiver nesse caminho que falei C:\wamp64\www\Projeto\imagens\index.php e o caminho da imagem ficar C:\wamp64\www\Projeto\imagens\images\1.png tu pode fazer assim
$imagem = "<img src='images/" . $IdEmpresa . ".png'>";
echo $imagem;No caso @marsolim o caminho da minha pagina é esse C:\wamp64\www\Projeto\buscar.php
tem que colocar todas as subpastas até chegar na imagem
$imagem = "<img src='imagens/images/" . $IdEmpresa . ".png'>";
echo $imagem;
sugiro estudar a forma de endereçamento em html@marsolim agora foi cara! engraçado que antes eu ja havia colocado as subpastas, mas não estava resumido a apenas o IdEmpresa!
Realmente a imagem aparece quando eu a consulto, mas quando eu consulto outros resultados na tabela, fica querendo aparecer a imagem! Como eu poderia criar uma função que a imagem aparecesse só quando a Id fosse = a imagem @marsolim
Muito obrigado cara !
tu diz quando tiver uma imagem praquela empresa? se for tu tem que testar se a imagem existe, tu pode fazer assim pra teste alterando um pouco a coisa
$img = "imagens/images/" . $IdEmpresa . ".png";
$imagem = ( (is_file($img)) ? "<img src='imagens/images/" . $imagem . "'>" : "");
echo $imagem;
isso dentro de **(())** é chamado **if ternário** ou de uma linha só que pode ser feito sem os parentese e só com um no começo e um no fim também mas eu faço desse jeito porque tem algumas vez não funga pra mim, é o mesmo que fazer assim
$imagem = "";
$img = "imagens/images/" . $IdEmpresa . ".png";
if (is_file($img){
$imagem = "<img src='imagens/images/" . $imagem . "'>";
}
echo $imagem;
agora não colocamos **.png** na **$imagem** porque já colocamos no teste de **$img** e também pode colocar uma imagem padrão pra quando não tiver imagem aparecer ela ai tu podria meter uma imagem de nome **0.png** na pasta images e mudar o codigo pra isso
$img = "imagens/images/" . $IdEmpresa . ".png";
$imagem = ( (is_file($img)) ? "<img src='imagens/images/" . $imagem . "'>" : "<img src='imagens/images/0.png'>");
echo $imagem;
ou
$imagem = "<img src='imagens/images/0.png'>";
$img = "imagens/images/" . $IdEmpresa . ".png";
if (is_file($img){
$imagem = "<img src='imagens/images/" . $imagem . "'>";
}
echo $imagem;
deve ser isso
@Lisbi boa noite.
Eu no seu lugar criaria outra tabela onde teria o caminho do "banner" e o "id_da_empresa" vinculados.
Não colocaria em um campo do tipo "BLOB" e sim moveria o upload para uma pasta, renomeando o arquivo, etc e gravaria apenas o nome/caminho dela no banco.