Ir para conteúdo

POWERED BY:

Arquivado

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

patricias

na modelagem do Banco

Recommended Posts

bom eu nao sei muita coisa, mas eu vi q você selecionou duas vezes o banco.Ja pra montar o link seria a mesma coisa pra imprimir. A unica diferença é q você colocaria a id da noticia do link. A pagina encarregada de abrir receberia esta id e mostrava. Ou pode ser pelo titulo ja q o seu titulo nao pode ser repetido nao é?<a href="pagina.php?iddanoticia=<?php echo $row_rsLeitorNoticia['Aqui.A.id']; ?>"><?php echo $row_rsLeitorNoticia['titulo']; ?></a>Não sei se esta é a melhor maneira de juntar html e php.

é Funcionou dessa forma!Agora vou buscar solucao, to com problema com acentuação! grrrrrrrr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Po, Fabyo, você é um gênio. Cara, muito bom isso!!!!Mais uma pergunta:Se na hora que se esta estruturando o banco de dados, tem que seguir essa ordem (estruturação das chaves estrangeiras), na hora de fazer backup ele pode até fazer de todas as tabelas de forma correta etc... mais na hora de restaurar o backup como ficaria? Não poderia acontecer erros tornando a restauração do backup quese impossível de ser realizada, considerando um projeto de média complexibilidade?Forte abraço e tudo de bom!

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao tem problema, pra você ter ideia ja existe a mais de 10 anos todos esses recursos: fk, integridade referencial, store procedure, trigger, views, etc...

 

e só o ano passado que o Mysql conseguiu implementa-lo ate os access mais antigos ja tinham isso

 

e sobre backup da pra fazer normal nao tem problema nenhum, ate porque o script de backup gera um sql diferente onde ele adiciona os fk depois de ter criado a tabela usando ADD CONSTRAINT

 

beleza? qualquer duvida só perguntar

Compartilhar este post


Link para o post
Compartilhar em outros sites

GENTE, ta acontecendo uma coisa doida aqui...e só hj PERCEBI, Testando o cadastro de noticias funcionou, dai fui fazer um select pra poder "printar" na tela o resultado.....belezinha, funcionou tb.....mas ai algo me chamou atencao....e preciso de um HELP MESMO!!!!a tabela noticia, tem o campo CONTEUDO, esse campo conteudo esta como VARCHAR(250), ate ai td bem, Fabyo, você que me ajudou lembra?, o problema é que o texto q eu coloco la nao aparece, só aparece a palavra CONTEUDO no lugar do texto ENORME que digitei, alguem tem ideia do que pode ser?????Detalhe, se eu usar o INSERT direto no phpmyadmin, eu consigo numa boa...mas se for via form, não vai!segue form.

<p><strong><font size="5" face="Verdana, Arial, Helvetica, sans-serif">CADASTRO DE NOTÍCIAS</font></strong></p><form action="salvar_noticias.php" name="cadastra" method="POST" enctype="multipart/form-data" > <p><input type="hidden" name="MAX_FILE_SIZE" value="10000" /> </p> <table border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td><table border="0" cellpadding="2" cellspacing="1"> <tr bgcolor="#FFFFFF"> <td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Título:</font></strong></td> <td colspan="2"> <input name="titulo" type="text" maxlength="64" /></td> </tr> <tr bgcolor="#FFFFFF"> <td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Notícia:</font></strong></td> <td colspan="2" rowspan="2"> <textarea name="conteudo" cols="50" rows="10"></textarea></td> </tr> <tr bgcolor="#FFFFFF"> <td> </td> </tr> <tr bgcolor="#FFFFFF"> <td><strong>Data:</strong></td> <td colspan="2"><input name="data" type="text" id="data" value=<?php echo date('d/m/Y'); ?>> </td> </tr> <tr bgcolor="#FFFFFF"> <td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Imagem:</font></strong></td> <td colspan="2"><input type="file" name="fk_imagem" class="style1" /></td> </tr> <tr bgcolor="#FFFFFF"> <td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">setor:</font></strong></td> <td colspan="2"> <select name="setores" id="select"> <option selected="selected">Selecione</option> <?phpmysql_connect("localhost", "pmparaty", "");mysql_select_db("noticias");$re = mysql_query("select * from setores order by setor");while($l = mysql_fetch_array($re)) { $id = $l["id_setor"]; $setor = $l["setor"]; echo "\t<option value=\"$id\">$setor</option>\n";} ?> </select></td> </tr> <tr bgcolor="#FFFFFF"> <td><font size="2" face="verdana"><strong>Destaque</strong></font></td> <td colspan="2" valign="top"> <input type="radio" name="radiobutton" value="radiobutton" /> <font face="verdana"><strong><font size="2">Sim</font></strong></font> <input name="radiobutton" type="radio" value="radiobutton" checked="checked" /> <font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="2">Não</font></strong></font></td> </tr> <tr bgcolor="#FFFFFF"> <td> </td> <td> <input name="Submit" type="submit" class="style1" value="Salvar" /></td> <td valign="top"> <input name="reset" type="reset" class="style1" id="reset2" value="Limpar" /></td> </tr> </table></td> </tr> </table></form>

