Php 仅从登录用户的db表填充特定链接

Php 仅从登录用户的db表填充特定链接,php,Php,我正在创建一个CRUD应用程序,更新和链接在网页上很好地填充 我试图做的是填充只与登录的用户相关的链接,我不知道如何正确地做到这一点 以下是该网站的链接: 用户:Test1密码:test1234要进入更新页面,您需要单击更新报告 这是我的更新页面: <?php include("includes/session.php"); ?> <?php include("includes/reports_mysql_connect.php"); ?> <?php

我正在创建一个CRUD应用程序,更新和链接在网页上很好地填充

我试图做的是填充只与登录的用户相关的链接,我不知道如何正确地做到这一点

以下是该网站的链接:

用户:Test1密码:test1234要进入更新页面,您需要单击更新报告

这是我的更新页面:

<?php include("includes/session.php"); ?>

<?php include("includes/reports_mysql_connect.php"); ?>
<?php


    $id = $_GET['id'];

    if(!isset($id)){
        $x = mysql_query("SELECT id FROM Reports ORDER BY timedate DESC") or die(mysql_error());
        while($row = mysql_fetch_array($x)){
            $id = $row['id'];
        }
    }

    //step 3: user submits changes, updates DB to show new information
    if(isset($_POST['submit'])){

        $new_sale = $_POST['sale'];
        $new_questiontwo = $_POST['questiontwo'];
        $new_questionthree = $_POST['questionthree'];
        $new_questionfour = $_POST['questionfour'];
        $new_questionfive = $_POST['questionfive'];
        $new_questionsix = $_POST['questionsix'];
        $new_questionseven = $_POST['questionseven'];
        $new_questioneight = $_POST['questioneight'];

        echo "$new_sale | $new_questiontwo" ; 

        mysql_query("UPDATE Reports SET

            sale = '$new_sale',
            questiontwo = '$new_questiontwo',
            questionthree = '$new_questionthree',
            questionfour = '$new_questionfour',
            questionfive = '$new_questionfive',
            questionsix = '$new_questionsix',
            questionseven = '$new_questionseven',
            questioneight = '$new_questioneight'

            WHERE id = '$id' ") or die(mysql_error());
    }


    //step 1: Retrieve data to create links
    $result = mysql_query("SELECT * FROM Reports ") or die(mysql_error());

    while($row = mysql_fetch_array($result)){
        $sale = $row['sale'];
        $questiontwo = $row['questiontwo'];
        $questionthree = $row['questionthree'];
        $questionfour = $row['questionfour'];
        $questionfive = $row['questionfive'];
        $questionsix = $row['questionsix'];
        $questionseven = $row['questionseven'];
        $questioneight = $row['questioneight'];

        //$id = $row['id'];
        //echo $id;

        echo '<div>' . $row['id'] . '<a href="updated-reports.php?id=' . $row['id'] . '">' . $sale . '</a></div>';
    }

    //Step 2: Retrieve Data for selected report only to prepopulated form.

    $result = mysql_query("SELECT * FROM Reports WHERE name='$id'") or die(mysql_error());
    while($row = mysql_fetch_array($result)){

        $thissale = $row['sale'];
        $thisquestiontwo = $row['questiontwo'];
        $thisquestionthree = $row['questionthree'];
        $thisquestionfour = $row['questionfour'];
        $thisquestionfive = $row['questionfive'];
        $thisquestionsix = $row['questionsix'];
        $thisquestionseven = $row['questionseven'];
        $thisquestioneight = $row['questioneight'];

        //$thisid = $row['id'];
        //echo $id;
    }

?>



<?php include("../includes/admin-leads-header.php") ?>

<div class="container">
    <div class="sixteen columns">
         <section class="fifteen columns">
            <div class="general">
                <div class="project-leads">

                    <?php

                        if($session->logged_in){
                        if($session->isAdmin()){
                        }

                        echo "<h3>Hello $session->username</h3>";
                        echo "<h5>Please enter your sales leads reports</h5>";
                    ?>

                    <div class="project-leads-reports">
                        <form name="contactform" id="contactform" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
                            <ul>
                                <li>
                                    <span class="required">*</span>
                                    <label for="name">From: </label>
                                    <input type="text" name="name" id="name" value="<?php echo $session->username?>" />
                                    <span class="error"></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="email">E-mail Address: </label>
                                    <input type="text" name="email" id="email" value="<?php if($form->value("email") == ""){
                                            echo $session->userinfo['email'];
                                        }else{
                                            echo $form->value("email");
                                        }?>" />
                                    <span class="error"></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="boss">Regional Sales Manager E-mail Address:</label>
                                    <input type="text" name="boss" id="boss" value="<?php if($form->value("boss") == ""){
                                            echo $session->userinfo['boss'];
                                        }else{
                                            echo $form->value("boss");
                                        }?>" />
                                    <span class="error"></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="Sales">Sales Lead Subject:</label>
                                    <input type="text" name="sale" id="sale" value="<?php echo trim($thissale);?>" />
                                    <span class="error"></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="questiontwo">When did you followup with the General Contractor?</label>
                                    <textarea name="questiontwo"  id="questiontwo" ><?php echo trim($thisquestiontwo);?></textarea>
                                    <span class="error"><?php echo $strValidationMessage2; ?></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="questionthree">Who is/are the contractors working under the General Contractor?</label>
                                    <textarea name="questionthree" id="questionthree"><?php echo trim($thisquestionthree);?></textarea>
                                    <span class="error"><?php echo $strValidationMessage3; ?></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="questionfour">Did the General Contractor have their own subcontractors, or did we refer our contractor customers to them?</label>
                                    <textarea name="questionfour"  id="questionfour"><?php echo trim($thisquestionfour);?></textarea>
                                    <span class="error"><?php echo $strValidationMessage4; ?></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="questionfive">Can we or did we submit a price?</label>
                                    <textarea name="questionfive" id="questionfive" ><?php echo trim($thisquestionfive);?></textarea>
                                    <span class="error"><?php echo $strValidationMessage5; ?></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="questionsix">Did we win and why did we win or did we lose or why did we lose?</label>
                                    <textarea name="questionsix" id="questionsix" ><?php echo trim($thisquestionsix);?></textarea>
                                    <span class="error"><?php echo $strValidationMessage6; ?></span>
                                </li>
                                <li>
                                    <span class="required">*</span>
                                    <label for="questionseven">What is being done to progress any sales forward with this Project Lead?</label>
                                    <textarea name="questionseven" id="questionseven" ><?php echo trim($thisquestionseven);?></textarea>
                                    <span class="error"><?php echo $strValidationMessage7; ?></span>
                                </li>
                                <li>
                                    <span class="required"></span>
                                    <label for="questioneight">Did you know about this project before it was assigned and or any additional comments?</label>
                                    <textarea name="questioneight"  id="questioneight"><?php echo trim($thisquestioneight);?></textarea>
                                    <span class="error"></span>
                                </li>
                                <li>
                                    <input type="submit" name="submit" id="submit" value="Submit" />
                                </li>
                            </ul>
                        </form>
                    </div><!--end of project lead reports -->   


                <?php }?>



                </div><!--end of project-leads-->
            </div><!--end of general-->
        </section>
    </div> 
</div>


<?php include("../includes/admin_footer.php") ?>


看起来这两个表之间唯一相似的列是email。基本上,如果您希望为某个用户提供所有报告,则每个报告必须与某个用户相关(即,报告中的电子邮件列必须等于用户中的特定电子邮件)。您需要有用户的电子邮件(很可能来自会话)来修改您的查询:

'SELECT * FROM Reports WHERE email = ' . $_SESSION['email']
然而,这并不是最好的解决方案。如果您能够,并且每个报告都属于特定的用户,我会将列userid添加到reports表中。然后可以运行如下查询:

'SELECT * FROM Reports WHERE userid = ' . $_SESSION['userid']
谢谢


Andrew

是的,你可以添加列,但是你必须为每个报表的列填充一个用户ID。如果是这样的话,这是将来必须执行的吗?我有一个非常愚蠢的问题,我应该在哪里执行这个where子句?你需要确保每个报表都有一个特定的用户ID绑定到它,否则就无法将它们限制在特定的用户。没有加入更新的方法;您必须运行两个更新查询。如果我要确保每个报表都有一个特定的用户id绑定到它,那么每次我都必须手动进入并输入id?