Ir para conteúdo

POWERED BY:

Arquivado

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

Lucas Santos_170490

Como faço para mudar o link conforme a noticia do banco de dados?

Recommended Posts

Pessoal sabem como eu faço isto? Exemplo, quando eu criar uma noticia no banco de dados o link dela ser assim:

<?php echo $path; ?>/artigos/<?php echo $news['id']; ?>"><?php echo $news['title']; ?>

Ou seja: meusite.com/artigos/1/aqui-o-nome-da-noticia

 

Pessoal eu tnho umas páginas aqui bem referente ao que eu pergunto.

 

Olhem o arquivo que exibe as noticias (Não é oq eu uso, porém é quase da mesma forma)

<?php
$news1_3 = mysql_query("SELECT * FROM cms_news ORDER BY ID DESC LIMIT 3") or die(mysql_error());
$news4_5 = mysql_query("SELECT * FROM cms_news ORDER BY ID DESC LIMIT 2 OFFSET 2") or die(mysql_error());
?>

<div id="column2" class="column">
<div class="habblet-container news-promo">
<div class="cbb clearfix notitle ">
<div id="newspromo">
<div id="topstories">

<?php $i = 0; while($news = mysql_fetch_assoc($news1_3)){ $i++; ?>

<div class="topstory" style="background-image: url(<?php echo $news['image']; ?>)<?php if($i != '1'){ ?>; display: none<?php } ?>">
<h4>Últimas noticias <a href="<?php echo $path; ?>/rss"><img src="<?php echo $path; ?>/web-gallery/v2/images/feed-icon.gif" alt="" border="0"/></a></h4>
<h3><a href="<?php echo $path; ?>/articles/<?php echo $news['id']; ?>"><?php echo $news['title']; ?></a></h3>
<p class="summary"><?php echo $news['longstory']; ?></p>
<p><a href="<?php echo $path; ?>/articles/<?php echo $news['id']; ?>">Leer más »</a></p>
</div>

<?php } ?>

<div id="topstories-nav" style="display: none"><a href="#" class="prev">« Previa</a><span>1</span> / 3<a href="#" class="next">Siguiente »</a></div>
</div>

<ul class="widelist">
<?php 
$i = 0;
while($news = mysql_fetch_assoc($news4_5)){
$i++;

if(IsEven($i)){
$even = "odd";
} else {
$even = "even";
}
?>

<li class="<?php echo $even; ?>">
<a href="<?php echo $path; ?>/articles/<?php echo $news['id']; ?>"><?php echo $news['title']; ?></a>
<div class="newsitem-date"><?php echo date('d-m-Y', $news['published']); ?></div>
</li>

<?php } ?>

<li class="last"><a href="<?php echo $path; ?>/articles">Más noticias »</a></li>
</ul>

</div>
<script type="text/javascript">
document.observe("dom:loaded", function() { NewsPromo.init(); });
</script>

</div>
</div>

 

E ele vem acompanhado de outro arquivo, o "articles"

<?php

require_once('./data_classes/server-data.php_data_classes-core.php.php');
require_once('./data_classes/server-data.php_data_classes-session.php.php');

$body_id = "news";
$pageid = "11";

$news_id = FilterText($_GET['web-articles-id']);
$main_sql = mysql_query("SELECT * FROM cms_news WHERE id = '".$news_id."'") or die(mysql_error());
$article_exists = mysql_num_rows($main_sql);

if($article_exists == "1"){
$news = mysql_fetch_assoc($main_sql);
$pagename = "Noticias - ".HoloText($news['title'])."";
} else {
$main_sql = mysql_query("SELECT * FROM cms_news ORDER BY ID DESC") or die(mysql_error());
$news = mysql_fetch_assoc($main_sql);
$news_id = $news['id'];
$pagename = "Noticias - ".HoloText($news['title'])."";
}


require_once('./templates/community_subheader.php');
require_once('./templates/community_header.php');

?>

<div id="container">
<div id="content">
<div id="column1" class="column">
<div class="habblet-container ">
<div class="cbb clearfix orange">
<h2 class="title">Noticias</h2>
<div id="article-archive">

<?php
$sql = mysql_query("SELECT * FROM cms_news ORDER BY id DESC"); 
if(mysql_num_rows($sql) > 0){
?>
<h2>Últimas Noticias</h2>
<ul>

<?php while($row = mysql_fetch_assoc($sql)){ ?>

<li><?php if($news_id !== $row['id']){ echo"<a href=\"".$path."/articles/".$row['id']."\">"; } ?>
<?php echo $row['title']; ?></a> »
<?php if($news_id !== $row['id']){ echo"</a>"; } ?></li>

<?php } ?>

</ul>

<?php } ?>