salvar_noticia.php

<?phpmysql_connect("localhost", "usuario", "");mysql_select_db("noticias");mysql_query("INSERT INTO noticias VALUES ('', '$titulo', 'fonte', 'conteudo', 'destaque', 'fk_imagem', 'data')");//echo $setor;?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

patrícia.. você está inserindo apenas o Título enviado pelo form.. se você reparar na fonte, conteudo, destaque, fk_imagem, data... você está inserindo essas strings mesmo.. você esqueceu de colocar o cifrão antes pra definir a variável...fabyo.. percebi que no phpmyadmin quando vou exportar os dados ele usa esse tipo que falasse, com o ADD CONSTRAINT, mas estou usando um programinha aqui que peguei ontem pra testar.. o DBACentral, não sei se já visse.. mas ele só usa KEY `campo`(`campo`).. isso não iria funcionar corretamente né?também outra coisa.. o que significa isso que ele coloca no final..?ROW_FORMAT=FIXED PACK_KEYS=0 CHECKSUM=0 DELAY_KEY_WRITE=0vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

patrícia.. você está inserindo apenas o Título enviado pelo form.. se você reparar na fonte, conteudo, destaque, fk_imagem, data... você está inserindo essas strings mesmo.. você esqueceu de colocar o cifrão antes pra definir a variável...fabyo.. percebi que no phpmyadmin quando vou exportar os dados ele usa esse tipo que falasse, com o ADD CONSTRAINT, mas estou usando um programinha aqui que peguei ontem pra testar.. o DBACentral, não sei se já visse.. mas ele só usa KEY `campo`(`campo`).. isso não iria funcionar corretamente né?também outra coisa.. o que significa isso que ele coloca no final..?ROW_FORMAT=FIXED PACK_KEYS=0 CHECKSUM=0 DELAY_KEY_WRITE=0vlw

Pois é...foi uma falha!!!!Ja corrigi...valeu !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

yetiH use programas de verdade vou recomendar uns pra você:

 

MySQL Administrator

MySQLQueryBrowser

DBManager Professional

DBDesigner

EMS MySQL Manager

MyManager

SQLyog

 

http://dev.mysql.com/doc/refman/4.1/pt/dat...nistration.html

http://dev.mysql.com/doc/refman/4.1/pt/dynamic-format.html

http://dev.mysql.com/doc/refman/4.1/pt/key-space.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos, estou acompanhando aqui todos os passos dados por vcs. parabéns. Minha dúvida é: como defino no index.php que existem setores tipo DESTAQUE 1, DESTAQUE 2 e como agrupar num só destaque foto, manchete e preview da noticia, por exemplo. o exemplo apresentado leva em consideração que eu ja tenha cadastrado isso no BD,através da adminstração.Obrigado a todos pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sei se você pode mudar a modelagem existente, mas como ja falei um banco bem modelado nao pode ter qualquer coisa tipo destaque1, destaque2, modo 1, modo2, telefone1, telefone2, essas coisas, você esta limitando o banco de dados e se um dia precisar ter pro exemplo 3 telefone?, dai você vai la no banco e autera, mas depois o cliente quer cadastrar 4 telefones, e por ai vai um banco bem modelado você faz uma vez e nunca mais meche a nao ser para crescimento e melhoria, mas nunca se usa limitar um campo, o que precisa ser feito é um banco preparado pra receber n dados por isso que existe a tabela de junções

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo,

 

Durante os testes eu to percebendo umas coisas, se você puder me ajudar te agradeço novamente.

 

Qdo estou cadastrando as noticias, eu coloco la o setor responsavel e se ela é destaque ou não, certo?

Acontece, que por padrao a noticia esta sendo cadatrada como Não é destaque (no cadastro esta como sim ou não), mesmo que eu escolha o sim, e quando escolho o setor, pra ele tanto faz qdo eu for fazer uma filtragem, se eu pedir por exemplo, que me mostre noticias do setor financeiro, ele diz pra mim que todas são do setor financeiro.

 

