【问题标题】:Two arrays in foreach loop.foreach 循环中的两个数组。
【发布时间】:2020-01-18 06:24:50
【问题描述】:

我想填表。数据库正在填充数组,但这种方法不起作用。问题是什么?如何使用 foreach 循环?

<?php
    $a = $db->prepare("select * 
                       from sabit_sayfalar 
                       inner join alt_sayfa on sabit_sayfalar.sayfa_id = alt_sayfa.ustsayfaid");
    $a->execute(array());
    $b = $a->fetchALL(PDO::FETCH_ASSOC);
    $c = $a->rowCount();

    $q = $db->prepare("select * 
                       from sabit_sayfalar 
                       inner join alt_sayfa on sabit_sayfalar.sayfa_id = alt_sayfa.altsayfaid");
    $q->execute(array());
    $w = $q->fetchALL(PDO::FETCH_ASSOC);
    $e = $q->rowCount();

     if($c){
         foreach($b as $w and $m as $n){                    
?>      

<tbody> 
    <tr> 
        <td>                    
            <?php echo $m["sayfa_adi"];?>   
        </td>   
        <td>
            <?php echo ($n["sayfa_adi"]);?>
        </td>   
    </tr>
<?php                   
        }
    }       
?>
</tbody>

【问题讨论】:

  • 说实话,它看起来很乱。让我给你写一个例子。
  • 我才刚开始,我还不够了解。soryy :( 谢谢我在等待
  • “没用”是什么意思?为什么你认为你可以在 foreach 循环之间使用and
  • 数组是什么样的?它们是索引的还是关联的?
  • Foreach 只接受一个数组作为输入,因此无论如何它都不会工作。

标签: php foreach html-table


【解决方案1】:

这就是我想出来的。

<?php
    $firstQuery = $db->prepare("select * 
                       from sabit_sayfalar 
                       inner join alt_sayfa on sabit_sayfalar.sayfa_id = alt_sayfa.ustsayfaid");
    $firstQuery->execute(array());
    $firstQueryResults = $firstQuery->fetchALL(PDO::FETCH_ASSOC);
    $firstQueryCount = $firstQuery->rowCount();

    $secondQuery = $db->prepare("select * 
                       from sabit_sayfalar 
                       inner join alt_sayfa on sabit_sayfalar.sayfa_id = alt_sayfa.altsayfaid");
    $secondQuery->execute(array());
    $secondQueryResults = $secondQuery->fetchALL(PDO::FETCH_ASSOC);
    $secondQueryCount = $secondQuery->rowCount();

    if ($firstQueryCount > 0 && $secondQueryCount > 0) {
?>      

<tbody> 
<?php foreach ($firstQueryResults as $firstQueryKey => $firstQueryRow) { ?>
    <tr> 
        <td>                    
            <?php echo $firstQueryRow["sayfa_adi"];?>   
        </td>   
        <td>
            <?php echo ($secondQueryResults[$firstQueryKey]["sayfa_adi"]);?>
        </td>   
    </tr>
<?php                   
        }
    }       
?>
</tbody>

为了便于阅读,我更改了变量的名称,并调整了表格以使用您提供的信息......仍然存在一些与索引相关的缺陷,每个 SELECT 可能不同,但这是另一个问题。

我还将一些缺少的变量解释为您拥有的变量,但由于某种原因写错了。

【讨论】:

  • $secondQueryCount?不是$secondQueryResults? (在第二个回声处)这看起来更像我认为应该的。但是,如果数组的索引不同,那么它将不起作用。
  • 库尔瓦!谢谢你。是的。但我同意,每 2 行 xD 有 99 个错误的机会
  • 也可能将开口体移动到循环上方。
  • 有趣的是,我更关心 PSR 的东西而不是 HTML 部分。
【解决方案2】:

你不能被使用并且在一个 foreach 中我认为你想在这里使用 2 个 foreach 并且你的 &lt;tbody&gt; 应该不在循环中

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    相关资源
    最近更新 更多