LITguy
LITguy

Reputation: 623

PHP foreach loop with sequential numbers while displaying MySQL results

I have a feeling I'm going to get scolded for this but here is the question.

$seq_numbers = range('1', '24');
foreach($seq_numbers as $seq_number) 
{
    Bullet <?php echo $seq_number;?>  
    // (this successfully creates - Bullet 1, Bullet 2, etc. - 
        below is the problem.

    <?php echo $db_rs['bullet_($seqnumber)'];?>
}   // this one doesn't work.  

I've tried with curly brackets {}

I basically have a few columns that are named same except for number at the end (bullet_1, bullet_2, bullet_3, etc.) and want to get the results using a loop.

Upvotes: 0

Views: 776

Answers (4)

Gaurav Gandhi
Gaurav Gandhi

Reputation: 3201

try this...

$seq_numbers = range('1', '24');
foreach($seq_numbers as $seq_number) 
{
    Bullet <?php echo $seq_number;?>  
    // (this successfully creates - Bullet 1, Bullet 2, etc. - 
        below is the problem.

    <?php echo $db_rs["bullet_($seqnumber)"];?>
}   // now it works.

Upvotes: 0

Till Helge
Till Helge

Reputation: 9311

Your problem is, that PHP doesn't replace variables inside strings enclosed with single quotes. You need to use $db_rs["bullet_{$seq_number}"] or one of those:

<?php
foreach ($seq_numbers as $seq_number) {
   $key = 'bullet_' . $seq_number;
   echo $db_rs[$key];
}

Even shorter, but a little less clear:

<?php
foreach ($seq_numbers as $seq_number) {
   echo $db_rs['bullet_' . $seq_number];
}

An entirely different approach would be to loop over the result array. Then you don't even need $seq_numbers. Just as an afterthought.

<?php
foreach ($db_rs as $key => $value) {
   if (substr($key, 0, 7) == 'bullet_') {
      echo $value;
   }
}

Oh...and watch out for how you spell your variables. You are using $seq_number and $seqnumber.

Upvotes: 5

jmadsen
jmadsen

Reputation: 3675

why not:

$db_rs['bullet_'.$seqnumber]

If not, what are your fields, and what does a var_dump of $db_rs look like?

Upvotes: 1

open source guy
open source guy

Reputation: 2787

<?php echo $db_rs['bullet_'.$seqnumber];?>

Upvotes: 1

Related Questions