Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Iai galera, estou com dificuldades em criar uma galeria de fotos que seja separada em albuns, no projeto do meu cliente usei o jquery.MultiFile.js que ele possibilita fazer upload de vários arquivos de 1 só vez, através de uma array, e essas fotos são cadastradas no banco de dados,só que cada uma possui uma id diferente, do jeito que estou usando as fotos ficam soltas, não em albuns meu scripts é esse aqui:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>adc_pratos</title>
<script type="text/javascript" src="../Scripts/jquery.js" /></script>
<script type="text/javascript" src="../Scripts/jquery.MultiFile.js" /></script>
<?php
require_once("conexao.php");
?>
<?php
if(isset($_POST['upload'])){
$pasta = '../uploads/';
foreach($_FILES["img"]["error"] as $key => $error){
if($error == UPLOAD_ERR_OK){
$tmp_name = $_FILES["img"]["tmp_name"][$key];
$cod = ('paim') . '-' . $_FILES["img"]["name"][$key];
$nome = $_FILES["img"]["name"][$key];
$uploadfile = $pasta . basename($cod);
if(move_uploaded_file($tmp_name, $uploadfile)){
echo "O Arquivo " . $nome . " foi enviado com sucesso!<br />";
$inserir = mysql_query("INSERT INTO pratos (img) VALUES ('$cod')");echo "Erro ao enviar o arquivo " . $nome . "! Por favor tente outra vez!";
} } } } ?>
<style type="text/css">.btn {
font-family: Verdana;
font-size: 14px;
color: #FFFFFF;
height: 30px;
width: 150px;
background-color: #333333;
border:0px;
cursor:pointer;
}
#table{
padding-top:80px;
padding-left:200px;
}
.title{
font-family:Verdana;
font-size:10px;
color:#333333;
}
a {
font-size: 20px;
color: #FF0000;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
-->
</style>
</head>
<body>
<form name="upload_files" action="" enctype="multipart/form-data" method="post">
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0" id="table">
<tr>
<td height="30" colspan="2" valign="top" class="title">fotos por padrão no tamanho de 700x465 pixels.
Por favor não ultrapassar de 1MB</td>
</tr>
<tr>
<td width="272"><input type="file" name="img[]" class="multi" maxlength="10" accept="jpg|jpeg|png|gif" /></td>
<td width="508"> </td>
</tr>
<tr>
<td valign="bottom"> </td>
<td height="50"><input name="upload" type="submit" class="btn" value="Enviar" /></td>
</tr>
</table>
</form>
</body>
</html>
teria alguma forma de adaptar esse script para criação de albuns? pois ele já faz o up de várias fotos de uma só vez
se alguem tiver uma outra opinião por favor me ajude!
Obrigado.
>
seguinte meu amigo, o que voce precisa fazer é organizar seu banco de dados.
No caso voce teria que associar cada foto a um album.
Mais ou menos assim:
No seu banco tem um album com o nome "Fotos Legais" e com ID 7.
La na sua pagina o usuario seleciona o album e envia uma foto, na hora de cadastrar no BD voce coloca vai fazer a referencia a qual album ela pertence, no caso referenciar a imagem enviada com o ID 7 que é o album "Fotos Legais".
Deu para entender ?
Isso se chama Modelagem de Dados, procura na net que voce encontra milhares informações. mas qualquer coisa é so falar que nos damos um help.
flws
mas ai no caso os albuns serão fixos né? eu preciso que o cliente mesmo crie o album com capa do album e demais fotos
Buenas velho... é fácil, você só precisa modelar seu banco direito, eu uso algo assim no banco:
Na tabela albuns os usuários criam os albuns
temos um campo para o id, para o nome do album, para uma descrição e para uma foto de capa.
-- Estrutura da tabela album
--
CREATE TABLE `album` (
`id_album` int(11) NOT NULL auto_increment,
`nome` varchar(100) NOT NULL,
`capa` varchar(40) default NULL,
`descricao` text,
PRIMARY KEY (`id_album`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
Na tabela fotos o usuario insere as fotos por album... ele seleciona o album, e insera a foto relacionando com a tabela album pelo ID
temos os campos para o id da foto, id do album(que faz o relacionamento) e para a foto em si:
--
-- Estrutura da tabela fotos_album
--
CREATE TABLE `fotos_album` (
`id_foto` int(11) NOT NULL auto_increment,
`id_album` varchar(11) NOT NULL,
`foto` varchar(50) NOT NULL,
PRIMARY KEY (`id_foto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
Assim você cria um sisteminha simples para o usuário cadastrar o album, e depois fazer o upload das fotos para ele.
Beto, só ver se eu entendi aqui, vou criar essas duas tabelas no meu BD, depois dentro da adm do site vou criar uma página criar albúm onde vou preencher os campos id, nome do album, descrição e uma foto de capa. Após isso aparece a msg album cadastrado com sucesso e vou ser redirecionado para uma lista de todos os albuns, inclusive o que acabei de cadastrar, ai que me confundi, dentro então desse link terá outro form para up das fotos, só que na tabela que você me mostrou ta id_album, como que eu pego o id do album recém criado para que as fotos fique dentro dele, me desculpe mais meu conhecimento em php não é avançado.
Obrigado
Buenas velho,
É só você passar como parametro pela URL e capturar depois com $_GET, vou mostrar como faço aqui:
<?php
//conexão
include_once('Conection/conn.php');
//verifica se foram preenchidos os campos nome e descrição para o album
//se foi, atribui eles as respectivas variáveis e faz o insert do album
if(isset($_POST['nome_album']) and isset($_POST['descricao'])){
$nome_album = mysql_real_escape_string($_POST['nome_album']);
$descricao_album = mysql_real_escape_string($_POST['descricao']);
mysql_query("INSERT INTO album VALUES (NULL, '$nome_album', NULL, '$descricao_album')") or die(mysql_error);
if(mysql_affected_rows() == 1){
$sucesso_insercao = "Album " . $nome_album . " criado com sucesso!";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Albuns</title>
</head>
<body><form id="cad_album" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Criar um novo album:</td>
<td width="10"> </td>
<td>Listar Album:</td>
</tr>
<tr>
<td>Nome do album:
<input type="texte" name="nome_album" id="nome_album" /></td>
<td width="10"></td>
<td>
<?php
//faz a busca e monta a linha que exibe os albuns
$query_Albuns = "SELECT * FROM album";
$consulta = mysql_query($query_Albuns) or die(mysql_error);
//Aqui monta o while com as linhas da tabela albuns
while($row_Albuns = mysql_fetch_array($consulta)){
//Aqui eu faço o link para a página que vai mostrar o album em si, e da onde eu posso fazer o upload das fotos
//estou passando como paramentro o id_album, para usar como relacionamento na tabela de fotos
echo '<a href="album.php?id_album="' . $row_Albuns['id_album'] . '>' . $row_Albuns['nome'] . '</a>';
}
?>
</td>
</tr>
<tr>
<td>Descrição <input type="text" name="descricao" id="descricao" /></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td><input name="btn_cad" type="submit" id="btn_cad" value="Cadastrar" /> </td>
<td width="10"> </td>
<td><?php echo $sucesso_insercao; ?></td>
</tr>
<tr>
<td> </td>
<td width="10"> </td>
<td> </td>
</tr>
</table></form>
</body>
</html>
Depois, na página para onde eu vou é só pegar o id_album, colocar em uma variável e dar prosseguimento, assim:
$id_album = (int) $_GET['id_album'];
Repare que eu fiz o cast da variável, isso é uma medida a mais de segurança.
edit: vou preparar um tutorial de como fazer isso usando o uploadfy, no sistema que to usando aqui...
[]'s
Beto, como eu estou no trampo agora não tem como eu fazer isso aqui, mais olhando no seu código fiquei meio perdido, não sei usar o metodo GET, mais vou tentar aqui e qualquer coisa posto a dúvida, Beto se você fizer esse tutorial vai ajudar muita gente, principalmente eu hehe, procurei na net toda e não achei nada que ajude realmente.
Beto to apanhando igual cachorro sem dono aqui, kkk
olha só, quando cria o album aparece o link redirecionando para o arquivo album.php, correto?
então, só que eu fiz o album.php resgatando o id_album até ai eu acho que está tudo bem, só que na hora de mostrar os dados não esta aparecendo, confere se estou correto:
<?php
require_once("conexao.php");
//resgata o ID via URL
$id_album = (int) $_GET['id_album'];
$sql = "SELECT * FROM album WHERE id_album = '$id_album'";
$query = mysql_query($sql);
$dados = mysql_fetch_array($query);
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Up-fotos</title>
<div id="corpo">
<h1><?php echo $dados['nome'] ?></h1>
</div>habilite as mensagens de erro, e coloque o retorno de erro da query...
verifique se a variavel $id_album está recebendo o valor correto dessa forma:
var_dump($id_album);
exit;
o valor retornado tem que ser o id do album que você selecionou, dessa forma saberemos que está tudo certo
Edit: posta como você tá passando o link também, para vermos se tá tudo certo
seguinte meu amigo, o que voce precisa fazer é organizar seu banco de dados.
No caso voce teria que associar cada foto a um album.
Mais ou menos assim:
No seu banco tem um album com o nome "Fotos Legais" e com ID 7.
La na sua pagina o usuario seleciona o album e envia uma foto, na hora de cadastrar no BD voce coloca vai fazer a referencia a qual album ela pertence, no caso referenciar a imagem enviada com o ID 7 que é o album "Fotos Legais".
Deu para entender ?
Isso se chama Modelagem de Dados, procura na net que voce encontra milhares informações. mas qualquer coisa é so falar que nos damos um help.
flws