【发布时间】:2011-09-11 09:07:15
【问题描述】:
我不知道如何重新发布问题,所以我只想在这里链接我的旧帖子 some item won't echo after putting some condition in php
虽然通过@Shinkou 解决了一些问题,但在我的程序中仍然发现错误。我试图找出导致此问题的原因,但没有找到解决它们的运气。
现在让我告诉你我的程序做了什么。我有 2 个具有不同功能的管理员。 admin 上传文件,并注册新的公司和员工详细信息。他还负责删除未批准或待处理的文件。(这里没有问题 ^_^)第二个是 superadmin 。其目的是查看上传的文件并批准或拒绝上传的文件。 (如您所见,所有关于管理员上传的文件)其他用户是公司帐户。此帐户是在 admin 注册新公司时创建的。其目的只是用于查看哪个文件已被超级管理员批准或拒绝。
我的问题都在 superadmin 和其他 user.but 让我们谈谈 superadmin more.my superadmin 包含 3 个菜单栏(i使用的链接图片在这里工作)->HOME(查看所有接受/拒绝的文件),NEW UPLOAD(查看和接受/拒绝所有待处理的文件)和 LOGOUT。NEWUPLOAD 和 LOGOUT 工作正常,但我的 home 有问题,它会影响其他用户帐户。最后,代码格式是这样的。让我告诉你:
*EmployeeID* *EmployeeName* *Title* *FileDate* *Status* 20132248 Danica 文件8 2001 年 1 月 8 日 已批准 20896647 Jan file7 2000 年 12 月 12 日 未批准 20864125 Keisha 文件2 2000 年 2 月 1 日 批准 16521253 Riorei 文件 2003 年 3 月 20 日 10 月 未批准 文件 3 2002 年 7 月 14 日 批准 //如果你能注意到员工riorei,它包含2个文件,员工姓名和id只会显示一次。这一个也已经排序,你可以注意到我希望。
让我列出我遇到的所有问题以及我在跟踪问题时发现的事情:
- 一个回显问题->如果 riorei 有 2 个上传的文件,file10 和 file3,如果您要在新上传中接受/拒绝第一个文件 10/file3,在我的输出中,名称和id 没有出现(这是我所做的: 我尝试回显我使用的 2 个变量($empid 和 $file_employee 用于 id 和 $empname 和 $file_ename 用于名称)$empname 和 $empid 已初始化首先到“”(我稍后会向您展示代码)在emmployeeid旁边(我只先尝试了id)这是我发现的结果==>应该包含空值的$empid首先已经包含employeeID,其中它应该在下一个循环之后包含它。)但是如果你要接受下一个文件。没关系>。
- 我注意到的另一件事是,有些上传/注册的文件首先会回显名称和 id。就像有些上传的文件正确回显,而有些则没有。
- LIMIT->我在表格中设置了限制,我的意思是,每页(是的,我还创建了页码)只会输出 5 个文件。 但是在我的第 1 页上它只包含 3 个文件,然后下一页包含 1 个文件,依此类推。我什至在下一页上也遇到过类似的情况,没有上传文件,但如果你要按下一个,塔达!文件就在那里。(这就是我所做的:我放了一个计数器来检查它在我的 while 子句中循环了多少次。到我的震惊。它说 5!我不知道这是怎么发生的.)
据我所知,这是我发现的唯一错误。所以让我告诉你我使用的代码:)
<?php
$search = '%';
$fgmembersite->DBLogin();
$limit = 5;
if(isset($_GET['offset'])) {
$offset = mysql_real_escape_string($_GET['offset']);
} else {
$offset = 0;
}
//for namelist a-z
$listname = '%';
If (isset($_GET['namelist']))
{
$listname = $_GET['namelist'];
}
//for search file
if(isset($_POST['searchfile']))
{
$search = $_POST['searchfile'];
}
else if(isset($_GET['searchfile']))
{
$search = $_GET['searchfile'];
}
if($_SESSION[$fgmembersite->GetLoginSessionVar()] == 'sa' OR $_SESSION[$fgmembersite->GetLoginSessionVar()] == 'admin')
{
//$sql="select * from gmdc_employee where employee_name like '%$search%' AND employee_name like '$listname%' ";
$sql="SELECT `e`.* FROM `gmdc_employee` `e` JOIN `gmdc_user` `u` ON ( `u`.`company_id` = `e`.`company_id` ) WHERE (`u`.`company_name` LIKE '%$search%' OR `e`.`employee_name` LIKE '%$search%' OR `e`.`employee_id` LIKE '%$search%') AND `e`.`employee_name` LIKE '$listname%' ";
}
else
{
$sql = "select `e`.* from `gmdc_user` `u`, `gmdc_employee` `e` where `u`.`username` = '".$_SESSION[$fgmembersite->GetLoginSessionVar()]."' and `u`.`company_id` = `e`.`company_id` AND `e`.`employee_name` like '$listname%' AND `e`.`employee_name` like '%$search%'";
}
$query = mysql_query("$sql ORDER BY `e`.`employee_name`, `e`.`confirmation` DESC ,`e`.`file_id` DESC,`e`.`file_date` DESC LIMIT $offset,$limit") or die ( mysql_error () );
$result = mysql_query($sql) or die (mysql_error());
$total = mysql_num_rows($result);
$emp_id = ''; //This will be use to remove employee_id if its already echoed.
$emp_name = ''; //This will be use to remove employee_name if its already echoed.
$count = 0;
if(!$result || mysql_num_rows($result) <= 0)
{
$fgmembersite->HandleError("No file found.");
return false;
}
while ($row = mysql_fetch_assoc($query))
{
$file_id = $row['file_id'];
$file_desc = $row['file_description'];
$file_date = $row['file_date'];
$file_name = $row['file_name'];
$file_accs = $row['folder_access'];
$file_employee = $row['employee_id'];
$file_confir = $row['confirmation'];
$file_ename = ucwords($row['employee_name']);
//$emp_id=$emp_id==$row['employee_id']?"":$row['employee_id'];
//$emp_name=$emp_name==$row['employee_name']?"":$row['employee_name'];
$info = pathinfo($file_name);
$file_ext = $info['extension'];
$count = $count + 1;
echo $count;
if($_SESSION[$fgmembersite->GetLoginSessionVar()] == 'sa')
{
echo '<tr>
<td>
</td>
</tr>
<tr class="subone">
<td class="sub" width="100">
';
if ($file_employee == $emp_id)
{
# do not display the employee's ID and name
}
else
{
# display the employee's ID and name
echo''.$file_employee.'';
}
echo'<br />
</td>';
if($_SESSION[$fgmembersite->GetLoginSessionVar()] == 'sa')
{
?><td class="sub" width="100">
<a href="" onclick = javascript:newPopup('addfile.php?emp=<?php echo $file_employee ?>');>
<?php if ($file_ename == $emp_name)
{
# do not display the employee's ID and name
}
else
{
# display the employee's ID and name
echo''.$file_ename.'';
}?></a>
<br />
</td><?php
}
else
{
echo '<td class="sub" width="182">
';
if ($file_ename == $emp_name)
{
# do not display the employee's ID and name
}
else
{
# display the employee's ID and name
echo''.$file_ename.'';
}
echo'
<br />
</td>';
}
echo'<td class="sub" width="218">
<a href="'.$file_accs.$file_name.'" target="_blank" style="text-decoration: underline;">'.$file_desc.'</a>
<br />
</td>
<td class="sub" width="100">
'.date('M d, Y',mktime(0,0,0,substr($file_date,5,2),substr($file_date,8,2),substr($file_date,0,4))).'
<br />
</td>
<td class="sub" width="100">
'.$file_confir.'
<br />
</td>';
if($_SESSION[$fgmembersite->GetLoginSessionVar()] == 'sa')
{
if($file_confir == 'Pending' OR $file_confir == 'NotApproved')
{
if(isset($_GET['id']))
{
$fgmembersite->Delete_Db($_GET['id']);
}
echo '<td class="sub" width="100">
<a href="index.php?id='.$file_id.'">Delete</a>
<br />
</td>';
}
}
}
else
//THIS IS THE CODES OF MY SUPER ADMIN AND OTHER ACCOUNTS
if($_SESSION[$fgmembersite->GetLoginSessionVar()] != 'sa' && ($file_confir == 'Approved' || $file_confir == 'NotApproved'))
{
echo '<tr>
<td>
</td>
</tr>
<tr class="subone">
<td class="sub" width="100">';
// echo $emp_id.'-'.$file_employee;
if ($file_employee == $emp_id)
{
# do not display the employee's ID and name
}
else
{
# display the employee's ID and name
echo''.$file_employee.'';
}
echo'
<br />
</td>';
echo '<td class="sub" width="182">';
if ($file_ename == $emp_name)
{
# do not display the employee's ID and name
}
else
{
# display the employee's ID and name
echo''.$file_ename.'';
}
echo'
<br />
</td>';
echo'<td class="sub" width="218">
<a href="'.$file_accs.$file_name.'" target="_blank" style="text-decoration: underline;">'.$file_desc.'</a>
<br />
</td>
<td class="sub" width="100">
'.date('M d, Y',mktime(0,0,0,substr($file_date,5,2),substr($file_date,8,2),substr($file_date,0,4))).'
<br />
</td>
<td class="sub" width="100">
'.$file_confir.'
<br />
</td>';
}
$emp_id = $file_employee;
$emp_name = $file_ename;
}?>
<tr>
对不起,如果它太长,只是有些人需要或询问我使用的完整代码,虽然这只是一部分。我希望有人能在这里帮助我。 :(
【问题讨论】:
-
如果这些问题有帮助,请花几分钟时间接受已回答的问题,您的接受率有点低。
-
另外,似乎在那篇很长的帖子中有很多问题交织在一起,是不是可以一次放大一个问题,这会使帖子更短,代码示例更短 -> 和我的朋友,给你更好的答案。
-
@stefgosselin : 对不起,如果它太长 :( 我只是想让别人明白我的问题是什么
-
我很高兴很多人对此投了赞成票,但我很感激有人至少可以回答它甚至分享一些想法:(
-
嘿MisaChan,你昨天看我上一篇文章了吗?似乎 $emp_id = $file_employee; $emp_name = $file_ename;在 while 循环的底部为循环的以下迭代设置 emp_id 和 emp_name。为什么在循环底部分配这些变量?
标签: php html while-loop echo