2009-03-03 4 views
0

블로그 페이지에 mysql.com에서 사용하는 것과 비슷한 ASCII 레이아웃을 사용하여 블로그 레코드에 MySQL 레코드 세트를 신속하게 표시하고 싶습니다. WordPress v2.7을 사용하고 있습니다. 어떤 아이디어? 나는 또한 구문 강조를위한 WP-구문을 사용하고 있음을 추가해야합니다, 그래서 정말 그냥 내가 흥미 해요 ASCII를 생성합니다.블로그 게시물에 ASCII로 MySQL 테이블 표시하기

답변

1

당신이 다음 단지를 실행

 
+----+------+ 
| id | name | 
+----+------+ 
| 1 | Bob | 
| 2 | Mary | 
| 3 | Jane | 
| 4 | Lisa | 
+----+------+ 

같은 것들을 의미하는 경우 명령 줄에서 대화식 모드로 쿼리를 실행할 때 결과가 형식화되므로 MySQL 명령 줄의 쿼리로 충분합니다. 그런 다음 필요에 따라 <pre> 또는 유사한 것으로 블로그 게시물에 복사하여 붙여 넣을 수 있습니다.

0

당신이 말하는 ASCII는 MySQL 명령 줄 클라이언트가 결과를 출력하는 방법입니다.

mysql> select task_nextrun,task_name from pref_task; 
+--------------+-----------------+ 
| task_nextrun | task_name  | 
+--------------+-----------------+ 
| 1235999760 | datacache_clean | 
| 1236002760 | process_stats | 
+--------------+-----------------+ 
2 rows in set (0.00 sec) 

mysql> 

당신은 명령을 MySQL 명령 행 클라이언트에 보내면됩니다.

0

명령 줄 클라이언트를 호출하지 않고이 작업을 수행하려는 경우 PHP의 방법을 참조하십시오. 이것은 매우 조잡한 코드이며 테스트하지는 않았지만 대부분 프로세스를 설명하려고합니다. 그것은 또한 모든 것을 왼쪽 정렬 할 것이고, 나는 mysql 클라이언트가 숫자를 오른쪽 정렬한다고 생각한다. 약간 더 많은 작업이 필요하지만, 어려운 것은 아니다.

// determine maximum value lengths for each column 
foreach ($resultset as $result) 
{ 
    foreach ($result as $col => $val) 
    { 
     if (strlen($val) > $max_length[$col]) 
     { 
      $max_length[$col] = strlen($val); 
     } 
    } 
} 

// construct border lines 
foreach ($max_length as $col_length) 
{ 
    $border_line .= '+'.str_repeat('-', $col_length+2); 
} 
$border_line .= "+"; 

// print header 
print $border_line."<br />\n"; 
foreach ($max_length as $col_name => $col_length) 
{ 
    print '| '.str_pad($col_name, $col_length, ' ').' |'; 
} 
print "<br />\n"; 
print $border_line."<br />\n"; 

// print data 
foreach ($resultset as $result) 
{ 
    foreach ($result as $col => $val) 
    { 
     print '| '.str_pad($val, $max_length[$col], ' ').' |'; 
    } 
    print "<br />\n"; 
} 
print $border_line."<br />\n"; 
:

mysqli_result의 fetch_all() 기능 같은 것을 사용하여, 당신은 $resultset라는 연관 전용 배열에 기록을 가져했다고 가정하면