2009-10-11 6 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

+0

부모 요소의 너비에 따라 자바 스크립트를 사용하여 내 문자열을 자르는 것을 선호합니다. –

답변

4

당신은 substr를 사용할 수 있습니다

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

이있는 당신이 $ 타이틀을 다듬을하는 문자 길이로 길이를 교체합니다.

+0

+1 나를 때린다. – klabranche

0

당신이이 생략...

2
를 추가하거나 앞에 추가로 뭔가가 탈락되었다는 표시를 제공하기 위해 더 좋을 거라 할 경우 문자열, 또는 마지막 부분의 첫 번째 부분을 대체 할 수도 있지만

쿼리에서 LEFT을 사용하면 열에서 가장 왼쪽의 문자 집합을 반환 할 수 있습니다. 당신의 MAXCHARS 일정에 설정된이 예제에서 truncated_title에 의해 별칭 열을 검색 할 갈 때

지금의 LEFT(column, max_chars)

define('MAXCHARS', '50'); 

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

의 형식으로, 그것은 단지에서 가장 그러나 많은 문자가 포함됩니다.

관련 문제