Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

666999

[Resolvido] Cadastrar categoria php + mysql

Recommended Posts

Ola pessoal estou criando um modelo que cadastra a foto nome e o email

 

estou com duvida quero inserir uma tabela mysql categoria que tenha

categoria

livros

revistas

 

olha meu sistema

 

 

cadastro.php

<?php
// Conexão com o banco de dados
$conn = @mysql_connect("localhost", "root", "") or die ("Problemas na conexão.");
$db = @mysql_select_db("banco", $conn) or die ("Problemas na conexão");

// Se o usuário clicou no botão cadastrar efetua as ações
if ($_POST['cadastrar']) {
	
	// Recupera os dados dos campos
	$nome = $_POST['nome'];
	$email = $_POST['email'];
	$foto = $_FILES["foto"];
	
	// Se a foto estiver sido selecionada
	if (!empty($foto["name"])) {
		
		// Largura máxima em pixels
		$largura = 150;
		// Altura máxima em pixels
		$altura = 180;
		// Tamanho máximo do arquivo em bytes
		$tamanho = 1000;

    	// Verifica se o arquivo é uma imagem
    	if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){
     	   $error[1] = "Isso não é uma imagem.";
   	 	} 
	
		// Pega as dimensões da imagem
		$dimensoes = getimagesize($foto["tmp_name"]);
	
		// Verifica se a largura da imagem é maior que a largura permitida
		if($dimensoes[0] > $largura) {
			$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
		}

		// Verifica se a altura da imagem é maior que a altura permitida
		if($dimensoes[1] > $altura) {
			$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
		}
		
		// Verifica se o tamanho da imagem é maior que o tamanho permitido
		if($arquivo["size"] > $tamanho) {
   		 	$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
		}

		// Se não houver nenhum erro
		if (count($error) == 0) {
		
			// Pega extensão da imagem
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);

        	// Gera um nome único para a imagem
        	$nome_imagem = md5(uniqid(time())) . "." . $ext[1];

        	// Caminho de onde ficará a imagem
        	$caminho_imagem = "fotos/" . $nome_imagem;

			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto["tmp_name"], $caminho_imagem);
		
			// Insere os dados no banco
			$sql = mysql_query("INSERT INTO usuarios VALUES ('', '".$nome."', '".$email."', '".$nome_imagem."')");
		
			// Se os dados forem inseridos com sucesso
			if ($sql){
				echo "Você foi cadastrado com sucesso.";
			}
		}
	
		// Se houver mensagens de erro, exibe-as
		if (count($error) != 0) {
			foreach ($error as $erro) {
				echo $erro . "<br />";
			}
		}
	}
}
?>
<!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>Cadastro de usuário</title>
</head>

<body>
<h1>Novo Usuário</h1>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data" name="cadastro" >
Nome:<br />
<input type="text" name="nome" /><br /><br />
Email:<br />
<input type="text" name="email" /><br /><br />
Foto de exibição:<br />
<input type="file" name="foto" /><br /><br />
<input type="submit" name="cadastrar" value="Cadastrar" />
</form>

<hr />

 

E fiz uma pagina catalogo.php onde mostra todos produtos cadastrado

 

<?php
// Conexão com o banco de dados a pagina config_s.php tem usuario senha e o host para conectar ao bd
include "/config_s.php";


// Seleciona todos os usuários
$sql = mysql_query("SELECT * FROM usuarios ORDER BY nome");

// Exibe as informações de cada usuário
while ($usuario = mysql_fetch_object($sql)) {
	// Exibimos a foto
	echo "<img src='fotos/".$usuario->foto."' alt='Foto de exibição' /><br />";
	// Exibimos o nome e email
	echo "<b>Nome:</b> " . $usuario->nome . "<br />";

	echo "<b>Email:</b> " . $usuario->email . "<br /><br />";
}


?>
</body>
</html>

esse é o bd onde cadastra o link da foto nome e email

