2012-04-21 4 views
0

В настоящее время мои результаты выводятся из базы данных, а затем вставляют все результаты в одну таблицу 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

Кроме того, вместо того, чтобы ваше удаленное поле было строкой («да», «нет»), вы получите лучшую производительность из индекса (1, 0), который индексируется. –

ответ

1

Если вы хотите создать столько таблиц, сколько есть возвращенных строк, просто положите отверстие <table> в начало 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 

Update. Еще одна вещь. Пожалуйста, не используйте встроенный стиль. У вас есть 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-бб абсолютно прав, и как намек попытаться поставить если/другое строительство в MySQL - он будет двигаться быстрее или оптимизировать его в PHP, как:

$get = mysql_query("SELECT * FROM request WHERE " . ($type == 'all' ? 'type = 1' : 'type = ucfirst($type)') . " AND deleted != 'yes' ORDER BY id DESC"); 
Смежные вопросы