2016-05-03 2 views
0

Мне было сложно сформулировать этот вопрос, но я постараюсь изо всех сил. Я создаю таблицу лидеров php и MYSQL, все работает, но теперь я хочу ее стилизовать. Я не очень-то знаю css, и это может быть простым решением. Я пытаюсь стилизовать таблицу так, чтобы все элементы таблицы данных сидели симметрично, как таблица, и были выровнены с центром заголовков. Я думаю, что это не работает, потому что у меня есть 2 таблицы, которые я пытаюсь создать, и они не работают вместе друг с другом. Вот код и простить мои имена пользователей в таблице, я иногда становлюсь ленивым.Как создать таблицу, которая является частью html и частью php

<!DOCTYPE html> 
<html> 
<head> 
<title>Leaderboards</title> 
<style type="text/css"> 
th { 
    overflow: auto; 
    font-size: 25px; 
    border: 1px solid; 
    padding: 5px; 
    margin: 2px 2px 2px 2px; 
} 
td { 
    font-size: 25px; 
    padding-left: 30px; 
    padding-top: 3px; 
} 
</style> 
</head> 
<body> 
<h1>Leaderboard</h1> 
<table> 
<tr> 
    <th>Rank</th> 
    <th>User</th> 
    <th>Score</th> 
</tr> 
</table> 
<?php 
include 'HytecFunctions.php'; 
$conn=connectDB(); 

$rank = 1; 

    $sql = 'SELECT Name, Score FROM Names ORDER BY Score DESC'; 
foreach ($conn->query($sql) as $row) { 
echo "<table> 
     <td>$rank</td> 
     <td>$row[Name]</td> 
     <td>$row[Score]</td> 
     </tr> 
     </table>"; 
$rank++; 
} 

    $conn->close(); 
?> 
</body> 
</html> 

The table as it shows in my browser

+1

Потому что вы пытаетесь создать другую таблицу в каждом цикле. Попробуйте поместить их все в один стол. –

+0

просто вынимают теги '

' за пределами цикла, вся строка таблицы '' должна быть внутри внутри, @RajdeepPaul no, ее не выполнять на каждой итерации, это скорее всего завернутый запрос pdo api, '->() 'результат может быть непосредственно использован внутри' foreach', [здесь] (http://php.net/manual/en/pdo.query.php) – Ghost

+0

@RodrigoDuterte О, хорошо, спасибо за ссылку для документации. :-) –

ответ

3

Потому что вы пытаетесь создать еще одну таблицу каждый цикл. Попробуйте поместить их все в один стол.

<table> 
    <tr> 
     <th>Rank</th> 
     <th>User</th> 
     <th>Score</th> 
    </tr> 

    <?php 

     include 'HytecFunctions.php'; 
     $conn=connectDB(); 

     $rank = 1; 

     $sql = 'SELECT Name, Score FROM Names ORDER BY Score DESC'; 
     foreach ($conn->query($sql) as $row) { 
      echo '<tr> 
         <td>'.$rank.'</td> 
         <td>'.$row["Name"].'</td> 
         <td>'.$row["Score"].'</td> 
        </tr>'; 
      $rank++; 
     } 

     $conn->close(); 

    ?> 
</table> 

Примечание: Не против много, как я входной ваши $row переменные. Ваш будет работать, даже если вы используете двойной тик (") для отображения строк. Я просто использую один тик ('), чтобы отображать ваши данные, а также иметь более чистый вид вашего кода. Обратитесь к here за разницу.

+0

Возможно, обратите внимание, почему вы добавили цитаты в ключи в '$ row'. Просто так ОП знает. – Marcus

+0

Dang благодарит вас за быстрые и качественные ответы, все это сработало, и мой проект, над которым я работал, теперь завершен. Огромное спасибо!!! –

Смежные вопросы