My code selects from the database, writes out the information then runs an else if loop to decide what code to output:
<?php
echo '<p>the loop<p><br>
<p>Accreditations</p>';
if ($fields['accreditations1']==1){echo 'HTML CODE 1';} else {
if ($fields['accreditations1']==2){echo 'HTML CODE 2';} else {
if ($fields['accreditations1']==3){echo 'HTML CODE 3';} else {
if ($fields['accreditations1']==4){echo 'HTML CODE 4';} else {
if ($fields['accreditations1']==5){echo 'HTML CODE 5';} else {
if ($fields['accreditations1']==6){echo 'HTML CODE 6';} else {
if ($fields['accreditations1']==7){echo 'HTML CODE 7';} else {
if ($fields['accreditations1']==0){echo '';}
if ($fields['accreditations2']==1){echo 'HTML CODE 1';} else {
if ($fields['accreditations2']==2){echo 'HTML CODE 2';} else {
if ($fields['accreditations2']==3){echo 'HTML CODE 3';} else {
if ($fields['accreditations2']==4){echo 'HTML CODE 4';} else {
if ($fields['accreditations2']==5){echo 'HTML CODE 5';} else {
if ($fields['accreditations2']==6){echo 'HTML CODE 6';} else {
if ($fields['accreditations2']==7){echo 'HTML CODE 7';} else {
if ($fields['accreditations2']==0){echo '';}
if ($fields['accreditations3']==1){echo 'HTML CODE 1';} else {
if ($fields['accreditations3']==2){echo 'HTML CODE 2';} else {
if ($fields['accreditations3']==3){echo 'HTML CODE 3';} else {
if ($fields['accreditations3']==4){echo 'HTML CODE 4';} else {
if ($fields['accreditations3']==5){echo 'HTML CODE 5';} else {
if ($fields['accreditations3']==6){echo 'HTML CODE 6';} else {
if ($fields['accreditations3']==7){echo 'HTML CODE 7';} else {
if ($fields['accreditations3']==0){echo '';}
echo '<br />';
if ($fields['accreditations4']==1){echo 'HTML CODE 1';} else {
if ($fields['accreditations4']==2){echo 'HTML CODE 2';} else {
if ($fields['accreditations4']==3){echo 'HTML CODE 3';} else {
if ($fields['accreditations4']==4){echo 'HTML CODE 4';} else {
if ($fields['accreditations4']==5){echo 'HTML CODE 5';} else {
if ($fields['accreditations4']==6){echo 'HTML CODE 6';} else {
if ($fields['accreditations4']==7){echo 'HTML CODE 7';} else {
if ($fields['accreditations4']==0){echo '';}
if ($fields['accreditations5']==1){echo 'HTML CODE 1';} else {
if ($fields['accreditations5']==2){echo 'HTML CODE 2';} else {
if ($fields['accreditations5']==3){echo 'HTML CODE 3';} else {
if ($fields['accreditations5']==4){echo 'HTML CODE 4';} else {
if ($fields['accreditations5']==5){echo 'HTML CODE 5';} else {
if ($fields['accreditations5']==6){echo 'HTML CODE 6';} else {
if ($fields['accreditations5']==7){echo 'HTML CODE 7';} else {
if ($fields['accreditations5']==0){echo '';}
if ($fields['accreditations6']==1){echo 'HTML CODE 1';} else {
if ($fields['accreditations6']==2){echo 'HTML CODE 2';} else {
if ($fields['accreditations6']==3){echo 'HTML CODE 3';} else {
if ($fields['accreditations6']==4){echo 'HTML CODE 4';} else {
if ($fields['accreditations6']==5){echo 'HTML CODE 5';} else {
if ($fields['accreditations6']==6){echo 'HTML CODE 6';} else {
if ($fields['accreditations6']==7){echo 'HTML CODE 7';} else {
if ($fields['accreditations6']==0){echo '';}
?>
Firstly do I need to do something to close the ifs? Also is there a shorter way of doing this?
Use the switch
statement, like this
switch( $fields['accreditations1'] ) {
case 1: echo 'HTML CODE 1'; break;
case 2: echo 'HTML CODE 2'; break;
case 3: echo 'HTML CODE 3'; break;
case 4: echo 'HTML CODE 4'; break;
case 5: echo 'HTML CODE 5'; break;
case 6: echo 'HTML CODE 6'; break;
case 7: echo 'HTML CODE 7'; break;
case 0: echo '';
}
I assume, that is not the actual output. If I am mistaken, you should consider writing a separate function for this!
Try this, using a for
loop,
for( $i=1; $i<=count($fields); $i++) {
if( $fields['accreditations'.$i] > 0 && $fields['accreditations'.$i] <= 7)
echo 'HTML CODE ' $fields['accreditations'.$i];
}
I think you got a '
too many after <p>Accreditations</p>
.
Apart from that, you can use a switch statement which will shorten this code a little.
You can also use:
if (condition) {}
else if (othercondition) {}
elseif (thirdcondition {}
else {}
Note that the if of the else is not inside the brackets of the else. You can write else if
or elseif
, both mean the same.
That is especially useful in cases where a switch doesn't work. In your case, just use a switch.