【问题标题】:echo problems in PHPPHP中的回声问题
【发布时间】: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(查看和接受/拒绝所有待处理的文件)和 LOGOUTNEWUPLOAD 和 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只会显示一次。这一个也已经排序,你可以注意到我希望。

让我列出我遇到的所有问题以及我在跟踪问题时发现的事情:

  1. 一个回显问题->如果 riorei 有 2 个上传的文件,file10 和 file3,如果您要在新上传中接受/拒绝第一个文件 10/file3,在我的输出中,名称和id 没有出现(这是我所做的: 我尝试回显我使用的 2 个变量($empid 和 $file_employee 用于 id 和 $empname 和 $file_ename 用于名称)$empname 和 $empid 已初始化首先到“”(我稍后会向您展示代码)在emmployeeid旁边(我只先尝试了id)这是我发现的结果==>应该包含空值的$empid首先已经包含employeeID,其中它应该在下一个循环之后包含它。)但是如果你要接受下一个文件。没关系>。
  2. 我注意到的另一件事是,有些上传/注册的文件首先会回显名称和 id。就像有些上传的文件正确回显,而有些则没有。
  3. 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>
                                        &nbsp; 
                                    </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 />
                                        &nbsp;
                                    </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 />
                                        &nbsp;
                                    </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 />
                                            &nbsp;
                                            </td>';
                                        }


                                    echo'<td  class="sub" width="218">
                                        <a href="'.$file_accs.$file_name.'" target="_blank" style="text-decoration: underline;">'.$file_desc.'</a>
                                        <br />
                                        &nbsp;
                                    </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 />
                                        &nbsp;
                                    </td>
                                    <td  class="sub" width="100">   
                                                '.$file_confir.'                
                                    <br />
                                            &nbsp;
                                            </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 />
                                                &nbsp;
                                                </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>
                                                    &nbsp; 
                                                </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 />
                                                    &nbsp;
                                            </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 />
                                                            &nbsp;
                                                            </td>';

                                            echo'<td  class="sub" width="218">
                                                <a href="'.$file_accs.$file_name.'" target="_blank" style="text-decoration: underline;">'.$file_desc.'</a>
                                                <br />
                                                &nbsp;
                                            </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 />
                                                &nbsp;
                                            </td>

                                            <td  class="sub" width="100">   
                                                '.$file_confir.'                
                                                <br />
                                                &nbsp;
                                            </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


【解决方案1】:

我终于发现了我的问题出了什么问题。虽然我的代码变得比以往任何时候都长。

这就是我所做的,我为我的条件“待定”、“未批准”和“已批准”添加了新查询,实际上它是相同的查询,我只是添加了 AND e.confirmation LIKE 'Pending ' 在新的上传页面和 AND e.confirmation LIKE 'Accepted' OR e.confirmation LIKE 'NotAccepted'(请注意,我将它与查询放在一起并创建了 $sql2、$query2、$total2 和 $result2,因为我有 1 个页码代码,所以我也已经修复了)

同时,我没有先有 WHILE 再有 If 语句,而是将其颠倒过来。并且已经完成了 2 次。

你可以检查我的代码并应用这个:)

感谢@stefgosselin 没有让我失望,感谢“唯一”以某种方式帮助我的人。我现在刚刚尝试过,我现在需要做的就是更正我的订单。谢谢。希望这可以帮助其他有同样问题的人。

【讨论】:

  • 嘿,很高兴看到你让它工作了!不要忘记投票并接受有帮助的答案,如果有的话,在我的朋友身边见。