While (mif If) *Erledigt*

  • PHP

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Dekras12.

    While (mif If) *Erledigt*

    Hallo,
    mein Name ist Simon und habe da ein Problem. :S

    Das problem ist:
    Das die While schleife nach der IF-Anweisung nicht zurück geht also
    er führt diesen Befehl 6x. Fehlt mir irgendeine Anweisung das er zurück geht?
    Spoiler anzeigen

    PHP-Quellcode

    1. $i = 0 ;
    2. while($i<6) {
    3. if ($Test1 != "true") {
    4. echo "KEINE VERBINDUNG!";
    5. $i = 25 ;
    6. //hier führt er den Befehl 6x
    7. }elseif ($Test2 != "YES") {
    8. $i++;
    9. echo "<p>Update unterwegs! 1 </p>";
    10. }else {
    11. echo "TEST TEST TEST";
    12. $i = 25 ; }

    Du fragst in der While-Schleife ab, ob $i < 6 ist.


    setzt aber in Zeile 7 $i = 25 -> sprich hier ist beim zweiten Durchlauf die Bedingung schon false.



    EDIT 1:
    Was genau willst du machen?
    Wo genau liegt das Problem?
    Die Antwort war mehr ins blaue geraten als was gewusst.. :D
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Sollen Test1 und Test2 Funktionen sein?

    wo werden die defaults von $Test1 und $Test2 gesetzt? Woher bekommen diese Variablen ihre Werte?

    Dekras12 schrieb:

    aber das problem ist das er diese anwednung so lange macht bis er die Zahl 6 erreicht ($i) und somit wird ja die Schleife beendet.

    Macht ja auch genau das was du da implementiert hast..
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Acr0most“ ()

    Ja ist ja bisschen Blöd geschrieben von mir. :P

    Also ich habe da ein anderen Quellcode (Der ist etwas länger ... und wollte es vereinfachen).
    Ich möchte den ganzen Quellcode nicht hier reinschreiben also erkläre ich mal so.

    Bedingung ($Test1):

    $Test1 prüft ob es eine Verbindung zur Danbenk hat (mit Ping)
    Aufgabe ($Test1):
    Schreibt das es keine Verbindung zur Datenbank hat
    Beendet die Schleife

    Bedingung ($Test2):
    $Test2 prüft ob die Datenbank den aktuellen Datum hat.
    Aufgabe ($Test2):
    Fals nicht, soll die Datenbank sich kopieren und sich erneuern mit dem neuen Datum.
    $i++

    Das Problem ($Test2):
    Das er das 6x ausfühert weil, er diesen Befehl "nun" ohne der Bedingung ausführt und weil dieses Befehl $i++ hat und die While Bedingung while($i<6) ist, beeendet er die Schleife.

    Wenn ich den Script nochmal asuführe wird $Test2 nicht mehr ausgeführt weil er den aktuellen Datum hat und geht weiter zu $Test3

    Ergebnis von ($Test2)
    Ich habe z.B.
    4 Datensätze mit dem alten Datum

    Durch den script passiert das:
    4 Datensätze mit dem alten Datum

    4x6 = 24 Datensätze mit dem neuen Datum :thumbsup:

    Normal sollte es so sein
    4 Datensätze mit dem alten Datum
    4 Datensätze mit dem neuen Datum

    Problembehebung
    Nach der Ausführen eines IF-Befehls soll er zurück gehen und die Bedingung "nochaml" abfragen.
    also das mit der fest codierten Durchlaufzahl von 6 finde ich ehr contraproduktiv.


    PHP-Quellcode

    1. $i = false ;
    2. while($i == false) {
    3. // $Test1 setzen
    4. // $Test2 setzen
    5. if ($Test1 != true) {
    6. echo "KEINE VERBINDUNG!";
    7. $i = false;
    8. //hier führt er den Befehl 6x
    9. }elseif ($Test2 != true) {
    10. echo "Update alte Datensätze";
    11. $i = false;
    12. }else {
    13. //Hier hast du eine Verbindung + aktuelles Datum
    14. echo "ok";
    15. $i = true ; }



    Das Problem mit deiner Schleife ist eben, dass es im Grunde eine Dauerschleife werden würde, wenn du entweder keine Verbindung oder ständig nicht aktuelle Datensätze hättest




    EDIT:
    ok, doch etwas zu verwirrend deine Aufgabenstellung xD
    Liegt das Problem darin, dass du mehr Datensätze als 6 Stk hast, aber nur 6 geupdatet werden?
    Was erwartest du von diesem Skript und was bringt es als Resultat?
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Ich weiß woran das liegt.
    Die Abfrage war nicht in der Schleife. Mein Gott bin ich dumm .... :cursing:
    (Womit er kontrolliert ob es den Wert in der Datenbank ist)
    "Hatte es nur oben geschrieben -_-"
    Spoiler anzeigen

    PHP-Quellcode

    1. $i = 0 ;
    2. while($i<6) {
    3. if ($Test1 != "true") {
    4. echo "KEINE VERBINDUNG!";
    5. $i = 25 ;
    6. //behoben denke ich
    7. }elseif ($Test2 != "YES") {
    8. echo "<p>Update unterwegs! 1 </p>";
    9. $query = "SELECT * FROM Patronenvorrat WHERE Datum = '{$date}'";
    10. $result = mysql_query($query);
    11. $Test2 = (mysql_num_rows($result) == 0) ? 'NO' : 'YES';
    12. $i++;
    13. }else {
    14. echo "TEST TEST TEST";
    15. $i = 25 ; }


    Tut mir leid und danke! :thumbsup:

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Dekras12“ ()