Ivo Pereira Posted December 14, 2009 at 07:19 PM Report Share #300385 Posted December 14, 2009 at 07:19 PM Boas pessoal, estou a fazer um site para a TV da minha escola, e por cada programa que fosse lançado, para não estar sempre a mexer no código pensei em criar um backend, pelo qual inseria os programas (link do youtube que irá aparecer na iframe no meio, imagem thumbnail, data, título do programa, número do episódio e descrição. Isto, digo eu, será uma coisa fácil de fazer, mas eu de PHP faço o básico praticamente. O que me aconselham? 🙂 EDIT: Queria algo deste género mas automático 🙂 Abraço Link to comment Share on other sites More sharing options...
Hipnoted Posted December 14, 2009 at 08:19 PM Report Share #300389 Posted December 14, 2009 at 08:19 PM Isso é através de HTML, se reparares os vídeos no Youtube têm do lado direito o código pronto com aquele vídeo para inserir o thumbnail em qualquer site, do tipo: <object width="560" height="340"><param name="movie" value=" https://www.youtube.com/embed/U8vvhGixWQQ?feature=oembed&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src=" https://www.youtube.com/embed/U8vvhGixWQQ?feature=oembed&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>Com o PHP só precisas de concatenar o link para o vídeo ao restante código e mostrar na página usando um ciclo. "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência" Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 14, 2009 at 08:33 PM Author Report Share #300392 Posted December 14, 2009 at 08:33 PM Ok, a minha dúvida não era bem essa 🙂 A minha dúvida era mais, visto que apenas sei "o básico do PHP", apesar de perceber a sintaxe, saber interpretar os comandos, mesmo que SQL, o que me aconselham, para fazer um esquema como aquele demonstrado na imagem, que por acaso foi feito por mim, mas escrito em código mesmo, e não "automatizado". Link to comment Share on other sites More sharing options...
scorch Posted December 14, 2009 at 09:09 PM Report Share #300396 Posted December 14, 2009 at 09:09 PM Pelo que percebi, queres algo que te mostre os vídeos mais vistos, ou os que estão, nesse momento a ser mais vistos? PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 14, 2009 at 09:22 PM Author Report Share #300400 Posted December 14, 2009 at 09:22 PM Não não, não me estou a fazer entender 🙂 Aquele "menu" à direita, onde quando se clica no vídeo, ele vai abrir na iframe do meio, aquelas informações que lá estão, data, miniatura da imagem, título do "programa", e descrição do episódio, foi tudo escrito por mim em código. Após o clique aí, isso irá abrir um vídeo ligado a esse "episódio" no youtube. Para adicionar mais episódios, e consequentemente outros links do youtube (outra foto, data, título, etc) tenho de editar o código à mão, e colocar. Por isso, pensei em fazer algo com PHP, CSS, e MySQL, o problema é que não estou a ver como o fazer, visto que a nível de programação com interação com bases de dados não sei tanto quanto queria, e apenas a entendo, não conseguindo criar um processo pelo qual consiga inserir as informações depois num backend, como formatá-las e consegui-las no frontend. Será que me fiz entender agora ? 🙂 Link to comment Share on other sites More sharing options...
scorch Posted December 14, 2009 at 09:40 PM Report Share #300404 Posted December 14, 2009 at 09:40 PM Crias o form em HTML. Depois em PHP fazes algo como isto: //Aqui conecta-se à base de dados MySql do teu host $link = mysql_connect("host", "userBD", "passBD"); //Aqui escolhe-se a base de dados que contém a infornmação. mysql_select_db("nome_da_tabela", $link); A estrutura da tabela deverá ser: CREATE TABLE IF NOT EXISTS `nome_da_base_de_dados`.`nome_da_tabela` ( `ID` INT NOT NULL AUTO_INCREMENT , `thumbnail` VARCHAR(45) NOT NULL , `title` VARCHAR(45) NOT NULL , `description` VARCHAR(45) NOT NULL , `date` DATE NOT NULL , `url` VARCHAR(45) NOT NULL , PRIMARY KEY (`ID`) ) ENGINE = InnoDB E o INSERT será algo como isto: mysql_query("INSERT INTO `nome_da_tabela` (`ID`, `thumbnail`, `title`, `description`, `date`, `url`) VALUES ( , \"".$_POST["thumbnail"]."\", \"".$_POST["title"]."\", \"".$_POST["description"]."\", \"".$_POST["date"]."\", \"".$_POST["url"]."\")") Se quiseres obter a data automaticamente da inserção do registo, podes ver aqui. Date 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 14, 2009 at 10:18 PM Author Report Share #300414 Posted December 14, 2009 at 10:18 PM Hmm, obrigado 🙂 E por exemplo, como aplicaria que cada um dos resultados ficasse na formatação da notícia que lá está que o código é este?: <table width="284" height="79" border="0"> <tr> <td width="98" rowspan="2"><a href="#link_do_youtube" target="monitor"><img src="caminho_da_imagem" alt="descricao_da_noticia" class="tv_news_image_static" height="60" width="94" /></a></td> <td width="218"><span class="news_date">14-12-2009</span><span class="titulo"><br /> </span><span class="titulo_desc"> CATerpillar</span></td> </tr> <tr> <td class="textoNormal"><strong><a href="#link_do_youtube" target="monitor">Primeira edição do programa</a></strong></td> </tr> </table> Link to comment Share on other sites More sharing options...
scorch Posted December 14, 2009 at 10:36 PM Report Share #300421 Posted December 14, 2009 at 10:36 PM Fazes algo como isto: echo "<table width=\"284\" height=\"79\" border=\"0\">"; $sql = mysql_query("SELECT ID FROM nome_da_tabela ORDER BY date"); for ($pass = 0; pass < mysql_num_rows($sql); pass++){ $query = mysql_query("SELECT url FROM nome_da_tabela WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); $url = mysql_result($query, 0); echo '<tr> <td width="98" rowspan="2"><a href="'.$url.'" target="monitor">'; $query = mysql_query("SELECT thumbnail FROM nome_da_tabela WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<img src="'.mysql_result($query, 0).'" alt="descricao_da_noticia" class="tv_news_image_static" height="60" width="94" /></a></td>'; $query = mysql_query("SELECT date FROM nome_da_tabela WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<td width="218"><span class="news_date">'.mysql_result($query, 0).'</span>'; $query = mysql_query("SELECT title FROM nome_da_tabela WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo '<span class="titulo"><br /> </span><span class="titulo_desc">'.mysql_result($query, 0).'</span></td> </tr> <tr>'; $query = mysql_query("SELECT description FROM nome_da_tabela WHERE ID = ".mysql_result($sql, $pass)." LIMIT 1"); echo ' <td class="textoNormal"><strong><a href="'.$url.'" target="monitor">'.mysql_result($query, 0).'</a></strong></td> </tr>'; } echo "</table>"; Não testei, mas deve funcionar. Se der erros ou tiveres alguma dúvida no código, diz. 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 14, 2009 at 10:40 PM Author Report Share #300424 Posted December 14, 2009 at 10:40 PM Enaa paah! 🙂 Já tenho aqui com que me entreter 🙂 Nunca atinei com os for's, e os while's e outro ainda que me está a escapar. Aqui já tenho o código pronto (ao qual te tenho a agradecer e muito 😄 ), mas nunca atinei com essa parte 🙂 com os For's, só atinei com os For Each's no VB.NET 🙂 Bom, mas isto estar a montar assim o sistema a partir do nada se calhar ainda demora um pouco, por isso não sei se ainda monte hoje, ou se depois veja com mais calma... Link to comment Share on other sites More sharing options...
scorch Posted December 14, 2009 at 10:53 PM Report Share #300427 Posted December 14, 2009 at 10:53 PM Eu antes também não usava os for's, era só While's. Mas recentemente, e devido a um professor de programação que me mostrou as vantagens do for no PHP e C. Nos for's de PHP e C, podes dividir a parte dos argumento em três: for([parte1]; [parte2]; [parte3]){} Parte1: É o código que é executado no ínicio da primeira vez do for. for($passar = 0; [parte2]; [parte3]){} Parte2: É a condição para que o for continue. Por exemplo, se for verdadeira, o for "corre" mais uma vez, senão para. //Aqui o for executa dez vezes for($passar = 0; $passar < 10; [parte3]){ $passar++; } //Ou seja, é o mesmo que isto. for($passar = 1; $passar <= 10; [parte3]){ $passar++; } Parte3: É executada no fim de cada loop, no fim de cada execução do script. for($passar = 0; $passar < 10; $passar++){} Ou seja, um exemplo: //Esta função vai escrever a mesma frase x número de vezes. function escreverFrases($frase, $vezes){ for ($passar = 0; $passar < $vezes; $passar++){ echo $frase."<br />"; } } escreverFrases("Não devo falar na aula." 50); E pronto, é simples, e útil. 🙂 PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 14, 2009 at 11:02 PM Author Report Share #300429 Posted December 14, 2009 at 11:02 PM Ahh, acho que já percebi 🙂 Então, no exemplo para a listagem de "episódios", o que faz é: Declara a variável pass como 0 Enquanto o valor de pass, for menor do que os resultados obtidos por aquela query SQL, vai somando mais um valor ao pass até que este seja igual ao valor de resultados obtidos da query. Acertei ? 🙂 E já agora, se quisesse paginar os dados? Imagina, chegava aos "5 episódios" numa página, e em baixo aparecia: 1 2 Próxima Acho que deu para perceber 🙂 Link to comment Share on other sites More sharing options...
scorch Posted December 15, 2009 at 04:04 PM Report Share #300501 Posted December 15, 2009 at 04:04 PM Sim, acertas-te. 🙂 Quanto à paginação, basta colocares o valor da página menos 1 vezes o número de registos. Por exemplo, (1 - 1) * 5 = 0. (2 - 1) * 5 = 5. Isto para ele te começar no registo x. Depois a parte 2 fica o valor da página vezes o número de registos. Por exemplo, 1 * 5 = 5. 2 * 5 = 10. Assim, ele só vai até ao registo x, só mostra x registos. Algo como isto: 🙂 for ($pass = ($_GET["page"] - 1) * 5; $pass < $_GET["page"] * 5; pass++){ //Resto do código } PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 15, 2009 at 11:18 PM Author Report Share #300636 Posted December 15, 2009 at 11:18 PM Já agora, "assim noutra parte", será que seria possível, um upload de imagens, auto-resize das mesmas e disponibilização do link para thumbs? 😄 EDIT: Btw, como posso verificar se a inserção de dados resultou? Tenho este código, mas dá-me erro no IF... <?php require_once('../db/ligar.php'); // este já tem código feito por mim para se ligar à bd, consultando ainda outro ficheiro com as definições do host, user, etc $query = mysql_query("INSERT INTO `tv_noticias` (`ID`, `thumbnail`, `title`, `description`, `date`, `url`) VALUES ( , \"".$_POST["thumbnail"]."\", \"".$_POST["title"]."\", \"".$_POST["description"]."\", \"".$_POST["date"]."\", \"".$_POST["url"]."\")") if ($query) { echo "Os dados foram introduzidos.<br /><br /><a href=\"javascript:history.go(-1)\">Voltar</a>"; } else { echo "Ocorreu um erro ao introduzir os dados.<br /><br /><a href=\"javascript:history.go(-1)\">Tentar de novo?</a>"; } die(); ?> O erro que aparece é: Parse error: syntax error, unexpected T_IF in /v2/gestao/noticias/addnoticia.php on line 87 e a linha 87 é a linha do if do $query, que segundo a minha lógica era, se o conteúdo da variável $query fosse executado (que é a operação SQL), retornava verdadeiro, e mostrava que a operação tinha sido concluída. Pelo menos, fiz algo do género para fazer a conexão ao SQL, e funcionou. Sugestões ? 😛 EDIT2: Aliás, mesmo só com a parte do mysql_query, mesmo depois ao ver na base de dados, a tabela está limpa 😛 EDIT3: Outra dúvida (ai tanta 😛 ) em que formato o MySQL guarda a data? dd/mm/yyyy? Já vi que é YYYY-mm-dd, e não dava para alterar para dd-mm-yyyy? Abraço 👍 Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 16, 2009 at 06:41 PM Author Report Share #300814 Posted December 16, 2009 at 06:41 PM Alguém me pode dar uma ajudinha aqui? Tenho o post actualizado 😛 (UP 👍 ) Link to comment Share on other sites More sharing options...
scorch Posted December 16, 2009 at 07:36 PM Report Share #300824 Posted December 16, 2009 at 07:36 PM Quanto ao erro do código, esqueces-te-te de um ; no fim da linha da query. 😛 <?php require_once('../db/ligar.php'); // este já tem código feito por mim para se ligar à bd, consultando ainda outro ficheiro com as definições do host, user, etc $query = mysql_query("INSERT INTO `tv_noticias` (`ID`, `thumbnail`, `title`, `description`, `date`, `url`) VALUES ( , \"".$_POST["thumbnail"]."\", \"".$_POST["title"]."\", \"".$_POST["description"]."\", \"".$_POST["date"]."\", \"".$_POST["url"]."\")"); if ($query) { echo "Os dados foram introduzidos.<br /><br /><a href=\"javascript:history.go(-1)\">Voltar</a>"; } else { echo "Ocorreu um erro ao introduzir os dados.<br /><br /><a href=\"javascript:history.go(-1)\">Tentar de novo?</a>"; } die(); ?> Quanto à segunda questão, eu sempre que preciso disso guardo no formato do MySql, e depois ao lêr, formato a data. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 16, 2009 at 08:05 PM Author Report Share #300837 Posted December 16, 2009 at 08:05 PM Obrigado 👍 Já agora, como retorno a data actual no formato da base de dados? Tive a ver no PHP.net, mas ou me escapou ou não estava lá 😛 O código que tenho actualmente: <?php echo date("d-m-y"); ?> Cumps Link to comment Share on other sites More sharing options...
scorch Posted December 16, 2009 at 08:12 PM Report Share #300839 Posted December 16, 2009 at 08:12 PM Tenta assim: date("Y-m-d H:i:s") PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 16, 2009 at 08:51 PM Author Report Share #300857 Posted December 16, 2009 at 08:51 PM Que estranho, continua a dar-me um erro a inserir na base de dados. Peguei nisso da data pois pensei que fosse esse o problema. Tenho este código no formulário: <form action="addnoticia.php" method="POST"> <h1 class="a">URL da miniatura:<br /> <input type="text" name="thumbnail" size="70" /> </h1> <p class="a">Título:<br /> <input type="text" name="date" size="50" /> </p> <p class="a">Descrição:<br /> <textarea rows="5" cols="67" name="description"></textarea> </p> <p class="a">Data:<br /> <input type="text" name="date" size="16" value="<?php echo date("Y-m-d H:i:s"); ?>" readonly="readonly" disabled="disabled"/> </p> <p class="a">URL do Youtube:<br /> <input type="text" name="url" size="70" /> </p> <br /> <input type="submit" value="Enviar notícia" /> <input type="reset" value="Apagar" /> </form> addnoticia.php: <?php require_once('../db/ligar.php'); // ficheiro que inclui a conexão, e esta funciona porque já experimentei $query = mysql_query("INSERT INTO `tv_noticias` (`ID`, `thumbnail`, `title`, `description`, `date`, `url`) VALUES ( , \"".$_POST["thumbnail"]."\", \"".$_POST["title"]."\", \"".$_POST["description"]."\", \"".$_POST["date"]."\", \"".$_POST["url"]."\")"); if ($query) { echo "Os dados foram introduzidos.<br /><br /><a href=\"javascript:history.go(-1)\">Voltar</a>"; } else { echo "Ocorreu um erro ao introduzir os dados.<br /><br /><a href=\"javascript:history.go(-1)\">Tentar de novo?</a>"; } die(); ?> Vai-me sempre para o Else 😛 Btw, como se põe o geshi em HTML? Não consigo --' Link to comment Share on other sites More sharing options...
scorch Posted December 16, 2009 at 08:53 PM Report Share #300858 Posted December 16, 2009 at 08:53 PM No else mete isto: echo "Ocorreu um erro ao introduzir os dados.<br /><br /><a href=\"javascript:history.go(-1)\">Tentar de novo?</a>"; echo "<br /><br />".mysql_errno($link).": ".mysql_error($link); E diz o que ele te retorna. PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum. Link to comment Share on other sites More sharing options...
Ivo Pereira Posted December 16, 2009 at 08:59 PM Author Report Share #300859 Posted December 16, 2009 at 08:59 PM Obrigado pela dica, não conhecia 😛 Ele retornou isto: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' "http://tv.esdg.pt/v2/images/videos/thumbs/amostra.jpg", "", "descriçao", "Obr' at line 1 Mas continuei sem perceber o que está mal ali... Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now