<h2>¿Más noticias?</h2>
<ul>
<li>
<a href="<?php echo $path; ?>/articles" class="article">Más noticias</a> »
</li>
</ul>
</div>

</div>
</div>
<script type="text/javascript">if (!$(document.body).hasClassName('process-template')) { Rounder.init(); }</script>
</div>

<div id="column2" class="column">
<div class="habblet-container ">
<div class="cbb clearfix notitle ">

<div id="article-wrapper">
<h2><?php echo HoloText($news['title']); ?></h2>
<div class="article-meta">Publicado el <?php echo date('d-m-Y', $news['published']); ?>
<a href="news.php?category=<?php echo $news['category']; ?>"><?php echo $news['category']; ?></a></div>
<p class="summary"><?php echo (HoloText($news['longstory'])); ?></p>
<div class="article-body">
<p><?php echo (HoloText($news['shortstory'], true)); ?></p>
<div class="article-body"><img src="../web-gallery/album1/users_online.PNG"> <b><?php echo $news['author']; ?></b><br><br></div>
      	<div class="article-body"><iframe src="http://www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2FHibbixHotel&width=292&colorscheme=light&connections=0&stream=false&header=false&height=62" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:292px; height:62px;" allowTransparency="true"></iframe>
</iframe>


</div></div></div>
<a href="https://twitter.com/Yousef_jamal" class="twitter-follow-button" data-show-count="false" data-lang="es" data-size="large">Seguir a @Yousef_jamal</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>


<script type="text/javascript">if (!$(document.body).hasClassName('process-template')) { Rounder.init(); }</script>

<?php
if(isset($_POST['post_comment'])):
$error = array();

$comentario = strip_tags ($_POST['comment']);

if(empty($comentario))
	$error[] = "<font color='#ff0000'>Es necesario Escribir Tu Comentario antes de Enviarlo</font>";
if(empty($error)):
	$sucess = "<font color='#009900'>Tu Comentario a Sido Agregado, Gracias por Comentar.</font>";
	mysql_query("INSERT INTO `cms_comments`(`story`, `comment`, `date`, `author`) VALUES ('".$news_id."', '".$comentario."', '".time()."', '".$my_id."')");
endif;
foreach($error as $errors)
	$errorz = $errors;
endif;
$comment_id = $_POST['comment_id'];
$borrar = $_POST['eliminar'];

if($borrar == 1){
mysql_query("DELETE FROM cms_comments WHERE id = '$comment_id'");
}

