4

1列目の結果-ファンドの略称を各レコードに関する追加の詳細にハイパーリンクさせたいと思います。どのように進めますか?または、別のクエリが実行される詳細ページへのリンクを呼び出す方がよいでしょうか。それはもう少し静的なようです。

これが私が扱っているクエリの例です。

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("bdcarterascv2", $con);

$COD_PAIS = '3';
$F_HASTACORTE = '2012-03-31 01:00:00';

$result = mysql_query("SELECT mcarteras.DES_CARTERA_CC                 AS 'Short Name of Fund'
     , mcarterasflias.DES_CARTERAFLIA           AS 'I/C'
     , msociedades.DES_SOCIEDAD_CORTO           AS 'Fund Manager Company'
     , mcarteras_clases.DES_CARTERACLASE        AS 'Class'
     , mcarteras_clasesesp.DES_CARTERACLASE_ESP AS 'Special Class'
     , dr_rentmovil_carteras.POR_RENTCARTERA    AS 'TTR year-to-date %'
     , dficha_mes.POR_REMUNERA_COBRADA          AS 'Mgmt Fee Effectively Charged'
     , dficha_mes.POR_GASTOS_TOTALESC           AS 'Total Expenses %'
     , dficha_mes.VR_CARTERA_FCORTE             AS 'Fund Size'

  FROM mcarteras
    INNER
 JOIN mcarterasflias
    ON mcarterasflias.ID_CARTERAFLIA           = mcarteras.ID_CARTERAFLIA
INNER
  JOIN msociedades
    ON msociedades.ID_SOCIEDAD                 = mcarteras.ID_SOCIEDADADM
INNER
  JOIN mcarteras_clases
    ON mcarteras_clases.ID_CARTERACLASE        = mcarteras.ID_CARTERACLASE
INNER
  JOIN mcarteras_clasesesp
    ON mcarteras_clasesesp.ID_CARTERACLASE_ESP = mcarteras.ID_CARTERACLASE_ESP  
INNER
  JOIN dr_rentmovil_carteras
    ON dr_rentmovil_carteras.ID_CARTERA        = mcarteras.ID_CARTERA   
   AND dr_rentmovil_carteras.COD_PAIS                                       = $COD_PAIS
   AND dr_rentmovil_carteras.F_HASTACORTE                                   = '$F_HASTACORTE'
   AND dr_rentmovil_carteras.ID_FORMATO = 1
   AND dr_rentmovil_carteras. ID_COLUMNA = 5
INNER
  JOIN dficha_mes
    ON dficha_mes.ID_CARTERA                   = mcarteras.ID_CARTERA   
   AND dficha_mes.COD_PAIS                                                  = $COD_PAIS
   AND dficha_mes.F_CORTE                                                   = '$F_HASTACORTE'

 WHERE mcarteras.COD_PAIS                                                   = $COD_PAIS
   AND mcarteras.ID_CARTERATIPO = 4
   AND mcarteras.ID_CARTERAFLIA IN ( 3,4 )
   AND mcarteras.IND_PUBLICACION = 1
   AND mcarteras.COD_ESTADO= 1

")
    or die(mysql_error());

// HTML ... Aliases from Mysql
echo "<table border='1'>
<tr>
<th>Short Name of Fund</th>
<th>I/C</th>
<th>Fund Manager Company</th>
<th>Class</th>
<th>Special Class</th>
<th>TTR year-to-date %</th>
<th>Mgmt Fee Effectively Charged</th>
<th>Total Expenses %</th>
<th>Fund Size</th>

</tr>";

//<tr> specifies table row. for each <td> (table data) will specify a new column.  The     $row specifies the mysql column name (in this case using an alias)
while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['Short Name of Fund'] . "</td>";
  echo "<td>" . $row['I/C'] . "</td>";
  echo "<td>" . $row['Fund Manager Company'] . "</td>";
  echo "<td>" . $row['Class'] . "</td>";
  echo "<td>" . $row['Special Class'] . "</td>";
  echo "<td>" . $row['TTR year-to-date %'] . "</td>";
  echo "<td>" . $row['Mgmt Fee Effectively Charged'] . "</td>";
  echo "<td>" . $row['Total Expenses %'] . "</td>";
  echo "<td>" . $row['Fund Size'] . "</td>";

  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>
4

2 に答える 2

1

あなたがすることは、リンクを作成し、それを、最も伝統的には、IDまたはURLセーフ名にマップすることです。

詳細がマスターテーブルと同じ形式ではないことを確認して、追加のページにハイパーリンクします。

selectステートメントにIDを追加するか、以下を短縮名に変更します。

...
echo "<td><a href=\"page.php?id={$row['ID']}\">{$row['Short Name of Fund']}</a></td>";

次にpage.php

SELECT ... WHERE ID = $_GET['ID'];

もちろん、mysql_*一連のコードは非推奨であり、サポートされておらず、評判が悪いため、使用を中止してください。PDOまたはを使用する必要がありますMySQLi

:上記はSQLインジェクションに対して保護されていません。ドライバーをPDOまたはに切り替えてMySQLi、ある程度の安心感を利用してください。

于 2012-08-29T16:50:36.110 に答える
0

もう1つのオプションは、詳細が一般的に短い詳細、基本的には数語、または短い文である場合、いつでもtdタイトルとして印刷できることです。

このように、ユーザーが一部のデータについてもう少し詳細を知る必要がある場合は、マウスをその上に置くだけで、そこにデータが表示されます。

または、より洗練された解決策は、膨大な詳細データの場合、jquerysツールチッププラグインを使用することです。jqueryツールチップは基本的にタイトルタグ内に任意のhtmlコードを表示できます。その美しさは、他のタイトルタグと同じようにtdタイトルを定義することだけです。htmlヘッダーにjquerylibとtooltiplibを含めます。次のような小さなjsコードを使用します。

<script>
$('#tableid td').tooltip();
</script>

cssからツールチップスタイルを編集することもできます。

ここでのデモ:http://jquery.bassistance.de/tooltip/demo/

これに関する唯一の問題は、同じページのツールチップが多すぎる場合、ページの読み込み時間が長くなることです。

于 2012-08-29T16:55:20.883 に答える