Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Márcio Pinho

Inserir e mostrar imagem

Recommended Posts

Márcio Pinho

Boas tardes malta,

Estou há vários dias a tentar incorporar um código php para inserir e listar imagens mas sem sucesso.

Este é o código que tenho sem a parte para inserir imagem:

    <?php
$nome=$_POST['nome'];
$morada=$_POST['morada'];
$telefone=$_POST['telefone'];
$email=$_POST['email'];
$descricao=$_POST['descricao'];
$latitude=$_POST['latitude'];
$longitude=$_POST['longitude'];
if (!$nome || !$morada || !$telefone || !$email || !$descricao) {
echo 'Por favor, preencha todos os campos!';exit;}
echo 'Dados Recebidos<br />';
echo '<p></p>';
echo '<b>Nome:</b> '.$nome.'<br />';
echo '<b>Morada:</b> '.$morada.'<br />';
echo '<b>Telefone:</b> '.$telefone.'<br />';
echo '<b>E-Mail:</b> '.$email.'<br />';
echo '<b>Avaria:</b> Água<br />';
echo '<b>Descrição:</b> '.$descricao.'<br />';
echo '<b>Latitude:</b> '.$latitude.'<br />';
echo '<b>Longitude:</b> '.$longitude.'<br />';
$ligax = mysqli_connect('localhost','root','root');
if (!$ligax)
{echo '<p> Erro:Falha na ligação';exit;}
mysqli_select_db($ligax, 'jfsi');
$insere = "insert into agua values (NULL,'".$nome."','".$morada."','".$telefone."','".$email."','".$descricao."','".$latitude."','".$longitude."')";
$result = mysqli_query($ligax, $insere);
if ($result==1) echo "<p>Dados Inseridos<br>";
else echo"<p>Dados não Inseridos<br>";
?>

este é o código que queria implementar:

<?php
if (isset($_POST['enviar'])) {
	
	$target = "images/".basename($_FILES['image']['name']);
	
	$db = mysqli_connect("localhost", "root", "root", "jfsi");
	
	$image = $_FILES['image']['name'];
	
	$sql = "INSERT INTO agua (foto) VALUES ('$image')";
	mysqli_query($db, $sql);
	
	if (move_uploaded_file($_FILES['image']['tmp_name'], $target)) {
		$msg = "sucesso";
	}else{
		$msg = "nao sucesso";
	}
}
?>

De salientar que a minha página index está em html (com biblioteca jquery) e o nome do input "file" é image. Na base de dados sql o campo chama-se "foto" do tipo "longblob".

Tenho apenas uma form com input tipo "submit" que abrirá uma página php com o primeiro código aqui introduzido.

Este seria o código para mostrar a imagem que será introduzido numa outra página php:

<?php
$db = mysqli_connect("localhost", "root", "root", "jfsi");
$sql = "SELECT * FROM agua";
$result = mysqli_query($db, $sql);
while ($row = mysqli_fetch_array($result)) {
	echo "<div>";
	echo "<img src='images/".$row['foto']."' >";
	echo "</div>";
}
?>

que também queria implementar neste:

<?php
$ligax = mysqli_connect('localhost','root','root');
if (!$ligax)
{echo '<p>Erro: Falha na ligação';exit;}

mysqli_select_db($ligax, 'jfsi');
$consulta = "select * from agua";
$result = mysqli_query ($ligax, $consulta);
$nregistos = mysqli_num_rows ($result);
echo '<b>Nº de Registos Encontrados: </b>'.$nregistos.'<br>'; 
?>
<p></p>
<table class="lista">
<?php
for ($i=0; $i <$nregistos; $i++) {
	$registo = mysqli_fetch_assoc($result);
	echo '<tr class="tr">';
	echo '<td class="td">'.$registo['id_a'].'</td>';
	echo '<td class="td">'.$registo['nome'].'</td>';
	echo '<td class="td">'.$registo['morada'].'</td>';
	echo '<td class="td">'.$registo['telefone'].'</td>';
	echo '<td class="td">'.$registo['email'].'</td>';
	echo '<td class="td">'.$registo['descricao'].'</td>';
	echo '<td class="td">'.$registo['latitude'].'</td>';
	echo '<td class="td">'.$registo['longitude'].'</td></tr>';
}
?>
</table>

Saliento que na parte de inserção dá-me erro, diz-me que a variável "image" não está definida.

Qualquer ajuda seria bem-vinda.

Obrigado.

Edited by Márcio Pinho

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.