kostenloser Webspace werbefrei: lima-city


Springt weder in if noch else...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    y****e

    Hi,

    ich habe folgenden Code gebastelt:

    http://nopaste.piranho.de/815.3174dbb.html

    Sieht nach viel aus, ist es aber nicht. Es geht um eine einfache Sache. Ganz am Anfang habe ich if($gb->getEntrys(...)) stehen. Alles was in diesem if Block ausgeführt wird, ist, wenn die Daten erfolgreich geladen wurden, siehe Funktion. Nun möchte ich aber in dem else Block unten mit $gb->ErrorOutput("Konnte nicht geladen werden..."); ausgeben, dass die Entrys nicht geladen wurden. Ich schalte MySQL aus, drücke F5, und der ganze Kram, den ich sonst sehe, wenn Entrys erfolgreich geladen werden, wird nicht angezeigt, insoweit springt er also nicht in die if Schleife (Habe dort auch extra echo "ENTRYS WURDE GELADEN" geschrieben). Allerdings springt er auch nicht in die zugehörige else Schleife unten, sowohl mit echo als auch mit der eigentlich ErrorOutput() Funktion wird NICHTS ausgegeben.

    Kann mir da einer sagen, was das soll? ö.ö

    Danke!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. aldistammkunde

    Kostenloser Webspace von aldistammkunde, auf Homepage erstellen warten

    aldistammkunde hat kostenlosen Webspace.

    Hi, wie sieht denn dein Verbinden zur Datenbank aus? Ich persönlich löse das nämlich immer über eine or-Verknüpfung:

    mysql_connect($BLA,...) or die();
    //usw.


    Wenn du etwas Ähnliches verwendest und dann vor dem ausführen den MySql-Server abschaltest, dann schlägt das verbinden fehl und es bricht mit dem die() die komplette restliche Ausführung des skripts ab, dein if-Konstrukt wird dann also nie erreicht!


    Gruß,
  4. Autor dieses Themas

    y****e

    Das if Konstrukt MUSS aber erreicht werden! Es muss entweder if oder else ausgeführt werden... Es wird aber GARNICHTS ausgeführt von beidem. Ich erhalte keine Fehlermeldung, kein Garnichts, lediglich die komplette Website ohne die Entrys, da diese ja nicht geladen werden können, weil MySQL deaktiviert ist. Wo ist da mein Fehler? Weder in einer der beiden Blöcke wird mit echo etwas ausgegeben!
  5. Mach mal error_reporting(E_ALL | E_STRICT); und display_errors(1);
  6. Autor dieses Themas

    y****e

    nikic schrieb:
    Mach mal error_reporting(E_ALL | E_STRICT); und display_errors(1);


    Hab ich schon alles. Habe lediglich die Fehlermeldungen, dass keine Verbindung zur DB hergestellt werden kann, was ja auch so sein soll, damit er in den ELSE Block springt. (Wenn DB Verbindung besteht, soll er in den IF Block). Er springt aber in keinen und sonst werden keine Meldungen angezeigt...

    Yuzuke
  7. Und die Fehlermeldungen führen keinen Script Stop herbei? Also keine Fatal Errors oder so?
  8. Autor dieses Themas

    y****e

    nikic schrieb:
    Und die Fehlermeldungen führen keinen Script Stop herbei? Also keine Fatal Errors oder so?


    Kein Fatal Errors kein Garnix, nur Warnings, dass keine MySQL Verbindung besteht etc, die in einer errors.txt geloggt werden. Als das übliche. Der relevante Code ist oben gepostet und da kann man sehen, dass er funktioniert und keine FEhler produziert. Daher verstehe ich ja auch nicht, dass er in keinen der beiden Blöcke springt?
  9. aldistammkunde

    Kostenloser Webspace von aldistammkunde, auf Homepage erstellen warten

    aldistammkunde hat kostenlosen Webspace.

    yuzuke schrieb:
    Das if Konstrukt MUSS aber erreicht werden! Es muss entweder if oder else ausgeführt werden... Es wird aber GARNICHTS ausgeführt von beidem. Ich erhalte keine Fehlermeldung, kein Garnichts, lediglich die komplette Website ohne die Entrys, da diese ja nicht geladen werden können, weil MySQL deaktiviert ist. Wo ist da mein Fehler? Weder in einer der beiden Blöcke wird mit echo etwas ausgegeben!


    nein!
    das, was ich sagte, ist einer der wenigen fälle, in denen weder if noch else ausgeführt wird - eben weil der Programmteil gar nicht mehr erreicht wird;das Skript bricht bei einem die() sofort, an Ort und Stelle, ab ...probier doch mal

    die();
    if(true)
      echo "true";
    else
      echo "false";
  10. Autor dieses Themas

    y****e

    aldistammkunde schrieb:
    yuzuke schrieb:
    Das if Konstrukt MUSS aber erreicht werden! Es muss entweder if oder else ausgeführt werden... Es wird aber GARNICHTS ausgeführt von beidem. Ich erhalte keine Fehlermeldung, kein Garnichts, lediglich die komplette Website ohne die Entrys, da diese ja nicht geladen werden können, weil MySQL deaktiviert ist. Wo ist da mein Fehler? Weder in einer der beiden Blöcke wird mit echo etwas ausgegeben!


    nein!
    das, was ich sagte, ist einer der wenigen fälle, in denen weder if noch else ausgeführt wird - eben weil der Programmteil gar nicht mehr erreicht wird;das Skript bricht bei einem die() sofort, an Ort und Stelle, ab ...probier doch mal

    die();
    if(true)
      echo "true";
    else
      echo "false";



    Wie ich bereits sagte: ES gibt Code,nach den beiden if und else blöcken, der auch ncoh asugeführt und angezeigt wird, folglich habe ich kein die() und folglich wird nichts abgebrochen oder so. Es wird alles ausgeführt, lediglich MySQL Fehler geloggt und sonst nichts. Die beiden Blöcke werden aber übergangen ....
  11. Hast Du mal überprüft, ob Deine function 'getEntrys' bis zum ende (also bis zum return TRUE bzw FALSE) durchläuft? Evtl. einfach mal (quick&dirty) echo-Anweisungen einsetzen. Denn wenn die PHP-Abarbeitung da schon stockt, können Deine if bzw. else Blöcke nicht mehr abgearbeitet werden.
    Gruß,
    Carsten
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!