Nasıl MySQL veritabanı girmesinden itibaren bir özü gösterilmesini sağlayabilirsiniz?

3 Cevap php

Ben bir blog bölüm içerir ve şu anda ana sayfasında tüm mesajı görüntüleyen bir web sayfası oluşturma peşindeyim. Ben sadece 50 kelime yani girdinin belli bir bölümünü görüntüler böylece ayarlamak istiyorum. Sonra ben sonrası id bağlantılar yazının altında bir okuma daha düğme var ki bunu ayarlamak mümkün olmak istiyorum. Şu anda post.php kullanabilir? = # (# = Ne olursa olsun yazılan id).

İşte homepage:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Blog Name</title> 
<link rel="stylesheet" href="css/style.css" type="text/css" /> 
<body>
    <div id="upper-bar">
    <div id="bar-content">

    <a href="#">Home</a>
    <a href="#">Archives</a>
    <a href="#">Contact</a>
    <a href="#">About</a>

    <a href="#"><img src="images/twitter.png" id="tweet"></a><a href="#"><img src="images/feed.png" id="feed"></a>
    </div>
    </div>

    <div id="clear">
    </div>


    <div class="main">
    <h1>Blog Name</h1>
    <div class="post-col">
    <?php
    mysql_connect ('localhost', 'root', 'root') ;
    mysql_select_db ('tmlblog');

    $sql = "SELECT * FROM php_blog ORDER BY timestamp DESC LIMIT 5";

    $result = mysql_query($sql) or print ("Can't select entries from table php_blog.<br />" . $sql . "<br />" . mysql_error());

    while($row = mysql_fetch_array($result)) {

        $date = date("l F d Y", $row['timestamp']);

        $title = stripslashes($row['title']);
        $entry = stripslashes($row['entry']);
        $id = $row['id'];

        ?>
         <div id='post-info'><?php echo "<p id='title'><strong><a href=\"post.php?id=". $id . "\">" . $title . "</a></strong></p>"; ?><br /></div>
               <div id="post">
               <?php echo $entry; ?>
               <!--<br /><br />
               Posted on <?php echo $date; ?> !-->
               </p>
               </div>


        </p>
    </div>    

        <?php
    }
    ?>
    </div>
     </div> 
</body> 
</html> 

3 Cevap

Bu sözler olmalı? Çok uzun veya kısa sözler ölçüde farklılaşan karakter sayım neden olabilir. Bunun yerine bir karakter sayımı yapmalıdır.

Eğer öyleyse, substr (50 hangisi istediğiniz karakter sayısını değiştirmek) dizisinin bir kısmını yazdırmak için kullanabilirsiniz:

<?php echo htmlspecialchars(substr($entry, 0, 50)) ?>... 
<a href="/post.php?id=<?php echo $id ?>">read more</a>

Alternatif olarak, SELECT SUBSTRING ile SQL ile bir alt dize seçebilirsiniz

SELECT SUBSTRING_INDEX(entry, ' ', 51) as entry FROM php_blog;

Bu (kelime, tek bir boşluk ile sınırlandırılır varsayarak) her giriş için 50 kelimeye kadar sürecektir.

Ana sayfada bu gibi blog yazılarını sorgulamak:

$sql = "SELECT id, title, blog_timestamp, LEFT(blog_contents, 50) AS txt 
        FROM php_blog ORDER BY timestamp DESC LIMIT 5"; 

Sonuçları işlerken Sonra, en yakın kelime Döşeme ve bağlantı eklemek.