1

データベースから情報を取得するテーブルがあります... フットボールのスコアテーブルです。

この表には、ロゴ「i」を含む列があり、ホバーするとツールチップポップアップが開き、一致に関する情報が表示されます...

それはそれがどのように見えるかです

ツールチップの外観の例

このツールチップの情報を投稿するに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 でテーブルの TD の間にパディングがあることです。#it td {padding-right: 5px; padding-left: 5px;}

だから私はこれを避けるための解決策が欲しいですか? どうすれば速くできますか?これらすべてのコードを追加せずに。

4

3 に答える 3

2

そのすべての HTML をデータベースに保存するべきではありません。データベースにデータを保存するだけです。私はその言語を理解していないので、何が起こっているのか正確にはわかりませんが、これらの各数値をデータベースの列に格納し、PHP でそれらを照会する必要があります。これらの数値ごとに変数があり、それらを表形式で出力します。以下の行のような単純なものが機能します。

<tr><td> </td>   <td align='right'><?php echo $variable_name; ?></td></tr>
于 2012-06-08T15:37:36.440 に答える
1

これ以上の情報がなければ、具体的にするのは難しいですが、HTMLをデータベースに保存するべきではないというのは正しいことです。代わりに、個々のデータをフィールドとして保存します。データの配列を格納するには、連想テーブルを使用するか、配列をシリアル化してテキストとして格納します(帰りにシリアル化を解除することを忘れないでください!)

$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);

htmlentitiesHTML要素のプロパティ値内にHTMLを格納する場合は、への呼び出しが必要です。

ドキュメンテーション

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

1対多の関係に関するチュートリアル-http://en.tekstenuitleg.net/articles/software/database-design-tutorial/one-to-many.html

于 2012-06-08T15:43:26.610 に答える
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."' />";

明らかに、これは単なる例であり、正確に望ましい結果ではありません。ただし、データから文字列を作成し、それをタイトル属性に配置する方法を示しています。残りの方法をトレーニングできるはずです。

于 2012-06-08T15:40:25.930 に答える