I have this code to upload data into mysql (including images):
<?
require("connect.php");
$gravar_descricao = $_POST['descricao'];
$gravar_observacoes = $_POST['observacoes'];
$gravar_imagem01 = $_FILES['imagem01'];
$gravar_imagem02 = $_FILES['imagem02'];
$gravar_imagem03 = $_FILES['imagem03'];
$gravar_imagem04 = $_FILES['imagem04'];
$gravar_imagem05 = $_FILES['imagem05'];
$gravar_imagem06 = $_FILES['imagem06'];
if (!empty($gravar_imagem01["name"])) {
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem01["name"], $ext);
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
$caminho_imagem = "../../images/" . $nome_imagem;
move_uploaded_file($gravar_imagem01["tmp_name"], $caminho_imagem);
}
$sqlinsert = "INSERT INTO tb_carros (id_carro, descricao, observacoes, imagem01, imagem02, imagem03, imagem04, imagem05, imagem06)
value ('', '$gravar_descricao', '$gravar_observacoes', '$gravar_imagem01', '$gravar_imagem02', '$gravar_imagem03', '$gravar_imagem04', '$gravar_imagem05', '$gravar_imagem06')";
mysql_query($sqlinsert) or die ("Nao foi possivel salvar os dados");
echo "Dados inseridos com sucesso";
?>
As you can see, I'm working with just the imagem01
in the code to get the result I want. Then I'll work with the other images.
That code works fine and saves the image01
in ../../images
as well. But I want to show this image in carro_admin.php
(the code):
<?
require("db/connect.php");
session_start();
if(isset($_SESSION['logged_in'])) {
session_start();
} else {
header("location:index.php");
}
$sql = "SELECT * FROM tb_carros";
$limite = mysql_query("$sql");
$dados = array();
while ($sql = mysql_fetch_array($limite) ) {
$dados[] = $sql;
}
?>
....
<div class="fotoResumo">
<img src="../images/<?=$row['imagem01'] ?>" /> <!-- the carro_admin.php is one level up of the insert code -->
</div><!-- END of fotoResumo -->
<div class="dadosResumo">
Descricao: <?=$row['descricao']?><br /><br />
Observacoes: <?=$row['observacoes']?><br /><br />
</div><!-- END of dadosItem -->
The data from descricao
and observacoes
are loading fine but, the imagem01
shows a broken image icon. What's wrong?
I solved it guys. Here is the final code:
<?
require("connect.php");
$gravar_carro = $_POST['carro'];
$gravar_valor = $_POST['valor'];
$gravar_ano = $_POST['ano'];
$gravar_km = $_POST['km'];
$gravar_cor = $_POST['cor'];
$gravar_portas = $_POST['portas'];
$gravar_combustivel = $_POST['combustivel'];
$gravar_cambio = $_POST['cambio'];
$gravar_final_placa = $_POST['final_placa'];
$gravar_carroceria = $_POST['carroceria'];
$gravar_descricao = $_POST['descricao'];
$gravar_observacoes = $_POST['observacoes'];
$gravar_imagem01 = $_FILES['imagem01'];
$gravar_imagem02 = $_FILES['imagem02'];
$gravar_imagem03 = $_FILES['imagem03'];
$gravar_imagem04 = $_FILES['imagem04'];
$gravar_imagem05 = $_FILES['imagem05'];
$gravar_imagem06 = $_FILES['imagem06'];
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem01["name"], $ext);
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem02["name"], $ext);
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem03["name"], $ext);
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem04["name"], $ext);
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem05["name"], $ext);
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $gravar_imagem06["name"], $ext);
$nome_imagem01 = md5(uniqid(time())) . "." . $ext[1];
$nome_imagem02 = md5(uniqid(time())) . "." . $ext[1];
$nome_imagem03 = md5(uniqid(time())) . "." . $ext[1];
$nome_imagem04 = md5(uniqid(time())) . "." . $ext[1];
$nome_imagem05 = md5(uniqid(time())) . "." . $ext[1];
$nome_imagem06 = md5(uniqid(time())) . "." . $ext[1];
$caminho_imagem01 = "../../images/" . $nome_imagem01;
$caminho_imagem02 = "../../images/" . $nome_imagem02;
$caminho_imagem03 = "../../images/" . $nome_imagem03;
$caminho_imagem04 = "../../images/" . $nome_imagem04;
$caminho_imagem05 = "../../images/" . $nome_imagem05;
$caminho_imagem06 = "../../images/" . $nome_imagem06;
move_uploaded_file($gravar_imagem01["tmp_name"], $caminho_imagem01);
move_uploaded_file($gravar_imagem02["tmp_name"], $caminho_imagem02);
move_uploaded_file($gravar_imagem03["tmp_name"], $caminho_imagem03);
move_uploaded_file($gravar_imagem04["tmp_name"], $caminho_imagem04);
move_uploaded_file($gravar_imagem05["tmp_name"], $caminho_imagem05);
move_uploaded_file($gravar_imagem06["tmp_name"], $caminho_imagem06);
$sqlinsert = "INSERT INTO tb_carros (id_carro, carro, valor, ano, km, cor, portas, combustivel, cambio, final_placa, carroceria, descricao, observacoes, imagem01, imagem02, imagem03, imagem04, imagem05, imagem06)
value ('', '$gravar_carro', '$gravar_valor', '$gravar_ano', '$gravar_km', '$gravar_cor', '$gravar_portas', '$gravar_combustivel', '$gravar_cambio', '$gravar_final_placa', '$gravar_carroceria', '$gravar_descricao', '$gravar_observacoes', '$nome_imagem01', '$nome_imagem02', '$nome_imagem03', '$nome_imagem04', '$nome_imagem05', '$nome_imagem06')";
mysql_query($sqlinsert) or die ("Nao foi possivel salvar os dados");
echo "Dados inseridos com sucesso";
?>
You're not inserting the name of the image in your database, but the word "Array".
You're currently inserting $gravar_imagem01
into imagem01
, which equals to $_FILES['imagem01']
in your actual code.
Insert $gravar_imagem01['name']
in your imagem01
field instead, as you want to retrieve the name of your image to display it later with <img src="../images/<?=$row['imagem01'] ?>" />
.
Note : as you can't use '$gravar_imagem01['name']'
in your SQL query, I suggest you to store it in a temp variable before, then use it on your query.