我想将特定的 Uniq ID 从 MySQL 行传递到另一个 .php 页面。但它仍然需要第 20 条记录并传递最后一个值,而不是仅传递该行中现有的值。 Uniq ID 是由 autoireacment 创建的,并且它对每个 ID 都是特定的,所以如果我单击第 5 行上的链接,我想传递 ID=5。 请问有什么想法吗?
带有mysql表的文件:
session_start();
require "login.php";
$con= mysqli_connect($server, $user, $pass, $db);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM $table");
echo "<table border='1'>
...
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Uniq'] . "</td>";
echo "<td>" . '<a href="invoice/index2.php">Create Invoice</a>';setcookie("test", $row['Uniq'],time()+3600) . "</td>";
echo "<td>" . $row['Date'] . "</td>";
...
}
echo "</table>";
mysqli_close($con);
第二个文件
session_start();
require "../login.php";
echo $_COOKIE["test"];
最佳答案
实际上,您所做的就是在每个新行覆盖 cookie。如果您确实想这样编写代码,我建议您为每个 cookie 指定一个特定的名称:
while($row = mysqli_fetch_assoc($result))
{
echo "<tr>";
echo "<td>" . $row['Uniq'] . "</td>";
echo "<td>" . '<a href="invoice/index2.php">Create Invoice</a>';setcookie("test".$row['Uniq'], $row['Uniq'],time()+3600) . "</td>";
echo "<td>" . $row['Date'] . "</td>";
...
}
但这似乎不太聪明,因为 cookiename 已经显示了 cookie 的值。因此,如果您想将行的值传递到 index2.php 页面,最好使用查询字符串。
while($row = mysqli_fetch_assoc($result))
{
echo "<tr>";
echo "<td>" . $row['Uniq'] . "</td>";
echo "<td>" . '<a href="invoice/index2.php?uniq='.$row['Uniq'].'">Create Invoice</a>'."</td>";
echo "<td>" . $row['Date'] . "</td>";
...
}
//in index2.php
if(isset($_GET['uniq'])) {
$uniq = $_GET['uniq'];
echo 'The ID is: '.$uniq;
}
看看Wikipedia - Query String和 PHP - $_GET了解更多信息。
关于php - 单击链接后从特定 mysql 行传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25459942/