不正确回显和循环错误

时间:2011-06-09 05:39:07

标签: php while-loop echo

这是一个转贴,我会让它尽可能短。 :(但如果你想更多地了解我的问题,请点击我之前发布的帖子:echo problems in PHP

我的问题是,我的程序产生错误的回声结果:

1.大多数时候它没有在第一次被接受时回显名称和id。(如果有2个文件在mariel 1下,而admin接受了第1个(上传的例子在jan1,2010) ,它应该首先回显名称和id,然后如果第二个被接受(2010年2月2日上传)它应该回显上传的最后一个文件,其中最后上传的文件应该包含名称和id,然后第一个上传文件不能包含名称和ID,只能包含详细信息(您可能会看到链接以查看它的外观)。但是我的第一次接受该文件时没有回显。

2.i认为loop.i中有一个错误设置限制为5告诉程序每页只能输出5个数据,但有时每页输出3或1或任何内容(随机) .i使用计数器跟踪它并发现它仍然循环5次,虽然它没有回应某些东西(意思是我/ superadmin不接受或拒绝任何文件)

我知道这是两个不同的问题,有些人可能会因此受到冒犯,但我相信这两个人有点相互关联。我希望有人可以帮助我,我真的找不到它的错误:(< / p>

3 个答案:

答案 0 :(得分:0)

这应该是一个评论,使用问题框可以更好地格式化。

我看了一下,复制了代码并将其加载到我的编辑器中,只是为了看一看。

第31行附近有这个查询:

$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%' ";

当您使用var_dump($ sql)并通过mysql客户端(即phpmyAdmin)运行该查询时,此查询是否返回正确的结果?

答案 1 :(得分:0)

第178和194行的这些td可以大大简化。

   <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 />
               &nbsp;
       </td>';

请改用:

<td class="sub" width="100">';
    if ($file_employee != $emp_id)
    { 
        echo $file_employee;
    }
        echo'
        <br />
        &nbsp;
</td>';

注意如何使用!运算符将语句简化了一半以上。此外,在我看来,你不需要评论说你正在显示$ file_employee,它会不必要地混乱你的代码,因为你正在显示它的echo $ file_employee非常明显。具有良好指示性变量名称的清洁代码应易于阅读,无需多次评论。

如果您需要注释来反映显示的变量,最好重命名变量,以便通过查看它就可以清楚了。我还删除了未使用的注释代码,结果从hard to understand at a quick glance转到fairly intuitive at a glance

我的2美分,如果在第169行,将在几分钟后发布如何调试。

答案 2 :(得分:0)

好的,抱歉有多个答案,但在答案框中格式化更容易。

这一行,169:

if($_SESSION[$fgmembersite->GetLoginSessionVar()] != 'sa' 
&& ($file_confir == 'Approved' || $file_confir == 'NotApproved'))

您的查询会返回所有结果,但这是根据这些条件显示结果集的结果。

  1. 删除if中仅包含第一个条件的条件,如下所示:

    if($_SESSION[$fgmembersite->GetLoginSessionVar()] != 'sa')
    
  2. 使用你的第一个td(空的)来回显$ file_confir的结果

    回声&#39;  &#39; 。 $ file_confir。 &#39;  

    这将表明这些条件是否存在问题。

  3. 如果没有完整的预期结果集,您将知道问题出现在您的条款的第一个条件中:

    $_SESSION[$fgmembersite->GetLoginSessionVar()] != 'sa'
    
  4. 我的猜测是问题可能是$ file_confir的未设置值或者与你在那里的2不匹配的值。只有调试和耐心才能说明。

    好运的朋友。