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