将特定变量从while循环传递到另一个PHP文件

时间:2016-12-16 11:28:34

标签: php html loops variables crud

只是为了创建一些上下文:我是一个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',这个变量的传递需要从用户隐藏。

1 个答案:

答案 0 :(得分:1)

使用session是错误的答案,并且每次循环时都会覆盖会话值,最好的解决方案是使用查询字符串,因此删除链接应该是这样的

$addressId = $_GET['id'];

然后在另一个文件中,您使用

读取地址ID
{{1}}