只是为了创建一些上下文:我是一个PHP菜鸟。我正在为电子商务网站创建一个帐户系统,其中“帐户”可以与1个或多个“地址”相关联。我希望用户能够添加,更新和删除地址,并且我正在努力处理后两个函数,因为我无法弄清楚如何通过while循环传递特定变量。
这就是我的意思:
while ($row = mysqli_fetch_array($result)) {
//address data variables
$addrId = $row['id'];
$accId = $row['account_id'];
$addrName = $row['full_name'];
$addr1 = $row['address1'];
$addr2 = $row['address2'];
$townCity = $row['towncity'];
$countyState = $row['countystate'];
$postZip = $row['postzip'];
$country = $row['country'];
$phone = $row['phone'];
//$count++;
//$_SESSION['address']=array();
$_SESSION['address'] = $addrId;
?>
<div class="addrWrapper">
<div class ="large-3 columns callout row">
<?php
echo $addrId."</br>";
echo $accId."</br>";
echo $addrName."</br>";
echo $addr1."</br>";
echo $addr2."</br>";
echo $townCity."</br>";
echo $countyState."</br>";
echo $postZip."</br>";
echo $country."</br>";
echo $phone."</br>";
//echo $count;
?>
<div class ="large-3 columns">
<a href="PHP/backend/account/addressDelete.php" class="button">Delete</a>
</div>
以上是前端,实际上我不会向用户显示所有这些信息,只是为了测试。
<?php
session_start();
//require_once('config.php');
$dbserver = "localhost";
$dbusername = "root";
$dbpassword = "";
$db = "TheNameHere";
$conn = new mysqli($dbserver, $dbusername, $dbpassword, $db);
//Check connection
if ($conn->connect_error){
die("connection failed".$conn->connect_error);
}
$address = $_SESSION['address'];
//$query1=mysqli_query($conn,"DELETE FROM useraddress WHERE id = $addrId");
echo $address;
//header("Location: ../../../index.php?page=address");
die();
?>
这是用于删除正在调试的地址的脚本。基本上,当单击其中一个地址旁边的“删除”按钮时,它将始终传递具有最大“id”的地址变量(显然,因为有一个会话并且每次循环播放时它都会更新,总是会产生在'$ address'是列表中的最终地址。)
我已经连续几天回到这里了,我已经尝试了很多不同的解决方案,我得出的结论是,我可能需要以不同的方式构建它我做完了。
任何指针都将非常感激。
PS。由于安全问题,我不想通过URL传递地址'id',这个变量的传递需要从用户隐藏。
答案 0 :(得分:1)
使用session是错误的答案,并且每次循环时都会覆盖会话值,最好的解决方案是使用查询字符串,因此删除链接应该是这样的
$addressId = $_GET['id'];
然后在另一个文件中,您使用
读取地址ID{{1}}