Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php循环中获取两个不同div中的值_Php_Foreach_While Loop - Fatal编程技术网

如何在php循环中获取两个不同div中的值

如何在php循环中获取两个不同div中的值,php,foreach,while-loop,Php,Foreach,While Loop,我正试图得到这样一个循环。假设我在表test中有20行,我需要在如下循环中获取它的id值 <section class="test"> <div class="n4"> <div class="n2"> 1 // first row id </div> <div class="n21"> 2 // second r

我正试图得到这样一个循环。假设我在表
test
中有20行,我需要在如下循环中获取它的id值

 <section class="test">
       <div class="n4">

         <div class="n2">
              1 // first row id
         </div>

        <div class="n21">
            2 // second row id
        </div>

    </div>
    </section>

    <section class="test">
       <div class="n4">

         <div class="n2">
              3 // third row id
         </div>

        <div class="n21">
            4 // fourth row id
        </div>

    </div>
    </section> 

      ..... <section> ....upto all ids in the row

1//第一行id
2//第二行id
3//第三行id
4//第四行id
.....  ....最多可访问行中的所有ID
我想做的是 假设表test有20行

    <?php
    $query=$db->query("SELECT * FROM test");  
    $counter=1;
    foreach($query as $row)
    {
    ?>
    <section class="test">
       <div class="n4">

       <?php  if($counter %2 !=0)  ?>     
         <div class="n2">
            <?php echo $row['id']; ?> 
         </div>
         <?php else  ?>
        <div class="n21">
            <?php echo $row['id']; ?>
        </div>

    </div>
    </section>

     <?php
  $counter++;

  } ?>

这并没有显示确切的结果


有什么帮助吗?

您的代码有错误,让我们试试这个

<?php
$query=$db->query("SELECT * FROM test");
$counter=1;
foreach($query as $row)
{
    ?>
    <section class="test">
    <div class="n4">

    <?php  if($counter %2 !=0): /* you've missing ":" symbol*/ ?>   
        <div class="n2">
        <?php echo $row['id']; ?> 
        </div>
    <?php else: /* you've missing ":" symbol*/ ?>
        <div class="n21">
        <?php echo $row['id']; ?>
        </div>
    <?php endif; /* you dont need close bracket, but you need "endif" */ ?> 
    <?php $counter++; ?>
    </div>
    </section>

<?php  } ?>

这种方法可以根据您的需要工作,我也尝试过这种方法

<?php
$query = [['id' => 1], ['id' => 2], ['id' => 3]] ; // example of result
for ($i=0; $i < count($query); $i+=2) { 
    try {
        ?>
    <section class="test">
        <div class="n4">
            <div class="n2">
                <?php echo @$query[$i]['id'] // ignore error ?>
            </div>
            <div class="n21">
                <?php echo @$query[$i+1]['id'] // ignore error ?>
            </div>
        </div>
    </section>
        <?php
    } catch (Exception $e) {

    }
}


此代码显示的方式与我尝试的方式相同。。这将产生这样的结果,您是否遗漏了foreach($query as$row)?因为错误显示为
致命错误:无法在
中使用PDOStatement类型的对象作为数组,我很抱歉出错,因为我尝试使用数组格式的查询结果作为示例Yes…似乎有效,但是我如何将我的查询ID添加到此数组您可以使用
$result=$query->fetch_数组(MYSQLI_NUM)将sql结果转换为数组
<section class="test">
    <div class="n4">
        <div class="n2">
            1
        </div>
        <div class="n21">
            2
        </div>
    </div>
</section>
<section class="test">
    <div class="n4">
        <div class="n2">
            3
        </div>
        <div class="n21">

        </div>
    </div>
</section>