我可以使用下面的代码显示我的表格中的内容,但正如您在代码中看到的那样,我将行链接到新页面,并且在该页面上我试图显示其余的行,我在同一张表中。
我的意思是,表格中有cols ID, photo, Firstname, Lastname, Age, StreetAdd, PhoneNum, EmailAdd
。我在第一页上只显示行photo, Firstname, Lastname
。
所以我要做的是当用户点击我从数据库显示的名字时,他将被重定向到新页面并查看其余信息。我该怎么做?
这是显示三个列的PHP页面。我可以在新页面上显示其余的cols,但它会显示行中的所有信息。我想显示每个用户的个人信息,而不是整个列表。一个可能的例子是eBay。当您搜索项目时,在您单击图片或标题之前,您将看不到完整的描述。
<?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("simple_login", $con);
$result = mysql_query("SELECT * FROM test ");
echo "<table align='center' bgcolor='#F9F0F0' border='0' cellspacing='0'>
<tr>
<th><font color='red'>Firstname</font></th>
</tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td><a href='send.php'><img src='".$row['photo']."' \" width=\"150px\" height=\"150px\" /></a><br><br><br>";
echo "<a href='send.php'><td align='center' style='vertical-align:text-top' width='200px'>" . $row['Firstname'] . "</td>";
echo "<td align='center' style='vertical-align:text-top' width='200px'>" . $row['Lastname'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
答案 0 :(得分:3)
您已在文本级元素a
中放置了块级元素td
,其中显示了第一个名称的单元格。你也没有在那里关闭a
标签。这是正确的形式。
echo "<td align='center' style='vertical-align:text-top' width='200px'>";
echo "<a href='send.php'>" . $row['Firstname'] . "</a></td>";
要在send.php
上获取相同的用户生物,您需要传递此行的主键。例如,如果主键为id
,则在查询字符串中传递send.php
。
echo "<a href='send.php?id=".$row['id']."'>" . $row['Firstname'] . "</a></td>";
现在在send.php
使用$_GET['id']
获取主键并使用它从db检索用户bio。
但是确保您转义传递给sql数据库的参数。不要直接使用这些变量!请参阅Nullpointer的answer
当您获得行的主键时,只需使用 SELECT *
LIMIT 1
$pkey = mysql_real_escape_string($_GET['id']);
$sql = "SELECT * FROM test where id='$pkey' LIMIT 1";
/* Run this sql */
答案 1 :(得分:1)
显示您可以在查询结束时使用的每个用户的个人信息,例如
SELECT * FROM test WHERE user = bla
您的代码容易受到sql injection攻击,您需要撤消所有get
和post
,更好的方法是使用Prepared statement
好读
ext/mysql
PHP扩展程序(提供名为mysql_的所有函数)为officially deprecated as of PHP v5.5.0,将来会被删除。因此,请使用PDO
或MySQLi
好读
答案 2 :(得分:0)
这应该是你的第一页
<?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("simple_login", $con);
$result = mysql_query("SELECT * FROM test ");
echo "<table align='center' bgcolor='#F9F0F0' border='0' cellspacing='0'>
<tr>
<th><font color='red'>Firstname</font></th>
</tr>";
while($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td><a href='send.php'><img src='".$row['photo']."' \" width=\"150px\" height=\"150px\" /></a><br><br><br>";
echo "<a href='send.php?".$row['id']."'><td align='center' style='vertical-align:text-top' width='200px'>" . $row['Firstname'] . "</td>";
echo "<td align='center' style='vertical-align:text-top' width='200px'>" . $row['Lastname'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
现在send.php应该是
<?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("simple_login", $con);
$sql = "SELECT * FROM test where id = " . $_Get['id'] ;
$result = mysql_query($sql);
//then display the result here
?>
希望这会有所帮助