在 URL 中发送数据以查看所选产品的单一记录
- 从数据库表中选择所有产品
-
在 URL 中使用
details.php?pid=(dynamic value)
发送数据 - 在 URL 中使用 PODS 样式 MySQL 发送 ID
- 在 URL 中了解 PODS 发送数据
- 根据所选产品 ID (Pid) 获取记录
在本文中,我们将讨论如何在 URL 中发送数据以查看所选产品的单条记录。
从数据库表中选择所有产品
下面的代码解释了如何从 MySQL 数据库中获取数据并创建一个 myproducts.php
页面。
<!DOCTYPE html>
<body align='center'>
<head>
<title> View product detail </title>
<link rel="stylesheet" href="style.css">
</head>
<form action="myproducts.php" method="post" align="center">
<input type="submit" name="select" value="Show all products"/>
</form>
<?php
//your database connection
//The database file is included in the tutorial directory
require_once ('db.php');
//On submit
if (isset($_POST['select']))
{
//execute the mysql_query(); query to select all records from the cart table
//You can also find the sql dump file for the tabe in the directory
$response = mysqli_query($connect, 'SELECT * FROM cart');
echo "<table border='2' align='center'>
<H2 align='center'> All Products </h2>
<tr>
<th>ID</th>
<td>Product Name</td>
<td>Price</td>
<td>Quantity</td>
<td>IP Rating</td>
</tr>";
//fetch records and store in the array using mysqli_fetch_array(); function
while ($fetch = mysqli_fetch_array($response));
{
echo "<tr>";
//echo array['index'] that contains product id which is a primary key
//You will use this id later to dynamically retrieve records for the selected id which is now printed in the hyper reference
//we are also using rawurlencode(); function for security which encodes your sensitive id information.
?><td><a href="details.php?pid=<?php echo rawurlencode($fetch['id']); ?> /">
<?php echo $fetch['id']; ?> </a> </td>
<?php
//fetch data from the cart table and create dynamic table in this while loop
echo "<td>" . $fetch['productname'] . "</td>";
echo "<td>" . $fetch['price'] . "</td>";
echo "<td>" . $fetch['quantity'] . "</td>";
echo "<td>" . $fetch['IPrating'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($connect); // close database connection
}
?>
</body>
</html>
输出:
在 URL 中使用 details.php?pid=(dynamic value)
发送数据
我们可以使用任何表属性作为你的 ID,包括字符串。我们可以在 HTML 元素中回显它,然后使用 $_GET['pid'];
方法来检索它。
其余的取决于我们想要如何操作动态 ID 的要求。
<!DOCTYPE html>
<body align='center'>
<a href='myproducts.php'> Main Page </a>
<head>
<title> URL ID FETCH SINGLE RECORD FROM PRODUCTS </title>
<link rel="stylesheet" href="style.css">
</head>
在 URL 中使用 PODS 样式 MySQL 发送 ID
从 myproducts.php
文件中,我们学习了如何执行以下操作:
<a href="details.php?pid=<?php echo rawurlencode($fetch['id']); ?> /">
<?php echo $fetch['id']; ?> </a>
这是 PHP 中用于使 URL 动态化并发送 ID 的最常用方法。
一旦我们创建了动态的超引用,我们就可以使用 $_GET['id'];
并将其存储在变量中。这样,我们可以在这个选定的 ID 上使用任何逻辑。
由于它来自循环结构内,它会在通过 mysqli_fetch_array();
获取数据时更改 ID。
代码(products.php
):
<?php
require "db.php";
//get your id from the URL
$id=$_GET['pid'];
$query="SELECT * FROM cart where id=?";
if($param = $connect->prepare($query))
{
$param->bind_param('i',$id);
$param->execute();
$response = $param->get_result();
$response->num_rows;
$field=$response->fetch_object();
}
?>
在 URL 中了解 PODS 发送数据
这里要注意的最重要的部分是使用 PODS 样式的数据库方法。
检查 SQL 查询。它与我们在 MySQL 中使用的不同,因为它是 PODS。
简而言之,我们使用了 bind_Param();
,这是一个 PHP 函数,可将参数连接到 SQL 查询中的变量标识符。
get_result();
产生了一个数组。因此,每个元素都与查询结果的一行相关联。
fetch_object();
返回结果集的当前行,而 num_rows();
返回结果集中的行数。
<h3 align="center"> Selected product </h3>
<table align='center' border='2'>
<th> Id</th>
<th> Product Name</th>
<th> Price</th>
<th> Quantity</th>
<th> Other</th>
根据所选产品 ID (Pid) 获取记录
在下面的代码中,我们使用了 PODS 结构来获取包含针对 product.php?pid='dynamic id'
的数据的数组索引。
<?php
echo "<tr ><td>$field->id</td>
<td>$field->productname</td>
<td>$field->price</td>
<td>$field->quantity</td>
<td>$field->IPrating</td></tr>
";
echo "</table>";
}else{
echo $connection->error;
}
?>
</body>
</html>
输出:
Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.
LinkedIn