Ai fui ver a tabela, como montamos, você ou quem puder me esclarecer.

 

Vi que existe as tabelas, imagem, noticias, noticia_setores, setores, usuario , você fez a juncao das tabelas, como q ele vai captar isso? que os dados colocados na tabela setores, eu vou precisar deles la na tabela noticias??

 

segue o sql pra vcs darem uma checada ok?

 

 

obrigada!!

 

-- phpMyAdmin SQL Dump-- version 2.6.2-pl1-- http://www.phpmyadmin.net-- -- Servidor: localhost-- Tempo de Geração: Jan 31, 2006 as 05:52 PM-- Versão do Servidor: 3.23.47-- Versão do PHP: 4.4.2-- -- Banco de Dados: `noticias`-- -- ---------------------------------------------------------- -- Estrutura da tabela `imagem`-- CREATE TABLE `imagem` (  `id` int(11) NOT NULL auto_increment,  `imagem` blob NOT NULL,  PRIMARY KEY  (`id`)) TYPE=MyISAM AUTO_INCREMENT=1;-- -- Extraindo dados da tabela `imagem`-- -- ---------------------------------------------------------- -- Estrutura da tabela `noticias`-- CREATE TABLE `noticias` (  `id_noticia` int(10) unsigned NOT NULL auto_increment,  `titulo` varchar(40) NOT NULL default '',  `fonte` varchar(64) NOT NULL default '',  `conteudo` text NOT NULL,  `destaque` enum('s','n') NOT NULL default 'n',  `fk_imagem` int(11) unsigned NOT NULL default '0',  `data` datetime NOT NULL default '0000-00-00 00:00:00',  PRIMARY KEY  (`id_noticia`),  UNIQUE KEY `titulo` (`titulo`)) TYPE=MyISAM AUTO_INCREMENT=5;-- -- Extraindo dados da tabela `noticias`-- -- ---------------------------------------------------------- -- Estrutura da tabela `noticias_setores`-- CREATE TABLE `noticias_setores` (  `id_noticia` int(11) unsigned NOT NULL default '0',  `id_setor` int(11) unsigned NOT NULL default '0',  PRIMARY KEY  (`id_noticia`,`id_setor`)) TYPE=MyISAM;-- -- Extraindo dados da tabela `noticias_setores`-- -- ---------------------------------------------------------- -- Estrutura da tabela `setores`-- CREATE TABLE `setores` (  `id_setor` int(10) unsigned NOT NULL auto_increment,  `setor` varchar(64) NOT NULL default '',  PRIMARY KEY  (`id_setor`)) TYPE=MyISAM AUTO_INCREMENT=16;-- -- Extraindo dados da tabela `setores`-- -- ---------------------------------------------------------- -- Estrutura da tabela `usuarios`-- CREATE TABLE `usuarios` (  `id_usuario` int(11) unsigned NOT NULL auto_increment,  `nome` varchar(40) NOT NULL default '',  `login` varchar(20) NOT NULL default '',  `senha` varchar(32) NOT NULL default '',  `email` varchar(64) default NULL,  PRIMARY KEY  (`id_usuario`),  UNIQUE KEY `email` (`email`)) TYPE=MyISAM AUTO_INCREMENT=2;-- -- Extraindo dados da tabela `usuarios`--
http://forum.imasters.com.br/public/style_emoticons/default/excl.gif http://forum.imasters.com.br/public/style_emoticons/default/excl.gif http://forum.imasters.com.br/public/style_emoticons/default/excl.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá. sobre FAbyo e amigos,Sobre a modelagem do banco entendi perfeitamente. DESTAQUE1, DESTAQUE2 já são dados inseridos na tabela setores, onde id_setor é 1 e setor DESTAQUE1.Repito a pergunta: como eu poderia dizer na index.php q a noticia cadastrada na adminstração pertence ao setor correspondente, e não no setor acima da enquete, ou abaixo do menu, ou na lista de colunistas ao lado,enfim. Espero t sido claro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal pra vcs que estao com duvida no select das junções só darem uma analisada nesse meu tutorial de junções

 

http://forum.imasters.com.br/index.php?showtopic=140816

 

