2012-04-21 6 views
0

현재 my는 데이터베이스에서 결과를 생성 한 다음 모든 결과를 하나의 HTML 테이블에 삽입합니다. 개별 테이블을 표시하는 PHP

인가가 그 각각의 결과를 도출하기 위하여는 (하나의 HTML 테이블로가는 모든 결과에 반대) 개인 HTML 테이블을 만들어 반환 있도록 할 수 있다는 것을 어떤 식 으로든

내 코드 :

<table class=\"board\" width='100%' border='0' align='center' cellpadding='1' cellspacing='1'> 
"); 
      $type = $_GET["type"]; 
      if ($type == "" || $type == "request") { 
       $get = mysql_query("SELECT * FROM request WHERE type='Request' AND deleted != 'yes' ORDER BY id DESC"); 
      } else { 
       if ($type == "shoutout") { 
        $get = mysql_query("SELECT * FROM request WHERE type='Shoutout' AND deleted != 'yes' ORDER BY id DESC"); 
       } else { 
        if ($type == "competition") { 
         $get = mysql_query("SELECT * FROM request WHERE type='Competition' AND deleted != 'yes' ORDER BY id DESC"); 
        } else { 
         if($type == "all") { 
          $get = mysql_query("SELECT * FROM request WHERE deleted != 'yes' ORDER BY id DESC");        
         } 
        } 
       } 
      } 
      $num = @mysql_num_rows($get); 
      if ($num == 0) { 
       echo ("<div class=\"board\"><center><font color=\"red\">There aren't any requests in this category!<br /> 
Why not ask listeners to send in their requests?</font></center></div>"); 
      } else { 
       while ($r = mysql_fetch_array($get)) { 
        echo " 
<tr> 
    <td><font face=\"verdana\" size=\"1\"><b>User</b></td> 
    <td><font face=\"verdana\" size=\"1\"><b>$r[habboname]</b></td> 
    </tr> 
    <tr> 
    <td><font face=\"verdana\" size=\"1\"><b>Date</b></td> 
    <td><font face=\"verdana\" size=\"1\">$r[date]</td> 
    </tr> 
    <tr> 
    <td><font face=\"verdana\" size=\"1\"><b>IP</b></td> 
    <td><font face=\"verdana\" size=\"1\">$r[ip]</td> 
    </tr> 
    <tr> 
    <td><font face=\"verdana\" size=\"1\"><b>Message</b></td> 
    <td><font face=\"verdana\" size=\"1\">$r[message]</td> 
    </tr> 
    <tr> 
    <td><font face=\"verdana\" size=\"1\"><b>Type</b></td> 
    <td><font face=\"verdana\" size=\"1\">$r[type]</td> 
    </tr> 
    <tr> 
    <!-- <td><font face=\"verdana\" size=\"1\"><b>Refferer</b></td> 
    <td><font face=\"verdana\" size=\"1\">"; 
    if($r[refferer] == 1){ echo "Site.com</td>"; } else { echo "Site1.com</td>"; } 

echo "--></tr> 
    <tr> 
    <td><font face=\"verdana\" size=\"1\"><b>Commands</b></td> 
    <td><a href=\"vrequest.php?id=$r[id]\"><font face=\"verdana\" size=\"1\">Delete</a> - <a href=\"mode.php?ban=1&id=$r[id]&ip=$r[ip]&message=$r[message]\">Ban</a> - <!--<a href=\"site_alert.php?type=user&ip=" . $r["ip"] . "\">Alert</a>--><a href=\"lotw.php\">Nominate LoTW</a></font></td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
"; 
        $id = htmlspecialchars($_GET['id']); 
        $delete = mysql_query("UPDATE request SET deleted = 'yes' WHERE id = '$id'"); 
       } 
       echo ("</table></div>"); 
      } 
      break; 
     case 'delete': 
+0

같습니다 그래서 나는 몇 가지 제안을하고 싶었다. 나는 당신의 질의를 생성하여 더 읽기 쉽도록 섹션을 다시 작성했다. http://pastebin.com/81Nr1WiP. 또한 글꼴 태그가 닫히지 않았기 때문에 오류가 발생합니다. 더 중요한 것은, 방금 시작하고 습관을 개발하는 중이므로 CSS 학습을 시작해야합니다. 글꼴 태그는 전혀 사용하지 않아야합니다. 또한 오래된 브라우저를 지원하는 데 필요하지 않으면 테이블의 width, border, align 속성을 사용하지 않아야합니다. 행운을 빌어 요! –

+0

수동으로 글꼴을 설정하는 대신 스타일 시트를 사용하지 않는 이유는 무엇입니까? – Jack

+0

또한 삭제 된 필드를 문자열 ('yes', 'no')로 지정하는 대신 인덱싱 된 int (1, 0) 중에서 더 나은 성능을 얻을 수 있습니다. –

답변

1

리턴 된 행만큼 테이블을 작성하려는 경우, 을 while의 시작 부분에두고 </table>의 끝을 while의 끝에 넣으십시오. 그러나 이것이 왜 필요한지 이해할 수 없습니다. 한 행으로 많은 표를 실제로 만들고 싶습니까? 그것은 테이블의 목적에 어긋납니다. 목록을 만들거나 표 대신 span 또는 다른 것을 사용하십시오.

while ($r = mysql_fetch_array($get)) { 
echo "<table class=\"board\"> 
<tr> 
    <td><b>User</b></td> 
    <td><b>$r[habboname]</b></td> 
</tr> 
<tr> 
    <td><b>Date</b></td> 
    <td>$r[date]</td> 
</tr> 
    <tr> 
    <td><b>IP</b></td> 
    <td>$r[ip]</td> 
</tr> 
    <tr> 
    <td><b>Message</b></td> 
    <td>$r[message]</td> 
</tr> 
<tr> 
    <td><b>Type</b></td> 
    <td>$r[type]</td> 
</tr> 
<tr> 
    <!-- <td><b>Refferer</b></td> 
    <td>"; 

if($r[refferer] == 1){ echo "Site.com</td>"; } else { echo "Site1.com</td>"; } 

echo "--></tr> 
<tr> 
    <td><b>Commands</b></td> 
    <td><a href=\"vrequest.php?id=$r[id]\">Delete</a> - <a href=\"mode.php?ban=1&id=$r[id]&ip=$r[ip]&message=$r[message]\">Ban</a> - <!--<a href=\"site_alert.php?type=user&ip=" . $r["ip"] . "\">Alert</a>--><a href=\"lotw.php\">Nominate LoTW</a></font></td> 
</tr> 
<tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
</tr> 
</table>"; 

$id = htmlspecialchars($_GET['id']); 
$delete = mysql_query("UPDATE request SET deleted = 'yes' WHERE id = '$id'"); 
} 

echo "</div>"; //remove() after echo 

업데이트. 또 하나. 인라인 스타일링을 사용하지 마십시오. table class="board"이 있으므로 이미 CSS의 기능을 알고있을 것입니다.

두 번째 업데이트. <font ...> 개의 태그를 삭제했습니다. CSS를 다음과 같이 사용하십시오 :

table.board{ 
    width:100%; 
    border:0; 
    align:center; 
    cellpadding:1; 
    cellspacing:1; 
} 

table.board td{ 
    font-family: Verdana, Geneva, Arial, sans-serif; 
    font-size: 1em; 
} 

CSS는 스타일을 변경하려는 경우 많은 문제를 저장합니다. 그리고 저를 믿으십시오, 당신이 그것을 바꾸고 싶을 때 (또는 당신의 두목은 bling-bling에 위치를 ... 싶을 것이다) 시간이있을 것이다.

0

ZZ-BB는 절대적으로 옳고 힌트로 MySQL의 경우/다른 공사를 넣어하려고 - 그것은처럼, PHP는 그것을 빠르게 이동하거나 최적화 : 당신은 그냥 배우고처럼

$get = mysql_query("SELECT * FROM request WHERE " . ($type == 'all' ? 'type = 1' : 'type = ucfirst($type)') . " AND deleted != 'yes' ORDER BY id DESC"); 
관련 문제