[英]Retrieve search results | PHP & SQL
我创建了一个表格,其中包含所有必填字段,例如(ID,名称,姓氏等)
在搜索PHP文件中,当您键入ID时,它将显示与该ID相对应的所有信息,例如(ID = 1,name = Jack)
我的想法:当我进行自定义搜索时,我想在php内添加指向另一个php文件的链接,该链接显示相同的搜索结果,但带有其他信息。
问题:如何从其他php文件调用自定义搜索结果?
关于此示例,如果我搜索ID = 2,我想链接到另一个php文件“ Extrainfo.php”,该文件显示了该自定义搜索的更多信息。
这是我使用的代码:
//database connection
global $conn;
$servername = "localhost"; //host name
$username = "root"; //username
$password = ""; //password
$mysql_database = "info"; //database name
//mysqli prepared statement
$conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error());
mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong");
if(isset($_GET['idNumber']))
{
$IDNUMBER =$_GET['idNumber'];
$stmt = $conn->prepare("select * from madea where idNumber=? ");
$stmt->bind_param('s',$IDNUMBER);
$stmt->execute();
$val = $stmt->get_result();
$row_count= $val->num_rows;
if($row_count>0)
{
$result =$val->fetch_assoc();
echo $result['idNumber'];
echo $result['name'];
}
else
{
echo "identification_number not Match";
}
$stmt->close();
$conn->close();
// Probably need to save the variable to call in the other php file?
$idNumber = $result['idNumber'];
}
?>
<a href="extrainfo.php">Extrainfo</a>
这就是我可以告诉你的。
您第一个PHP,
if(isset($_GET['idNumber']))
{
$IDNUMBER =$_GET['idNumber'];
$stmt = $conn->prepare("select * from madea where idNumber=? ");
$stmt->bind_param('s',$IDNUMBER);
$stmt->execute();
$val = $stmt->get_result();
$row_count= $val->num_rows;
if($row_count>0)
{
$result =$val->fetch_assoc();
echo $result['idNumber'];
echo $result['name'];
echo "<a href="#" id=".$result['idNumber']." class="moreInfo">More Info</a>";
}
else
{
echo "identification_number not Match";
}
$stmt->close();
$conn->close();
// Probably need to save the variable to call in the other php file?
$idNumber = $result['idNumber'];
}
现在,我正在使用AJAX和Jquery,因此请链接适当的库。
<script type="text/javascript">
$(document).ready(function(){
$(document).on('click', '.moreInfo', function(){
$.ajax({
url: 'moreInfo.php',
type: 'post',
data: {
'idNumber': $('.moreInfo').prop('id')
}
}).then(function (response) {
$('#morInfoDiv').html(response);
});
})
})
</script>
moreInfo.php,
if(isset($_POST['idNumber']))
{
$IDNUMBER =$_GET['idNumber'];
$stmt = $conn->prepare("select * from madea where idNumber=? ");
$stmt->bind_param('s',$IDNUMBER);
$stmt->execute();
$val = $stmt->get_result();
$row_count= $val->num_rows;
if($row_count>0)
{?>
Name:<? echo $result['Name']; ?><br>
Address:<? echo $result['address']; ?><br>
Date of Birth:<? echo $result['dob']; ?><br>
<?php }
else
{
echo "identification_number not Match";
}
$stmt->close();
$conn->close();
}
现在在您的第一个php文件中可以有一个DIV
,该DIV
将显示来自moreInfo.php的响应
<html>
<body>
<div id="morInfoDiv"></div>
</body>
</html>
AJAX脚本将以post方法发送数据,然后捕获第二个PHP的响应文本,并将其添加到ID为“ moreInfo”的DIV
。
好吧,我终于用另一种方式做到了。
result.php仅添加了一个href,该href重定向到moreinfo.php,但带有ID号的查询字符串。
<a href="moreinfo.php?idNumber=<?php echo $idNumber?>" class="moreInfo" id="<?php echo $result['idNumber']; ?>" target="_blank">Download PDF INFO</a>
这是moreinfo.php中代码的另一部分
首先,获取先前由链接重定向的查询字符串上的ID号,并将其放入变量以在sql查询中使用
$reportNumber = $_GET['idNumber'];
$result = mysqli_query($con,"SELECT * FROM madea where reportNumber='".$idNumber."'");
其余的仅显示结果,我真正需要的是:
while($row = mysqli_fetch_array($result))
{
$html .= '<td>'.$row['idNumber'].'</td><td>' . $row['Name']. '</td>';
}
希望它有助于进一步解决问题。 非常感谢所有帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.