?> 
<?php
$commentid = mysql_fetch_array(mysql_query("SELECT * FROM `cms_comments` ORDER BY id DESC LIMIT 1"));
$mas = 1;
$comid = $commentid['id']+$mas;
?>
 <div class="habblet-container ">    <div class="cbb clearfix notitle ">      <div id="article-wrapper"><h2>Escribe un comentario</h2>        <div class="article-meta">       <div class="article-body">           <form action="/articles/<?php echo $news_id; ?>?articleid=<?php echo $news_id; ?>&commentid=<?php echo $comid; ?><?php echo $row12['id']; ?>&userid=<?php echo $my_id; ?>" method="post">          <textarea name="comment" maxlength="500"></textarea><br /><br />          <input type="submit" name="post_comment" value="Enviar" />          </form>       </div>      </div>    </div>  </div><style type="text/css"> input[type="text"], input[type="password"] {   background-color: #F1F1F1;   border: 1px solid #999999;   width: 175px;   padding: 5px;   font-family: verdana;   font-size: 10px;   color: #666666; } input[type="submit"] {   background-color: #F1F1F1;   border: 1px solid #999999;   padding: 5px;   font-family: verdana;   font-size: 10px;   color: #666666; } textarea {   background-color: #F1F1F1;   border: 1px solid #999999;   padding: 5px;   width: 517px;   height: 70px;   font-family: verdana;   font-size: 10px;   color: #666666; } select {   background-color: #F1F1F1;   border: 1px solid #999999;   padding: 5px;   font-family: verdana;   font-size: 10px;   color: #666666; } </style> 

<?php
$sql1 = mysql_query("SELECT * FROM cms_comments WHERE story = '".$news_id."'"); 
$total = mysql_num_rows($sql1);
?>
<div class="habblet-container ">    <div class="cbb clearfix notitle ">      <div id="article-wrapper"><h2>Comentarios (<?php echo $total; ?>)</h2>        <div class="article-meta"></div>        <div class="article-body"> 

<?php
$sql1 = mysql_query("SELECT * FROM cms_comments WHERE story = '".$news_id."' ORDER BY id DESC"); 
if(mysql_num_rows($sql1) > 0){
?>

<?php while($row1 = mysql_fetch_assoc($sql1)){ 

$userdata = mysql_fetch_assoc($userdata = mysql_query("SELECT * FROM users WHERE id = '".$row1['author']."'"));
?>


        <table width="528px">                    <tr>                      <td width="90px" valign="top">                        <div style="float:left"><img src="http://www.habbo.com/habbo-imaging/avatarimage?figure=<?php echo $userdata['look']; ?>&size=b&direction=2&head_direction=3&gesture=sml&size=m"></div>                                          </td>                      <td width="427px" valign="top">                        <strong>RE: <?php echo $news['title']; ?></strong><br /><br /><?php echo $row1['comment']; ?>                     </td>                    </tr>            <tr>                      <td width="90px" valign="top">                      </td>              <td width="427px" align="right">                <i><form method="post" action=""><?php if($user_rank > 5 && $logged_in == true){ ?><input type="hidden" name="comment_id" value="<?php echo $row1['id'] ?>">  Eliminar Comentario: <input type="radio" name="eliminar" value="0" checked> No |<input type="radio" name="eliminar" value="1" onchange="this.form.submit()"> Si, Eliminar. <?php } ?></form>Por: <strong><a href="/home/<?php echo $userdata['username']; ?>"><?php echo $userdata['username']; ?></a></strong> 
              Enviado el <?php echo date('M j, Y g:i A', $row1['date']); ?></i><br /><br />              </td>            </tr> 
<?php } } ?>
</table>        </div>      </div>    </div> 

</div>
</div>

</div>
</div>
<script type="text/javascript">if (!$(document.body).hasClassName('process-template')) { Rounder.init(); }</script>

</div>

<div id="column3" class="column">
</div>

<?php require_once('./templates/community_footer.php'); ?>

 

Ou seja pessoal, eu qero q meu site fiqe meusite.com/articles/nome-da-news-aqui mais ai pessoal, por exemplo se eu mudar o nome da news o link muda também, não sei se o nome disto é url amigável, acho que não :/

 

Aff ninguém me ajuda :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tudo bem?

 

Primeiro, isso não é problema com o banco de dados. Os dados ficarão lá organizados da mesma forma. Você vai precisar de modificações no seu servidor e utilizar meios na linguagem de programação para fazer isso. Vamos considerar que seu servidor permite a utilização de .htaccess.Logo faremos assim, dentro do seu .htaccess:

 

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

 

Posteriormente, no começo do seu script INDEX (antes de quaaaaalquer coisa), você fará uma modificação para que o php pegue essa estrutura de dados que foi passado e converta para o "formato" GET (ou seja, para que você possa manipular como se fosse '?id=x').

Vamos lá:

 

//Traduzir a URL e direcionar a sua pagina 
$URL = @explode('/', $_GET['url']);
$i = 0;
foreach($URL as $key => $val){if(!($i%2)) $_GET[$val] = $URL[$key+1]; $i++; }
unset($i);

 

NOTA IMPORTANTE: esse bloco de código fará com que uma url do tipo seusite.com/noticia/1/nome_da_notica possa ser lida pelo PHP. NO código as informações são obtidas aos pares. Ou seja, o seu GET, para essa url, ficaria da seguinte forma:

 

    $_GET['noticia'] = 1;
    $_GET['nome_da_noticia'] = null;

 

Analogamente, se eu passar a seguinte URL: meusite.com/noticias/0/id/2584/Briga_de_Atrizes, os dados estariam organizados no GET da seguinte forma:

 

 

    $_GET['noticias'] = 0;
    $_GET['id'] = 2584;
    $_GET['Briga_de_Atrizes'] = null;

 

Mas porque o ultimo está sempre ficando null? Como eu disse, as informações são organizadas aos pares. Logo, a idéia de funcionamente é:

 

meusite.com/chave1/valor1/chave2/valor2

 

Com isso, inserindo um número impar, a última chave sempre terá valor NULO.

 

Esta é uma das formas de se fazer. Existem outras, cada uma focando em uma característica. Aqui tem uma bastante interessante tbm, e por sinal bem semelhante:

 

aprendendo-urls-amigaveis

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.