/ / fehler in sonst wenn zeilen? Gibt es eine präzisere Schreibweise? - PHP, if-Anweisung

Fehler in sonst Zeilen? Gibt es eine prägnantere Art dies zu schreiben? - PHP, If-Anweisung

Mein Code wählt aus der Datenbank aus, schreibt die Informationen aus und führt dann eine else if-Schleife aus, um zu entscheiden, welcher Code ausgegeben werden soll:

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

?>

Muss ich zuerst etwas tun, um das Wenn zu schließen? Gibt es auch einen kürzeren Weg, dies zu tun?

Antworten:

2 für die Antwort № 1

Benutze die switch Erklärung, so was

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

Ich nehme an, das ist nicht die tatsächliche Ausgabe. Wenn ich mich irre, sollten Sie in Betracht ziehen, eine separate Funktion dafür zu schreiben!


1 für die Antwort № 2

Versuchen Sie dies, indem Sie a for Schleife,

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

1 für die Antwort № 3

Ich denke du hast eine " zu viele danach <p>Accreditations</p>.

Außerdem können Sie eine switch-Anweisung verwenden, die diesen Code ein wenig verkürzt.

Sie können auch verwenden:

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

Beachten Sie, dass das if des else ist nicht im Inneren die Klammern des Anderen. Du kannst schreiben else if oder elseifbedeuten beide dasselbe.

Dies ist besonders nützlich, wenn ein Switch nicht funktioniert. Verwenden Sie in Ihrem Fall einfach einen Switch.