la vcs entenderam melhor e só aplicar no exemplo de vcs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabyo legal a lista.. valeu!Só to com alguns probleminhas... o MySQLQueryBrowser eu não achei em lugar algum! e o MySQL Administrator não inicia na minha máquina.."Could not start service." sabe porque?parece que são os melhorzinhos.. o DBDesigner eu tinha pego mas não fui muito com a cara! ;|vlw[editando]achei o MySQLQueryBrowser, é do próprio MySQL também né! vou testar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, estou acompanhando este tópico, está sendo de grande ajuda pra mim..tô com 2 dúvidas:1ª: o MySQL retorna algum erro se eu mandar deletar um registro que está relacionado?! tem como o php saber disso?!2ª: não consigo usar o MySQL Query Browser, dps que eu instalado e entro nele, parece que ele fica travado, não executa..pq?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

yetiH o DBDesigner é da empresa fabforce.net

 

mas o importante dele é a modelagem do banco em modo visual e ele exporta para xml e ainda faz engenharia reversa caso precise

e você falou que o MySQL Administrator nao rodou na sua maquina, que windows é o seu ?

 

 

Daniel.Dj

 

1 - sim o erro retornado é de numero 1451, só fazer um teste e ver o erro retornado

 

2 - nunca vi esses erros acontecerem aqui ele só pede o usuario e senha e pronto ja funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu li o manual sobre junção, acho que compreendi, porém, na pratica não está funcionando, e to quase largando mão.

 

Não consigo encontrar o erro, não sei se pode estar no formulario, e ele não esta enviando os dados corretamente, ou se o erro está no modo como dou o select.

 

O Formulario, ja postei algumas vezes, não sei se esta correto, com todos os dados que preciso, detalhe, eu realmente não consegui fazer funcionar o upload de imagem no formulário.... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

mas se alguem puder me ajudar, se precisar eu posto o formulario novamente, o arquivo que salva os dados no banco.....

 

as duvidas? são muitas...

 

a principio, mesmo eu dizendo que a noticia pertence a um determinado setor, eu nao consigo dar um select com esse filtro, só pra encontrar determinada noticia (ou seja cada setor terá sua pagina e sua noticia, na pagina principal do site TODAS as noticias)

 

to quase jogando a toalha.... :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

que isso nao desista nunca, se todo problema que você tiver dificuldades para superar você desistir você nunca vai fazer nada, nada nessa vida é facil só com luta e garra que se vence, talves seu problema esteja mais atraz, tipo você ja caiu de paraquedas nesse sistema e dai você fica perdida, o certo é você aprender mais um pouco sobre php entender como ele funciona e depois tentar fazer o formulario, porque eu posso ate fazer tudo pra você mas se você nao entender o que ta acontecendo você nao vai conseguir nem editar esse sistema e muito menos fazer outro entende?

 

se precisar de minha ajuda to aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

que isso nao desista nunca, se todo problema que você tiver dificuldades para superar você desistir você nunca vai fazer nada, nada nessa vida é facil só com luta e garra que se vence, talves seu problema esteja mais atraz, tipo você ja caiu de paraquedas nesse sistema e dai você fica perdida, o certo é você aprender mais um pouco sobre php entender como ele funciona e depois tentar fazer o formulario, porque eu posso ate fazer tudo pra você mas se você nao entender o que ta acontecendo você nao vai conseguir nem editar esse sistema e muito menos fazer outro entende?

 

se precisar de minha ajuda to aqui

Aí é que está, eu até to conseguindo fazer outras coisas, o formulario "simples" funciona, eu me embananei nesse miolo, e putz, infelizmente nesse caso não tenho muito tempo pra voltar la no comeco, o tempo é curto, agora, paralelamente to fazendo outras coisas pra poder entender, cada passo eu dou uma estudada e fuçada pra poder entender e compreender como funciona...realmente nessa "reta final" eu to com esse problema...e olha quesou dificil desistir das coisas, mas que ta phoda ta!!!

 

vamos la, vou tentar again!!

ontem postei as tabelas do banco, hj vou postar o formulario, o arquivo que salva as coisas no banco, ok?

 

se puderem avaliar o form e o arquivo que insere os dados, eu agradeceria, verifiquem please se está certo.

 

<p><strong><font size="5" face="Verdana, Arial, Helvetica, sans-serif">CADASTRO DE NOTÍCIAS</font></strong></p>

<form action="salvar_noticias.php" name="cadastra" method="POST" enctype="multipart/form-data" >

<p><input type="hidden" name="MAX_FILE_SIZE" value="10000" />

</p>

<table border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

<tr>

<td><table border="0" cellpadding="2" cellspacing="1">

<tr bgcolor="#FFFFFF">

<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Título:</font></strong></td>

