2012-06-08 73 views
1

我有一個表從數據庫中得到它的信息......它的一個足球比分表。有沒有更好的方式來合併數據和HTML標記

此表

我有包含標識列的「i」,當我懸停它打開一個彈出提示並給出了有關比賽的信息...

這是它的外觀

Example of how my tooltip looks

發佈此提示信息我使用img標記的title屬性,在標題中我使用代碼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;}

所以我想要一個解決方案,以避免這樣做?我怎麼能做到這一點?不添加所有這些代碼。

+0

你可以'json_encode()',然後'json_decode()'它的輸出。 – Bojangles

+0

你想避免在表格中寫入HTML,或者...? –

+0

是的,即時通訊確保它保存在數據庫中,因爲我有一個腳本來發布/編輯數據庫的數據我的問題是避免編寫所有這些代碼以某種方式寫下這幾行與匹配的地方,每個團隊在一邊 – Peeps

回答

2

您不應該將所有HTML存儲在數據庫中。僅將數據存儲在數據庫中。我不確定發生了什麼事情,因爲我不懂那種語言,但是你應該將每個數字都存儲在數據庫的一列中,並用PHP查詢它們。您將爲每個數字都設置一個變量,然後以表格格式打印出來。像下面一行一樣簡單的工作將會起作用:

<tr><td> </td> <td align='right'><?php echo $variable_name; ?></td></tr> 
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中。你應該能夠鍛鍊剩下的事情。

1

沒有更多的信息,它很難具體,但你是對的,你不應該存儲在數據庫中的HTML。相反,將各個數據段存儲爲字段。爲了存儲數據的數組,你可以使用associative table,或serialize陣列,並將其存儲爲文本(不要忘記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); 

htmlentities的調用是,如果你要保存的HTML的屬性值中必要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

教程上一個一對多的關係 - http://en.tekstenuitleg.net/articles/software/database-design-tutorial/one-to-many.html

相關問題