[英]MySQL link to return results
我有一个从表中显示的图像,我希望用户能够单击该图像将其定向到一个页面,该页面返回该行的其余数据。 我需要一个php循环吗? 我不太清楚。 这将返回姓,名和图像:
<?php
if (isset($_GET['LastName'])) {
$ln = $_GET['LastName'];
}
include 'connection.php';
$query = "SELECT * FROM residents WHERE LastName like '$ln%' ";
$result = mysql_query($query);
while($person = mysql_fetch_array($result)) { ?>
<div class="media col-sm-4">
<a class="pull-left" href="redirectionpage.php?<?php echo $person['ID'];?>.php">
<img class="media-object" src="upload/<?php echo $person['Picture'];?>" width="100" height="100"/>
</a>
<div class="media-body">
<h4 class="media-heading"><?php echo $person['LastName'] . ", " . $person['FirstName']; ?></h4>
</div>
</div>
<?php }>?
通过将用户重定向到新页面并使用mysql语句显示新数据来实现此目的的最佳方法是吗?
这是另一页的代码:
<?php
//Gets data from the database
include ('header.php');
include ('footer.php');
include ('connection.php');
$query = "SELECT * FROM residents WHERE ID = LastName LIMIT 1";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$outputpicture.='<div><p><img src="upload/' . $row['Picture'].'" width="450" height="550"/></p></div>';
$outputname.= $row['LastName'] . ", " . $row['FirstName']. '<br />';
$outputspouse.= $row['Spouse']. '<br />';
$outputrelatives.= $row['Relatives']. '<br />';
$outputaddress.= $row['Address']. '<br />';
$outputbirthday.= $row['Birthday']. '<br />';
$outputbegan.= $row['BeganResidence']. '<br />';
$outputended.= $row['EndedResidence']. '<br />';
$outputformer.= $row['FormerResidence']. '<br />';
$outputcareer.= $row['Career']. '<br />';
$outputeducation.= $row['Education']. '<br />';
$outputmaritalstatus.= $row['MaritalStatus']. '<br />';
$outputsiblings.= $row['Siblings']. '<br />';
$outputspecialinterests.= $row['SpecialInterests'].'<br />';
}
?>
链接需要更改为
<a class="pull-left" href="redirectionpage.php?id=<?php echo $person['ID'];?>">
添加此id=
将允许您通过$_GET
超全局变量访问redirectionpage.php
的id参数。
$id = $_GET['id'];
您可以使用$id
变量从数据库中选择指定的行。 您将看到很多这样做的示例:
$query = "SELECT * FROM residents WHERE ID = $id";
这可行,但您不应该这样做,因为它会创建SQL注入漏洞。 阅读有关准备好的语句并创建SQL的信息,以便您可以将ID作为参数传递。
$stmt = $pdo->prepare("SELECT * FROM residents WHERE ID = :id");
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->execute();
这也应应用于您用于选择图像列表的代码。
假设ID是您的居民表的键,则应该只选择一个记录,因此您不需要while循环。 您可以只使用一次访存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.