<td colspan="2"> <input name="titulo" type="text" maxlength="64" /></td>

</tr>

<tr bgcolor="#FFFFFF">

<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Notícia:</font></strong></td>

<td colspan="2" rowspan="2"><textarea name="conteudo" cols="55" rows="10" id="conteudo"></textarea>

</td>

</tr>

<tr bgcolor="#FFFFFF">

<td> </td>

</tr>

<tr bgcolor="#FFFFFF">

<td><strong>Data:</strong></td>

<td colspan="2"><input name="data" type="text" id="data" value=<?php echo date('d/m/Y'); ?>>

</td>

</tr>

<tr bgcolor="#FFFFFF">

<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Imagem:</font></strong></td>

<td colspan="2"><input type="file" name="fk_imagem" class="style1" /></td>

</tr>

<tr bgcolor="#FFFFFF">

<td><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">setor:</font></strong></td>

<td colspan="2"> <select name="setores" id="select">

<option selected="selected">Selecione</option>

<?php

 

mysql_connect("localhost", "pmparaty", "");

mysql_select_db("noticias");

 

$re = mysql_query("select * from setores order by setor");

 

while($l = mysql_fetch_array($re)) {

$id = $l["id_setor"];

$setor = $l["setor"];

echo "\t<option value=\"$id\">$setor</option>\n";

}

 

?>

</select></td>

</tr>

<tr bgcolor="#FFFFFF">

<td bgcolor="#FFFFFF"><font size="2" face="verdana"><strong>Destaque</strong></font></td>

<td colspan="2" valign="top"><select name="destaque" id="select">

<option value="SIM" <?php if (!(strcmp("S", ""))) {echo "SELECTED";} ?>>Sim</option>

<option value="NAO" <?php if (!(strcmp("N", ""))) {echo "SELECTED";} ?>>Não</option>

</select></td>

</tr>

<tr bgcolor="#FFFFFF">

<td bgcolor="#FFFFFF">Destaque</td>

<td colspan="2" valign="top"><input type="radio" name="destaque" value="radiobutton">

Sim

<input type="radio" name="destaque" value="radiobutton">

Não</td>

</tr>

<tr bgcolor="#FFFFFF">

<td> </td>

<td> <input name="Submit" type="submit" class="style1" value="Salvar" /></td>

<td valign="top"> <input name="reset" type="reset" class="style1" id="reset2" value="Limpar" /></td>

</tr>

</table></td>

</tr>

</table>

</form>

Arquivo salvar_noticia.php

?php

mysql_connect("localhost", "pmparaty", "");

mysql_select_db("noticias");

mysql_query("INSERT INTO noticias VALUES ('', '$titulo', '$fonte', '$conteudo', '$destaque', '$fk_imagem', '$data')");

 

 

//echo $setor;

 

?>

Detalhe, não na opcao destaque, é ou sim ou não, por padrão é não, mas, mesmo que eu diga que é sim, ele deixa como não.

na parte da imagem, não acertei o upload, separadamente ate funciona, mas no form nao consegui.

setores, eu consigo mostrar pra que setor é, mas qdo vou fazer o filtro ele não separa....

 

Obrigada :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tenho WinXP SP2talvez o problema já está na minha instalação do MySQL.. que há alguns meses deu pau.. e toda vez que eu ligo o PC tenho que iniciá-la.. sendo que gera um erro... mas funciona, e eu já desinstalei tudo.. e instalo de novo.. mas continua a mesma porcaria.Apesar que PHPMyAdmim, esses outros que falei e o MySQL Query Browser funcionam perfeitamente... o Administrator não vai.. aquele monitor também não vai.. diz que não consegue iniciar.[editando]consegui utilizar agora o MySQL Administrator... percebi que quando eu entro já está como MySQL server is running.. se eu clicar nas opções de Service Control daí cai a conexão e não funciona mais.. tenho que fechar e abrir de novo. mas as outras funciona tudo certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem também o Navicat, eu gostei dele. www.navicat.com. E o DBdesigner é muito util, só é feio pra caraca hehe, quem trabalha com aquilo tem que ser programador mesmo (programador nem liga pra design)Uma duvida sobre MySQL. Estou com problemas com acentuação na hora de exportar um SQL. Coloquei Latin mas se eu mudo pra um idioma árabe me da o mesmo problema, em fim...é um saco. Tenho que usar a função em php pra verificar o browser e aí sim imprimir a codificação usada.O default do mysql é um saco e usar utf-8 é inviavel. Como contonar a situação?

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.