有没有更好的方法来合并数据和HTML标记

时间:2012-06-08 15:34:07

标签: php html

我有一张桌子可以从数据库获取信息......这是一张足球比分表。

在此表中,我有一个包含徽标“i”的列,当我悬停时,打开工具提示弹出窗口并提供有关匹配的信息......

它的外观如何

Example of how my tooltip looks

所以要发布此工具提示的信息我正在使用title标记的img属性,而在标题中我有这个代码title="<?php echo $row['InfoData'].""; ?>"来获取数据。

在数据库中写作

Arena AufSchalke, Gelsenkirchen<br><br>
<table id='it'>
<tr><td>8' Klose</td>      <td align='right'>Arnautovic 42'</td></tr>
<tr><td>23', 47' Özil</td> <td align='right'>Harnik 51'</td></tr>
<tr><td>28' Podolski</td>  <td align='right'> </td></tr>
</table>

我的问题是每次我想填写数据库中的信息我必须再次编写所有这些html代码并将右边的一个对齐,并且在css中我在表格的{{1}之间填充}

所以我想要一个避免这样做的解决方案?我怎么能快速做到?没有添加所有这些代码。

3 个答案:

答案 0 :(得分:2)

您不应该将所有HTML存储在数据库中。仅将数据存储在数据库中。我不确定到底发生了什么,因为我不理解那种语言,但你应该将这些数字存储在数据库的一列中,并在PHP中查询它们。您将为每个数字都有一个变量,然后以表格格式打印出来。像下面一行这样简单的东西就可以了:

<tr><td> </td>   <td align='right'><?php echo $variable_name; ?></td></tr>

答案 1 :(得分:1)

有一张桌子,列出每场比赛得分的球员。然后运行查询以获取这些玩家,在php中构建字符串,然后将其放在标题中。

$string = "<table>";

$r = mysql_query("SELECT * FROM scorers WHERE game=$game_id");
while($a = mysql_fetch_assoc($r)) {
   $string .= "<tr><td>".$a['player_name']."</td></tr>";
}

$string .= "</table>";

echo "<img src='x' title='".$string."' />";

显然,这只是一个例子,并不完全是理想的结果。但它显示了如何从数据构建一个字符串,然后将其放在标题attrib中。你应该能够锻炼如何做其余的事。

答案 2 :(得分:1)

如果没有更多信息,很难具体,但你不应该将HTML存储在数据库中。而是将各个数据存储为字段。要存储数据数组,您可以使用associative tableserialize数组并将其存储为文本(在退回的路上不要忘记unserialize!)

假设您的$row值看起来像这样:

    array(
        'InfoName'=>'Astana Arena, Astana',
        'InfoList'=>array(
            'Klose 48\'',
            'Gómez 76\'',
            'Podolski 85\''
        )
    )

您的代码看起来像这样:

        $html = $row['InfoName'];
        $html .= '<br><br><table>';
        foreach ($row['InfoList'] as $r) {
            $html .= '
                <tr>
                    <td>&nbsp;</td>
                    <td align="right">'.$r.'</td>
                </tr>
            ';
        }
        $html .= '</table>';
        echo htmlentities($$html);

如果您要将HTML存储在HTML元素的属性值中,则必须调用htmlentities

<强>文档

PHP的htmlentities - http://us3.php.net/manual/en/function.htmlentities.php

PHP的foreach - http://us3.php.net/manual/en/control-structures.foreach.php

PHP的serialize - http://php.net/manual/en/function.serialize.php

PHP的unserialize - http://php.net/manual/en/function.unserialize.php

关于一对多关系的教程 - http://en.tekstenuitleg.net/articles/software/database-design-tutorial/one-to-many.html