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

Sign in to follow this  
subkiller

imagens na base de dados

Recommended Posts

subkiller

boas

mais uma vez, la venho eu chatear-vos...  :)

tou com dificuldades em criar uma pagina de admin onde tenho de inserir imagens, e cada imagem tera informaçoes...

mas estou com duvidas de como fazer...

vou passar a mostrar o codigo.

tenho tres funçoes para mostrar conteudo, mostrar fotos e apagar fotos.

_ mostrar conteudo:

<?php
function show_content($record_id)
{

include "server_info.php";

if(!($id = mysql_connect($server, $username, $password))) 
{
       return 0;
    }

if (mysql_select_db($database, $id))
{
        $query="SELECT * FROM maquinas WHERE id=$record_id";
        $res=mysql_query($query, $id) or die (mysql_error());
        if (mysql_num_rows($res)>0)
	{
            $reg=mysql_fetch_row($res);
            mysql_free_result($res);
            mysql_close();
            return $reg;
        }
	else
	{
            echo "<p><font color='red'>Registo inexistente</font></p>";
            mysql_free_result($res);
            mysql_close();
            return 0;
        }
    }
else
{
        mysql_close();
        return 0;
    }
}

if (isset($_POST["store"]))
{
    $id=$_POST["id"];
    $nome=$_POST["nome"];
    $descricao=$_POST["descricao"];
$caracteristicas=$_POST["caracteristicas"];
    $dados_tecnicos=$_POST["dados_tecnicos"];

    if ($nome<>"" && $descricao<>"" && $caracteristicas<>"" && $dados_tecnicos<>"")
{
          if ($id<>"")
	  {
            $query="UPDATE maquinas SET nome='$nome', descricao='$descricao', caracteristicas='$caracteristicas', 
		dados_tecnicos='$dados_tecnicos' WHERE id='$id'";
          }
          if (isset($query))
	  {
            if (execute_query($query))
		{
                $error="<p><font color='green'>Registo gravado com sucesso</font></p>";
            }
            else
		{
                $error="<p><font color='red'>Erro ao gravar na base de dados</font></p>";
            }
          }
    }
else
{
        $error="<p><font color='red'>Preencher campos obrigatórios</font></p>";
}
}
?>

_ listar fotos

<?php
function list_fotos($pag) 
{
	include "server_info.php";

         $n_reg = 12;
         $first_reg = $pag*$n_reg;
         if(!($id = mysql_connect($server, $username, $password))) 
	 {
                  return 0;
         }

        if(mysql_select_db($database, $id)) 
	{
            $query = "SELECT id FROM maquinas";
            $res = mysql_query($query);
            $total_reg = mysql_num_rows($res);
            mysql_free_result($res);
            $query = "SELECT * FROM maquinas ORDER BY id ASC LIMIT $first_reg, $n_reg";
            $res = mysql_query($query, $id);
            echo"<center>";
            echo"<form action = admin_maquinas.php method = POST enctype = multipart/form-data>";
            echo"<table border = 0 cellspacing = 0 cellpadding = 0>";
            echo"<tr>";
            $count = 0;
            if(mysql_num_rows($res) > 0) 
		{
                while($reg = mysql_fetch_row($res)) 
			{
                    if($count == 4) 
				{
                        $count = 0;
                        echo"</tr><tr>";
                    }
                    echo"<td>";
                    echo"<table border = 0 class = tableGrid width = 125 cellspacing = 0 cellpadding = 0 \n ";
                    echo"<tr>";
                    echo"<td class = tdLine><img src = ../$reg[1] width = 100></td>";
                    echo"<td class = tdLine width = 25><input type = checkbox name = selected[] value = $reg[0]></td></tr>";
                    echo"</table>";
                    $count = $count+1;
                    echo"</td>";
                }
                echo"</tr>";
            echo"<table border = 0 cellspacing = 0, cellpadding = 0>";
            echo"<tr><td width = 80><p class = text><h6>Imagem: $i</h6></p></td><td><input type = file name = image_file$i size = 20 class = text></td></tr>";	   
            echo"</table>";
            echo"<p><input type = submit name = insert value = inserir class = cmdForm>";
            echo"</form>";
            echo"</center>\n";

            mysql_free_result($res);
            mysql_close();
            return 1;
        }
        else 
	{
            mysql_close();
            return 0;
        }
	}
}
?>

_ apagar fotos

<?php
function delete_fotos($record_id) 
{
        include "server_info.php";

         if (!($id = mysql_connect($server, $username, $password))) 
	 {
            return 0;
         }

         if(mysql_select_db($database, $id)) 
	 {
            $query = "SELECT * FROM maquinas WHERE id = $record_id";
            $res = mysql_query($query, $id);
            if(mysql_num_rows($res) > 0) 
		{
               $reg = mysql_fetch_row($res);
               unlink("../$reg[1]");
            }
            mysql_free_result($res);
            mysql_close();
            return 1;
         }
         else 
	 {
              mysql_close();
              return 0;
         }
}
?>

