虽然(双倍?)foreach或加入?

时间:2013-02-12 07:34:43

标签: php mysql join foreach while-loop

我有一个转换为csv的Excel工作表,然后将代码导入到mysql中。 在Excel中,我有第一行A和B的

我得到输出,它可以工作,但我无法正确显示数据。

  

我试图显示的是A B然后再次打破A B等等。它是由contact_id订购的,但如果我尝试加倍,我只能获得AAAAAA和1 B.

这是我试图实现此目的的代码。尝试了两次,我用谷歌搜索,我注意到双重不工作,无法让它与mysql JOIN一起使用,并且从未使用过foreach函数。

$data = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='A)' ORDER BY contact_id ASC");
$data2 = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='B)' ORDER BY contact_id ASC");


    while ($userdata = dbarray($data)) {


   echo "<li><ul class='ulcla'>";
   echo "<h1>".$userdata['contact_first']."</h1>"; 
   echo "<li>".$userdata['contact_last']."</li>";
   echo "</ul><br>";
   while ($userdata = dbarray($data2)) {
   echo "".$userdata['contact_id']." - ".$userdata2['contact_first']." - ".$userdata2['contact_last']." - ".$userdata2['contact_email']."";
   echo "<br>"; 
    }
    echo "</ol></div>";   

      }

我怎么能这样循环数据?

3 个答案:

答案 0 :(得分:0)

如果每个A和B的数量相同,那么您可以从输出中创建两个数组,并使用简单的for循环来完成键。所以它可以回显$ userdata [$ x]和$ userdata2 [$ x],其中$ x是循环迭代器。

尽量避免使用多个循环,尤其是嵌套循环。

答案 1 :(得分:0)

while ($userdata = dbarray($data)) {
    //your stuff
    while ($other_userdata = dbarray($data2)) {
        //your other stuff
    }
}

答案 2 :(得分:0)

将内部while循环

更改为while ($userdata = dbarray($data2)) {while ($userdata2 = dbarray($data2)) {
$data = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='B)' ORDER BY contact_id ASC");
$data2 = dbquery("SELECT contact_id, contact_first, contact_last, contact_email FROM contact_info WHERE contact_first='B)' ORDER BY contact_id ASC");


    while ($userdata = dbarray($data)) {


   echo "<li><ul class='ulcla'>";
   echo "<h1>".$userdata['contact_first']."</h1>"; 
   echo "<li>".$userdata['contact_last']."</li>";
   echo "</ul><br>";
   while ($userdata2 = dbarray($data2)) {
   echo "".$userdata2['contact_id']." - ".$userdata2['contact_first']." - ".$userdata2['contact_last']." - ".$userdata2['contact_email']."";
   echo "<br>"; 
    }
    echo "</ol></div>";   

      }