2013-06-18 5 views
0

У меня есть следующий код, но он не работает, как будто я хочу, чтобы он работал. Я просто хочу, чтобы заголовок таблицы отображался один раз, но теперь он каждый раз повторяет заголовок. И я хочу, чтобы заголовок таблицы был горизонтальным, но теперь он вертикально.HTML-таблица в PHP

код:

<?php 
include ("core/db_connectie.php"); 

//file_get_contents("main.tpl.php"); 

$query = "SELECT * FROM platen"; 
$result = mysql_query($query) or die (mysql_error()); 

$table = "<table>"; 

$cName = ""; 
$cValue = ""; 

while($row = mysql_fetch_assoc($result)) 
{ 
    foreach($row as $columnName=>$columnValue) 
    { 
     $cName .= $columnName; 
     $cValue .= $columnValue; 
    } 
} 

$table .= "<tr><th>". $cName ."</th></tr>"; 
$table .= "<tr><td>". $cValue ."</td></tr>"; 

$table .= "</table>"; 

echo $table; 

EDIT:

Я изменил код, но он по-прежнему не работает, теперь он просто вставить все после Афоризм

Пример:

IDAlbumBandStijlMediumDatumPrijsIDAlbumBandStijlMediumDatumPrijs 
1TestTestereRockLP2013-06-1202TestTestereRockLP2013-06-1213 
+0

$ таблица. = "". $ columnName. ""; находится в цикле. Вы должны положить его вне – bksi

+0

Ye, но если я сделаю это, я больше не могу использовать $ columName – user2118839

+0

Конечно. Сначала вам нужно было получить имена столбцов, если вы хотите поместить их один раз перед циклом – bksi

ответ

0

Вы разместили заголовок таблицы ta g внутри цикла foreach. поместите его, и все будет хорошо.

$ table. = "". $ columnName. ""; (поместите это из петли foreach)

+0

Таким образом, у него не было имени столбца – bksi

+0

Я не могу поместить $ columnName из цикла foreach потому что я определяю его в цикле foreach – user2118839

0

Вам просто нужно поместить код, который отображает заголовки вне цикла, иначе он будет повторяться на каждой итерации. Я не знаю, какой формат ваших данных, простое решение будет использовать два цикл, хотя я уверен, что вы можете найти лучший способ:

while($row = mysql_fetch_assoc($result)) 
{ 
    foreach($row as $columnName=>$columnValue) 
    { 
     $table .= "<tr><th>" . $columnName . "</th></tr>"; 
    } 
    foreach($row as $columnName=>$columnValue) 
    { 
     $table .= "<tr><td>" . $columnValue . "</td></tr>"; 
    } 
} 
0

Вы просто хотите заголовок в первой строке, поэтому вы должны помнить, если вы написали заголовок еще:

<?php 
include ("core/db_connectie.php"); 

$query = "SELECT * FROM platen"; 
$result = mysql_query($query); 

$table = "<table>"; 

$headerWritten = false; 
while($row = mysql_fetch_assoc($result)) 
{ 
    foreach($row as $columnName=>$columnValue) 
    { 
     if(!$headerWritten) { 
      $table .= "<tr><th>" . $columnName . "</th></tr>"; 
     } 
     $table .= "<tr><td>" . $columnValue . "</td></tr>"; 
    } 
    $headerWritten = true; 
} 

$table .= "</table>"; 

echo $table; 
?> 

Это самый простой способ сделать это.

+0

add $ headerWritten = true в выражении if. В другом месте это станет более новым – bksi

+0

Если я попробую это, он выводит только 1 заголовок – user2118839

+0

$ headerWritten = true; должен был быть в конце внешнего цикла. – Cromax

0

в то время как ($ строка = mysql_fetch_assoc ($ результат)) {

foreach($row as $columnName=>$columnValue) 
    { 
     $table .= "<tr><th>" . $columnName . "</th>"; 
     $table .= "<td>" . $columnValue . "</td></tr>"; 
    } 

}

Брюс
https://www.facebook.com/blanct.timeline?ref=br_tf

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