depois tenho o php dentro do html

<?php
//inicio - se carregar no insert

if(isset($_POST["insert"])) 
{
for($i = 1; $i <=3; $i++) 
{
        $image_file = "image_file$i";
        if(isset($_FILES["$image_file"])) 
	{
            if($_FILES["$image_file"]["name"] <> "") 
		{
                $file_name = $_FILES["$image_file"]["name"];
                $file_type = $_FILES["$image_file"]["type"];
                $file_size = $_FILES["$image_file"]["size"];
                if((strpos($file_type, "gif") || strpos($file_type, "jpeg")) && ($file_size < 2500000)) 
			{
                    $file_name_trim = str_replace(" ", "", $file_name);
                    $new_image_file_url = "fotos_imgs/$file_name_trim";
                    if(move_uploaded_file($_FILES["$image_file"]['tmp_name'], "../$new_image_file_url")) 
				{
                        $data_criacao = date("Y-m-d");
                        $query = "INSERT INTO maquinas (caminho) VALUES ('$new_image_file_url')";
                        execute_query($query);
                    }
                    else 
				{
                        echo"<p><font color='red'>Erro ao carregar o ficheiro</font></p>";
                        exit;
                        return 0;
                    }
                }
                else 
			{
                    echo"<p><font color='red'>A extensão ou o tamanho do ficheiro nao é correcta</font></p>";
                    return 0;
                }
            }
        }
    }
}
    
//fim - se carregar no insert
?>

<?php
//inicio - se carregar no delete
if(isset($_POST["delete"])) 
{
    if(isset($_POST["selected"])) 
{
        $selected = $_POST["selected"];
        $query = "DELETE FROM maquinas WHERE id = -1";
        for($i = 0; $i < sizeof($selected); $i++) 
	{
            delete_fotos($selected[$i]);
            $query = "$query OR id_foto = $selected[$i]";
        }
        if(execute_query($query)) 
	{
            echo"<p><font color='green'>Registos eliminados com êxito</font></p>";
        }
        else 
	{
		echo"<p><font color='red'>Erro no acesso da base de dados</font></p>";
        }
    }
    else 
{
    echo"<p class = labelOp> </p>";
    }
}
?>

<?php
if (isset($_POST["store"]))
{
        echo "<form action=admin_maquinas.php method=POST>";
        echo "<input type=hidden name=id value='$id'>";
        echo "<h6>Nome: </h6><input type=text name=mnome value='$nome' class=text>";
        echo "<h6>Descricao: </h6><><textarea rows=13 cols=50 name=descricao class=text >$descricao</textarea>";
        echo "<h6>Caracteristicas: </h6>><textarea rows=13 cols=50 name=caracteristicas class=text >$caracteristicas</textarea";
	echo "<h6>Dados Tecnicos: </h6>><textarea rows=13 cols=50 name=dados_tecnicos class=text >$dados_tecnicos</textarea";
	echo "<br/><br/><br/>";
        echo "<input type=submit name=store value=guardar>";
	echo "</form>";
    }
    else
{
        $reg=show_content(1);

        if ($reg)
	{
		echo "<form action=admin_maquinas.php method=POST>";
		echo "<input type=hidden name=id value='$reg[0]'>";
		echo "<h6>Nome: </h6><input type=text name=mnome value='$reg[1]' class=text>";
		echo "<h6>Descricao: </h6><><textarea rows=13 cols=50 name=descricao class=text >$reg[2]</textarea>";
		echo "<h6>Caracteristicas: </h6>><textarea rows=13 cols=50 name=caracteristicas class=text >$reg[3]</textarea>";
		echo "<h6>Dados Tecnicos: </h6>><textarea rows=13 cols=50 name=dados_tecnicos class=text >$reg[4]</textarea>";
		echo "<br/><br/><br/>";
		echo "<input type=submit name=store value=guardar>";
		echo "</form>";
        }
        else
	{
		echo "<p><font color='red'>Erro no acesso a base de dados</font></p>";
	}
}

echo "</center>\n";
?>

o meu problema é que tenho de inserir as imagens com a informaçao na pagina HTML e em algumas vou ter de inserir 2 vezes mas nao estou a conseguir e gostava de ver outras sugestoes...

abraço

p.s. espero ter-me explicado bem :)

Share this post


Link to post
Share on other sites
Battousai

Manda só o código que interessa e elabora a tua dúvida. Acho que ninguém está aqui para fazer debug ao teu código.

Share this post


Link to post
Share on other sites
subkiller

lol, desculpem é que estou a ver-me a nora com isto...

o que eu pretendo fazer é uma pagina de administrador onde possa inserir imagens. essas imagens terao informaçao como caracteristicas, nome, etc. e vao se varias imagens na mesma pagina e eu tenho de listar no html todas as imagens com respectiva informaçao...

mas ai é que eu tenho duvidas e nao sei bem como fazer e por isso mostrei o codigo no primeiro post das minhas funçoes na pagina do admin...

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
Sign in to follow this  

×

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.