• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP] offene while-Schleife in if-Abfrage

fox_bw

New member
Guten Tag zusammen,

ich habe gerade nach einer Lösung für meine Problem im Internet gesucht aber nichts gefunden. Deshalb nun meine Anfrage hier im Forum.

Ist es möglich eine offene while-Schleife in einer if-Abfrage zu verschachteln?

Beispiel:
PHP:
if (x=0) {   (Beginn if-Abfrage)
  .. Datenbankabfrage ..
while (.....) {   (Beginn der while-Schleife)
}   (Ende if-Abfrage)

Leider wird hier logischweise am Schluss immer die While-Schleife geschlossen und nicht wie gewünscht die if-Abfrage. Gibt es eine Möglichkeit, damit mein o.g. Beispiel funktioniert?

Vielen Dank schon im Voraus für Eure Antworten.

fox_bw
 
keine Ahnung was du genau machen willst, aber vermutlich hast du nur einen kleinen Denkfehler... in deinem obigen "Code" fehlt eine schließende geschweifte Klammer, und aus deinem Text ist nicht ersichtlich was jetzt genau passieren soll

bitte noch mal neu formulieren
 
Hallo Bieber,

OK vielleicht war es etwas ungenau.
Es handelt sich hier um ein Formular. In diesem Formular können sowohl Daten neu eingegeben werden (keine Datenbankabfrage notwendig) oder aber auch ein bestehender Datensatz geändert werden (Datenbankabfrage notwendig). An dieser Stelle soll überprüft werden, ob Daten aus einer Datenbank ausgelesen werden müssen oder nicht.
Das Ende der while-Schleife kommt viel weiter unten.

Hier ein kleiner Auszug aus dem Sktipt:

PHP:
if ($Prozess == "edit") {

... Datenbank-Abfrage ...

 while ($Prj = mysql_fetch_array($result_Prj, MYSQL_BOTH)) {
 }

if ($Prozess == "edit") {
 echo '<form method="POST" enctype="multipart/formdata" name="f1" action="xyz.php?ID='.$Prj['ID'].'&proc=prj_aend">';
 }
 else
 {
 echo '<form method="POST" enctype="multipart/formdata" name="f1" action="xyz.php?proc=prj_einfueg">';
 }
  echo '<fieldset>
    <table bgcolor="#E5E5E5">
      <tr>
        <td>
          1. Projektnummer:
        </td>
        <td>';
          if ($Prozess == "edit") {
          echo '<input width="15" size="15" name="PRJ_Nr_1" type="text" value="'.$Prj['Prj_Nr'].'">';
          }
          else
          {
          echo '<input width="15" size="15" name="PRJ_Nr_1" type="text">';
          }
        echo '</td>
      </tr>

... usw ...

}     Ende While-Schleife

Ich hoffe, dass die Sache nun etwas klarer ist.

fox_bw
 
Ich hoffe, dass die Sache nun etwas klarer ist.
Du kannst Blöcke verschachteln (ein Block komplett in einem anderen Block), aber Du kannst sie nicht überlappen lassen (Hälfte drin, Hälfte draussen). Das macht auch überhaupt keinen Sinn in einer Hochsprache wie Javascript. In Assembler oder Basic ist sowas machbar, aber guter Stil ist es trotzdem nicht (zumindest in Basic).
 
Hallo Albu,

danke für deine Antwort.
Schade eigentlich, dass dies so nicht funktioniert. Dann muss ich das Skript komplett umschreiben und zwischen die beiden Varianten "Neuer Datensatz" und "Datensatz ändern" komplett voneinander trennen.

Nochmals Danke für Eure Antworten.

fox_bw
 
Zurück
Oben