如果是行,其他错误? 有没有更简洁的方式来写这个?

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.