2013-06-18 2 views
0

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

КОД:

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

$template = file_get_contents("main.tpl.php"); 

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

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

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

$template = str_replace("%%header%%", "<tr><th>". $cName ."</tr></th>", $template); 
$template = str_replace("%%data%%", "<tr><td>". $cValue ."</tr></td>", $template); 

echo $template; 

?> 

и в моем HTML-файл у меня есть

<table> 
    %%header%% 
    %%data%% 
</table> 

результат я получаю:

IDAlbumBandStijlMediumDatumPrijsIDAlbumBandStijlMediumDatumPrijs 
1TestTestereRockLP2013-06-1202TestTestereRockLP2013-06-1213 

, но я хочу, чтобы это было как:

ID Album Band Stijl Medium Datum   Prijs 
1 Test Test Rock LP  2013-06-1202 €10 
2 Test Test Rock LP  2013-06-1202 €10 
+0

и как выглядит сгенерированный html? –

+0

Посмотрите на значения $ cName и $ cValue, прежде чем использовать str_replace(). –

ответ

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

должен быть

$i=0; 
$values = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    foreach ($row as $key => $value) { 
     $values[$key][$i] = $value; 
    } 
    $i++; 
} 
reset($arr); 
foreach(current($arr) as $key => $value){ 
    $cName .= "<th>" . $key . "</th>"; 
} 
while ($curr_row = current($arr)) { 
    $cValue .= "<tr>"; 
    while (false !== ($curr_field = current($curr_row))) { 
     $cValue .= "<td>" . $columnValue . "</td>"; 
     next($curr_row); 
    } 
    next($arr); 
    $cValue .= "<\tr>"; 
} 

это модифицированная версия функций, предусмотренных в комментариях (функция mysql_fetch_assoc) [http://www.php.net/manual/en/ function.mysql-выборки-assoc.php] и

$template = str_replace("%%header%%", "<tr><th>". $cName ."</tr></th>", $template); 
$template = str_replace("%%data%%", "<tr><td>". $cValue ."</tr></td>", $template); 

должно быть

$template = str_replace("%%header%%", "<tr>". $cName ."</tr>", $template); 
$template = str_replace("%%data%%", "<tr>". $cValue ."</tr>", $template); 

Это потому, что каждой колонии требуется отдельный td или th тег.

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