-- Estrutura da tabela `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `nome` varchar(50) NOT NULL,
 `email` varchar(50) NOT NULL,
 `foto` varchar(100) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;

 

 

 

Eu tentei fazer uma tabela de categoria

 

CREATE TABLE IF NOT EXISTS `categorias` (
 `cod_cat` int(11) NOT NULL AUTO_INCREMENT,
 `nome_cat` varchar(60) DEFAULT NULL,
 PRIMARY KEY (`cod_cat`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

--
-- Extraindo dados da tabela `categorias`
--

INSERT INTO `categorias` (`cod_cat`, `nome_cat`) VALUES
(5, 'Livros'),
(7, 'Revistas');

 

 

Como coloco um Tipo de Menu quando for fazer cadastro do produto na minha pagina cadastro.php

escolhe se o produto vai ser da categoria livros ou revista

 

eu queria saber

como faço uma pagina catalago-livros.php para mostrar todos produtos que esta na categoria livros

 

e fazer uma pagina catalago-revistas.php para mostrar todos produtos que esta na categoria revistras

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenha apenas a página catalogo.php. O ID da categorias você passa por query string: categorias.php?id=5

 

5 é o ID da categoria no banco. Assim não precisa de uma págians para cada categoria.

 

 

Veja este link. Acho que lhe será útil:

http://www.rberaldo.com.br/blog/2009/10/24/categorias-e-subcategorias-exemplo-de-modelagem/

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu acho que a duvida dele e como fazer o select nas duas tabelas

:)

 

e puxar a categoria certa

vou espera o retorno e acho

nao deve ser modelagem de bancos

 

 

 

 

A Resposta do Beraldo foi muito util pois eu iria fazer uma pagina para cada categoria

agora vou fazer uma pagina catalogo.php para mostrar as duas categoria

 

 

como faço um Menu na pagina Cadastro.php para selecionar se o produto vai ser cadastrada na categoria livros ou revista

 

 

eu acho que minha duvida é sobre select nas duas tabelas

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola meu velho

 

se ligar no esquema

 

que eu montei para você

 

pergunta 1 como separar geral em suas categoria

SELECT
 usuarios.nome, usuarios.email, usuarios.foto,
 categoria.categoria AS nome_da_categoria, categoria.id AS
 id_categoria
FROM
 categoria INNER JOIN
 usuarios ON usuarios.categoria = categoria.id;

 

 

pegar que esta na categoria =1


       SELECT
 usuarios.nome, usuarios.email, usuarios.foto,
 categoria.categoria AS nome_da_categoria, categoria.id AS
 id_categoria
FROM
 categoria INNER JOIN
 usuarios ON usuarios.categoria = categoria.id
WHERE
 categoria.id = 1;


 

 

 

minha sugestao para tu andar mais rapido crie uma view no seu banco ai você faz select so na view

 

       CREATE VIEW geral_separado AS SELECT
 usuarios.nome, usuarios.email, usuarios.foto,
 categoria.categoria AS nome_da_categoria, categoria.id AS
 id_categoria
FROM
 categoria INNER JOIN
 usuarios ON usuarios.categoria = categoria.id


 

 

execute esse comando de create view e dar uma olhada na nova tabela no seu php admin

vai aparecer uma nova tabela geral separado ja com os campos que você precisar usar

essa view e ajunção entre as duas tabelas :)

que nos vamos usar que as duas tabelas

 

 

 


  -- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tempo de Geração: Mar 20, 2010 as 05:01 PM
-- Versão do Servidor: 5.1.36
-- Versão do PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Banco de Dados: `test`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `categoria`
--

CREATE TABLE IF NOT EXISTS `categoria` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `categoria` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Extraindo dados da tabela `categoria`
--

INSERT INTO `categoria` (`id`, `categoria`) VALUES
(1, 'livros'),
(2, 'revistas');

-- --------------------------------------------------------

--
-- Estrutura da tabela `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `nome` varchar(255) NOT NULL,
 `email` varchar(255) NOT NULL,
 `foto` varchar(255) NOT NULL,
 `categoria` int(11) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;

--
-- Extraindo dados da tabela `usuarios`
--

INSERT INTO `usuarios` (`id`, `nome`, `email`, `foto`, `categoria`) VALUES
(22, 'foto x', 'email@email.com', 'foto1.jpg', 1),
(23, 'foto y', 'email@email.com', 'foto2.jpg', 2);




 

qualquer duvida poste novamente :)

crie a tabela de exemplo e use os sql de exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw cara funcionou

 

eu tambem inseri

 

no meu cadastro

 

 

<select name="categoria" id="label5">

<option value="01">Livro</option>

<option value="02">Revistas</option>

</select>

 

eu fiz um menu que insere o id da categoria pelo

$categoria = $_POST['categoria'];

 

e funcionou beleza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi eu botei esse primero código no meu blog. Daí eu sai de meu usuario e tentei me cadastrar, colokei tudo direitinho, mas dai apareceu q o site n podia exibir a pagina. Ah ee eu tbm qria saber o seguinte: Me cadastro em meu blog, mas dai em diante como faço login? Valeu, aguardo resposta

 

Bjjs http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi eu botei esse primero código no meu blog. Daí eu sai de meu usuario e tentei me cadastrar, colokei tudo direitinho, mas dai apareceu q o site n podia exibir a pagina. Ah ee eu tbm qria saber o seguinte: Me cadastro em meu blog, mas dai em diante como faço login? Valeu, aguardo resposta

 

Bjjs http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

aonde esta a duvida eu nao entendi ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.