在 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