/ / error in else if rows? Czy istnieje bardziej zwięzły sposób na zapisanie tego? - php, if-statement

błąd w innym przypadku, jeśli wiersze? Czy istnieje bardziej zwięzły sposób na zapisanie tego? - php, if-statement

Mój kod wybiera z bazy danych, wypisuje informacje, a następnie uruchamia inną pętlę if, aby zdecydować, jaki kod wyprowadzić:

<?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 "";}

?>

Po pierwsze, czy muszę coś zrobić, aby zamknąć ifs? Czy istnieje również krótszy sposób robienia tego?

Odpowiedzi:

2 dla odpowiedzi № 1

Użyj switch komunikat, lubię to

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 "";
}

Zakładam, że to nie jest rzeczywisty wynik. Jeśli się mylę, powinieneś rozważyć napisanie do tego oddzielnej funkcji!


1 dla odpowiedzi nr 2

Spróbuj tego, używając a for pętla,

 for( $i=1; $i<=count($fields); $i++) {
if( $fields["accreditations".$i] > 0 && $fields["accreditations".$i] <= 7)
echo "HTML CODE " $fields["accreditations".$i];
}

1 dla odpowiedzi nr 3

Myślę, że masz " za dużo po <p>Accreditations</p>.

Oprócz tego możesz użyć instrukcji switch, która nieco skróci ten kod.

Możesz także użyć:

if (condition) {}
else if (othercondition) {}
elseif (thirdcondition {}
else {}

Zauważ, że if of else jest nie w środku nawiasy pozostałe. Możesz pisać else if lub elseifoba oznaczają to samo.

Jest to szczególnie przydatne w przypadkach, gdy przełącznik nie działa. W twoim przypadku wystarczy użyć przełącznika.