我希望第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);
?>
答案 0 :(得分:1)
您要做的是,创建一个链接并将其映射到,最常见的是ID或网址安全名称。
我会将其超链接到其他页面,因为我确定详细信息的格式与主表格的格式不同。
在您的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
并使用一些安全感。
答案 1 :(得分:0)
另一个选择是,如果您的详细信息通常是简短的细节,基本上是几个单词或短句,您可以随时将它们打印为td标题。
这样一来,如果用户需要知道关于某些数据的更多细节,他只会将鼠标悬停在它上面,并将它放在那里。
或者更优雅的解决方案是使用jquerys工具提示插件,以防万一细节数据。 Jquery工具提示基本上可以显示标题标签中的任何html代码,它的优点是你要做的唯一事情就是定义一个td标题,就像任何其他标题标签一样,在html标题中包含jquery lib和tooltip lib,并使用像这样的小js代码:
<script>
$('#tableid td').tooltip();
</script>
您甚至可以从css编辑工具提示样式。
演示:http://jquery.bassistance.de/tooltip/demo/
唯一的问题是,如果您想在同一页面上使用太多工具提示,那么您的页面加载时间就会增加。