结合2循环结果

时间:2016-12-14 11:33:12

标签: php while-loop

我们有 2 while循环,我们正在显示 2个不同的结果

我们需要合并或不合并我们需要合并2个结果。

在下图中,

第一次循环结果=>第1排,第2排,第6排。

第二次循环结果=>第3,第4,第5行。

我们需要第3,第4和第第5行导致最后2列中的第1行,第2行第6行[付费状态&佣金]。

第一,结果来自数据库1&第二,而结果来自数据库2,表格为[ order_details ]

enter image description here

enter image description here

$result = mysqli_query($con,$sql);

我尝试了下面的代码,但结果如下图所示 - 意味着只显示了2行而不是23行....

//WebApi

public List<ResourceDTO> GetWebAppLeaders()
    {
        List<ResourceDTO> webappLeaders = new List<ResourceDTO>();

        //Linq to get a list of employees that take part of WebApp
        var people = from x in _staffCtx.Resources
                     where (x.Active.HasValue && x.Active.Value && x.ManagerID.HasValue && x.FirstName.Length > 0)
                     select new ResourceDTO()
                     {
                         FirstName = x.FirstName,
                         LastName = x.LastName,
                         ResourceID = x.ResourceID,
                     };

        webappLeaders = people.ToList();


        foreach (var person in webappLeaders)
        {
            int personID = person.ResourceID;

            person.webappPupil = from u in _webappCtx.CompanyWebAppViews
                                 where (u.PupilID == personID)
                                 select new WebappDTO()
                                 {
                                     webappID = u.ID,
                                 };
            person.webappPupil.ToList();

            person.webappTeacher = from u in _webappCtx.CompanyWebAppViews
                                   where (u.TeacherID == personID)
                                   select new WebappDTO()
                                   {
                                       webappID = u.ID,
                                   };
            person.webappTeacher.ToList();
        }


        return webappLeaders.ToList();

    }


//ResourceDTO
    public class ResourceDTO
{
    public int ResourceID { get; set; }
    public string Email { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string JobTitle { get; set; }
    public string ExtensionNumber { get; set; }
    public string MobileNumber { get; set; }
    public string MobileSpeedDial { get; set; }
    public string IMAddress { get; set; }
    public int? ManagerID { get; set; }
    public string ManagerName { get; set; }
    public string DepartmentType { get; set; }

    //WebApp specific
    public IQueryable<WebAppDTO> webappPupil { get; set; }

    public IQueryable<WebAppDTO> webappTeacher { get; set; }

}


//WebAppDTO

public class WebAppDTO
{
    public int webappID { get; set; }
    public string pupilName { get; set; }
    public string teacherName { get; set; }

    public string webappDate { get; set; }

    public string pupilLearnt { get; set; }

    public string pupilComments { get; set; }

    public string teacherComments { get; set; }

    public List<WebAppDTO> WebApp { get; set; }

}

enter image description here

整页看起来如下:

enter image description here

我是php world&amp;的新手在发布之前尝试了很多....

1 个答案:

答案 0 :(得分:0)

无论何时使用空括号[],都会自动分配索引,该索引等于下一个可用的数值,并且您的数据最终会在下一个位置结束,因此需要正确的索引才能解决此问题。

同时(($k < count($orderitemsarray)) && ($data = $stmt->fetch()))

如果任何一个条件失败,那么循环结束,而你的$data可能只有三个条目它只显示那么多,即使$orderitemsarray有更多,我不确定但你可以大量替换{{ 1}}使用while语句并更改索引,以使这些内容附加在同一行

if

编辑:我的坏,不理我的上一条评论试试这个

$indx=0;

foreach($order as $orderData) 
{ 
  $k = 0; 
//.. Stufff

/* 2nd while */
if($indx == 0 || $indx == 1 || $indx == 5)
{
  if($data = $stmt->fetch())   
  {   
    $size = count($responce); // get size from that get its last index
    $responce[$size-1] = array(
      $data['dorder_id'],
      $data['dpaid_status'],
      $data['commission']
    ); 
   $k++; //<-- not sure why it's here but doesn't matter may be some magento stuff?
  }  
}
$indx++
}