thiagosvl 1 Denunciar post Postado Outubro 27, 2015 Boa tarde! Tenho uma pagina que lista determinados posts que estão presentes em meu banco de dados, mas em algumas situações o conteúdo do post é extenso e acaba tomando muito espaço da página. Gostaria da ajuda de vocês para estar criando um link com aquele famoso "ler matéria/completo completa(o)". O que sei até então é que irá criar essa página única através do ID de cada post, mas por ser leigo em PHP, não tenho a mínima noção de como criar tal situação. O código a seguir contem a listagem e também uma paginação simples. Segue o código da página que a listagem acontece: TEXTOS.PHP <?php $cabecalho_title = "Textos"; include('_includes/topo.php'); ?> <div id="centraliza" class="clearfix"> <section id="container" class="clearfix"> <article id="conteudo" class="clearfix"> <h3 class="titulo-container-esquerdo">Textos</h3> <?php $limite_paginacao = 4; $sql_contagem = mysqli_query($conecta, "SELECT * FROM textos") or die (mysql_error()); $sql_resultado = ceil(mysqli_num_rows($sql_contagem) / $limite_paginacao) or die (mysql_error()); $pg = (isset($_GET["pg"])) ? (int)$_GET["pg"] : 1 or die (mysql_error()); ; $start = ($pg - 1) * $limite_paginacao; $strSQL = "SELECT * FROM textos ORDER BY grupo_id DESC LIMIT $start, $limite_paginacao"; $rs = mysqli_query($conecta,$strSQL); $error = mysqli_error($conecta); if(!$error){ while($row = mysqli_fetch_array($rs)) { echo '<div id="textos"><div id="titulo-textos">'.$row['titulo'].'</div>'; echo '<div id="texto"><pre>'.$row['texto'].'</pre></div>' . "</div>"; echo '<div id="clear">'.'</div>';} }else{ echo $error; } echo '<div id="paginacao">'; if($sql_resultado > 1 && $pg<=$sql_resultado) { for($i=1; $i<=$sql_resultado; $i++) { echo "<a class='a-paginacao' href='?pg=$i'>$i</a>"; } } echo '</div>'; ?> </article> <?php include('_includes/rodape.php'); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Outubro 27, 2015 E se fazer o select com limite de caracteres? Vê ae https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_left Up. Só não especifiquei que isso é pra trazer parte do texto apenas, evitando trazer todo o conteúdo do registro. Compartilhar este post Link para o post Compartilhar em outros sites
Helmesvs 10 Denunciar post Postado Outubro 27, 2015 O jeito mais facil é criar uma pagina que visualizaria o post completo. Vc pode criar um link e enviar seu id por metodo get. Ex: <a href="ver.php?idnoticias=<?php echo $linha['id'] ?>"></a> Depois é so receber o get na outra pagina: $id = $_GET['idnoticias']; E puxa os dados da base pelo id Compartilhar este post Link para o post Compartilhar em outros sites
thiagosvl 1 Denunciar post Postado Outubro 27, 2015 Agradeço pela atenção de vocês. A minha pagina textos.php lista todos os posts do banco de dados, e utilizando da forma que Marcos Xavier citou (limitar textos), ainda seria preciso criar um link em baixo com a CHAMADA DO POST COMPLETO em uma nova página.. essa nova pagina seria o que o Helmesvs citou, mas acabei que me perdendo por completo com o codigo que ele ensinou.. Se puderem ser mais claros, porque sou muito leigo em PHP, desculpem minha ignorancia. Compartilhar este post Link para o post Compartilhar em outros sites
(RNU) Ruan Silva 61 Denunciar post Postado Outubro 27, 2015 Vc vai criar um link na página principal, aquela que contém o resumo das noticias. Esse link vai conter o id da matéria. Ex: <a href="materiaCompleta.php?id=$idMateria">Leia a Materia Completa</a> na página materiaCompleta.php vc tem o id passado pela URL (GET), ai vc busca ele e cria um SELECT sem restrição de caracteres: $id= $_GET['id']; $sql = "SELECT * FROM minhaTabela WHERE id = $id"; ... Feito isso, basta exibir a matéria e formatar do jeito que desejar ;) Compartilhar este post Link para o post Compartilhar em outros sites
thiagosvl 1 Denunciar post Postado Outubro 27, 2015 Fiz da seguinte forma: echo '<div id="textos"><div id="titulo-textos">'.$row['titulo'].'</div>'; echo '<div id="id-textos">'.$row['id'].'</div>'; echo '<div id="texto"><pre>'.$row['texto'].'</pre></div>'; echo '<a href="materiaCompleta.php?id='.$row['id'].'">Ler materia completa</a></div>'; echo '<div id="clear">'.'</div>';} O link ficou da seguinte forma: http://localhost/site/materiaCompleta.php?id=120 e a pagina materiaCompleta.php <?php $id= $_GET[$row['id']]; $sql = "SELECT * FROM textos WHERE id = $id"; ?> Recebi o seguinte erro na página materiaCompleta.php: Notice: Undefined index: in C:\wamp\www\terreiro\materiaCompleta.php on line 12 Segue a linha 12: $id= $_GET[$row['id']]; Tentei fazer o codigo acima apenas utilizando $id= $_GET['id']; Com esse código a página fica em branco.. Compartilhar este post Link para o post Compartilhar em outros sites
Helmesvs 10 Denunciar post Postado Outubro 27, 2015 <?php //PAGINA 1 include "conexao.php"; // CONEXÃO COM O BANCO DE DADOS $quantidade = 12; $pagina = (isset($_GET['pagina'])) ? (int)$_GET['pagina'] : 1; $inicio = ($quantidade * $pagina) - $quantidade; $sql = "SELECT id, datahora, Day(datahora), foto1, titulo, introducao, visualizacao, tipo, categoria FROM `publicacoes` WHERE tipo=1 ORDER BY datahora DESC LIMIT $inicio, $quantidade"; $query = $mysqli->query($sql); while ($linha = $query->fetch_assoc() ) {?> <li class="col-md-4 col-sm-6"> <div class="cp-post"> <a href="ver.php?idnoticias=<?php echo $linha['id'] ?>&categ=1"><div class="cp-thumb"><img alt="" src="../adm-news/<?php echo $linha['foto1'] ?>"></a></div> <div class="cp-post-content"> <h3><!-- ENVIA POR METODO GET A VARIAVEL idnoticias e categ --><a href="ver.php?idnoticias=<?php echo $linha['id'] ?>&categ=1"><?php echo $linha['titulo']?></a></h3> <ul class="cp-post-tools"> <li><i class="fa fa-user"></i> Roy Miller</li> </ul> </div> </div> </li> <?php } ?> <?php //PAGINA 2 $id = $_GET['idnoticias']; // RECEBE AS VARIAVEIS $categ = $_GET['categ']; $con = new mysqli('localhost', 'root', '', 'news'); // CONEXÃO COM O BANCO DE DADOS $sql = ("select id, Day(datahora), datahora, foto1, visualizacao, foto2, foto3, titulo, introducao, corpo, tipo, categoria, share from publicacoes WHERE id = '$id'"); $query = $mysqli->query($sql); while ($linha = $query->fetch_assoc() ) {?> <div class="cp-thumb"><img src="../adm-news/<?php echo $linha['foto1'] ?>" alt=""></div> <div class="cp-post-content"> <h1><em><span style="font-family: 'Source Sans Pro', sans-serif;"><?php echo utf8_encode($linha['titulo']) ?></span></em></h1> <ul class="cp-post-tools"> <li><i class="fa fa-user"></i> Helmes Vieira</li> <li style="text-transform: uppercase;"><i class="fa fa-clock-o"></i> <?php setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese'); date_default_timezone_set('America/Sao_Paulo'); echo strftime('%d %b %Y - %HH %M', strtotime($linha['datahora'])); ?> </li> </ul> <p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;"><span style="color:#808080;"><em><span style="font-size:20px;"><?php echo utf8_encode($linha['introducao']) ?></span></em></span></span></p> <p><span style="font-family:Roboto,helvetica,sans-serif;"><?php echo utf8_encode($linha['corpo']); ?></span></p> <br><br> </div> <?php }?> Tirei do meu proprio codigo pra você, se precisar explico o que cada linha faz Compartilhar este post Link para o post Compartilhar em outros sites
(RNU) Ruan Silva 61 Denunciar post Postado Outubro 27, 2015 qual é a linha 12? o correto é: $id= $_GET['id']; Se a URL está recebendo corretamente o id (nesse caso o 120), então é outro erro... Esse é o nome da pagina que vc criou mesmo? materiaCompleta.php? Compartilhar este post Link para o post Compartilhar em outros sites