简体   繁体   中英

PHP MySQL Echo count

I am trying to make buttons echo 5 per row, and for each row they are to be wrapped by an element.

The issue i have is when echoing, the echo is not happening how i thought it would.

The desired result (every 5 span_1_of_5 ) wrapped by <div class="section group"></div>

<div class="section group">   

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

</div>


<div class="section group">   

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Button
            </div>
        </div>
    </div>

</div>

The PHP

$itemCount = 0;     

    while ($row5x = mysql_fetch_array($result5x)) { 

    $item_id = $row5x[item_id]; 
    $item_title = $row5x[item_title];

       if ($itemCount==0 || $itemCount%5===0) { echo "<div class='section group'>"; }     
    ?>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                <? echo $item_title; ?>
            </div>
        </div>
    </div>

    <?
    if ($itemCount%5===0) { echo "</div>"; }    
    $itemCount++;
    }
    ?>

The output from the PHP (not the desired result)

<div class='section group'>     

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                Coffee          
            </div>
        </div>
    </div>

</div>     

<div class="col span_1_of_5">
    <div class='button_epos_a button_epos_a-border'>
        <div class='button_epos_a_content'>
            sdsd            
        </div>
    </div>
</div>


<div class="col span_1_of_5">
    <div class='button_epos_a button_epos_a-border'>
        <div class='button_epos_a_content'>
            cccc            
        </div>
    </div>
</div>


<div class="col span_1_of_5">
    <div class='button_epos_a button_epos_a-border'>
        <div class='button_epos_a_content'>
            BBBB            
        </div>
    </div>
</div>


<div class="col span_1_of_5">
    <div class='button_epos_a button_epos_a-border'>
        <div class='button_epos_a_content'>
            juice           
        </div>
    </div>
</div>

<div class='section group'>     

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                juice2          
            </div>
        </div>
    </div>

</div>

I cannot see why this is happening, any enlightenment would be great. thanks

Change:

if ($itemCount==0 || $itemCount%5===0) { echo "<div class='section group'>"; }    

To:

if ($itemCount==0) { echo "<div class='section group'>"; }

Also Change:

<?
    if ($itemCount%5===0) { echo "</div>"; }    
    $itemCount++;
}
?>

To:

<?php
    if ($itemCount===4) { echo "</div>"; $itemCount = 0;} else { $itemCount++;}
}
if ($itemCount !== 0) { echo '</div>';}
?>

I think it makes it easier. Couple of side notes:

  1. If this is new code, you are better off using mysqli/Pdo instead.
  2. Always use <?php instead of the short code <? .
  3. Always make your indexes strings: $row5x['item_id'];
$itemCount = 0;     

    while ($row5x = mysql_fetch_array($result5x)) { 

    $item_id = $row5x[item_id]; 
    $item_title = $row5x[item_title];

       if ($itemCount==0 || $itemCount==5) { echo "<div class='section group'>"; }     
    ?>

    <div class="col span_1_of_5">
        <div class='button_epos_a button_epos_a-border'>
            <div class='button_epos_a_content'>
                <? echo $item_title; ?>
            </div>
        </div>
    </div>

    <?
    if ($itemCount==4 || $itemCount==9) { echo "</div>"; }    
    $itemCount++;
    }
    ?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM