仅从登录用户的数据库表中填充特定链接


populating specific links from db table of logged in users only

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

正在尝试做的是填充仅与登录用户相关的链接,我不确定如何正确执行此操作。

这是网站的链接:

http://consolidatedgypsum.ca/cgs-new-site/admin/project-leads/index.php 用户: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") ?>

下面分别是报表和用户的表结构。

有效的 XHTML http://consolidatedgypsum.ca/cgs-new-site/admin/project-leads/users.png。http://consolidatedgypsum.ca/cgs-new-site/admin/project-leads/users.png

有效的 XHTML http://consolidatedgypsum.ca/cgs-new-site/admin/project-leads/Reports.png。http://consolidatedgypsum.ca/cgs-new-site/admin/project-leads/Reports.png

提前感谢!

看起来两个表之间唯一相似的列是电子邮件。从本质上讲,如果您想要某个用户的所有报告,那么每个报告都必须与某个用户相关(即,报告中的电子邮件列必须等于用户中的特定电子邮件)。您需要收到用户的电子邮件(很可能来自会话)才能修改查询:

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

但是,这不是最好的解决方案。如果您可以并且每个报告都属于特定用户,我会将列 userid 添加到报告表中。然后,您可以运行如下查询:

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

谢谢

安德鲁