2009-10-11 42 views
0

我從我的表中的三行中獲取信息,並在錨標記中回顯其中的一行。如何限制我的mysql選擇字符

如何限制顯示在定位標記中的$ title變量上的字符數量。

代碼:

$results = mysql_query("SELECT * FROM news "); 

while($row = mysql_fetch_array($results)) { 
    $id = $row['id']; 
    $title = $row['title']; 
    $date = $row['date']; 

    echo "<a href=\"" . $_SERVER['PHP_SELF']."?id=$id"."\">$title</a> | "; 
} 

$thisID = $_GET['id']; 

if(!isset($thisID)) { 
    $thisID = 7; 
} 
+3

擡起頭來,用數字字符開始ID屬性是無效的。你應該使它成爲'$ id =「link」。$ row [「id」]'或者其他的,否則會導致一些腳本/瀏覽器的問題。 – Anthony 2009-10-11 02:22:34

+0

我更喜歡使用javascript截斷我的字符串,基於父元素的寬度。 – 2009-10-11 02:48:27

回答

4

您可以使用substr

echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?id=$id" . "\">" . substr($title, 0, LENGTH) . "</a> | "; 

,長度替換長度字符要修剪$稱號。

+0

+1擊敗了我。 – klabranche 2009-10-11 02:09:31

0

你可以替換的字符串,或最後部分的第一部分,但如果你這樣做會更好的開頭或末尾的省略號...

2
提供指示的東西被忽略了,

您可以在查詢中使用LEFT來返回列中最左邊的一組字符。

這是在LEFT(column, max_chars)

define('MAXCHARS', '50'); 

$results = mysql_query("SELECT id, LEFT(title, ".MAXCHARS.") as truncated_title, 
          date FROM news"); 

格式現在,當你去檢索列,通過truncated_title在這個示例中的別名,它只會包含但大多數多的字符在MAXCHARS常數設置。