2011-01-24 7 views
0

아래 코드를 사용하여 테이블을 만들었지 만 데이터베이스 테이블의 값이 지속적으로 증가하기 때문에 값의 차이 (수치 적으로)를 계산하기 위해 일부 계산을 수행하고 있습니다.하지만이 작업은 엉망이되었습니다. 어떻게 든 테이블 레이아웃을 올리십시오. 스크린 샷을 포함 시켰으므로 테이블 헤더 아래의 첫 번째 행이 옳지 않다는 것을 알 수 있습니다.PHP는 HTML 테이블을 만들었습니다

$column은 사용자의 값인 $_GET입니다.

$sql = "select * from (select * from mash order by tstamp desc limit 10) s order by s.id"; 
        $result = mysql_query($sql); 
        $previous = 0; 
        $firstRun = true; 
        echo "<table id='dataTable' border='1'>"; 
        echo "<tr><th>Date</th> 
         <th>Value</th></tr>"; 
        while($row = mysql_fetch_array($result)){ 
         $difference = $row[$column] - $previous; 
         if (!$firstRun) 
         echo "<tr><td>" . date("G:i:s", strtotime($row["tstamp"])) . "</td>"; 
         echo "<td>" . $difference . "</td></tr>"; 
         $previous = $row[$column]; 
         $firstRun = false; 
        } 
       echo "</table>"; 

enter image description here

내 질문 : 코드에서 사람의 자리가 왜 첫 번째 행은 다음과 같이 나올 것입니다 수 있습니까?

+0

이 사람이 생방송입니까? 그것은 좋은 HTML을 생산할 수 있습니다 – Chris

+0

@ 크리스, 두렵지 만, 그 민감한 클라이언트 데이터, 그 이유는 내가 스크린 샷을 넣어 제한된거야 : ( – benhowdle89

+0

"if (! $ firstRun)"하고 싶지 않아요? ??이 경우 라인의 시작 부분과 첫 번째 셀을 제거하는 것이므로 첫 번째 라인이 엉망입니다. – Nabab

답변

3

문제는이 라인에서 온다 : 첫 번째 라인을 표시하지 않는 경우

if (!$firstRun) 
    echo "<tr><td>" . date("G:i:s", strtotime($row["tstamp"])) . "</td>"; 

은 괄호를 사용 : 모든

if (!$firstRun){ 
    echo "<tr><td>" . date("G:i:s", strtotime($row["tstamp"])) . "</td>"; 
    echo "<td>" . $difference . "</td></tr>"; 
} 
+0

Thanks Nabab, 알 겠어! – benhowdle89

0

"if"문입니다. 첫 번째 실행에서는 아무 것도 울리지 않으므로 시작 tr과 td가 반향되지 않으므로 단일 td 값만 포함하는 잘못된 행 (/ tr 태그로 끝남)이 생깁니다. firstrun이 false 일 때만 발생하도록 두 개의 echo 문 양쪽에 대괄호를 넣으려고 했습니까?

0

먼저, 어디 $column 정의된다? 내가 추측하고있어 비록

$difference = $row[$column] - $previous; 

초,이은, 두 번째 반복

if (!$firstRun) 
echo "<tr><td>" . date("G:i:s", strtotime($row["tstamp"])) . "</td>"; 

이 while 루프에서 처음으로, 당신은 테이블 행 <tr>를 작성되지 않음을 의미의로 실행됩니다 브라우저가 누락 된 태그를 "고칠 수"있지만 이것이 첫 번째 열에 나타나는 이유는 -32722입니다.

+0

$ column은 사용자가 $ _GET 한 값이다. – benhowdle89