Ankündigung

Einklappen
Keine Ankündigung bisher.

phpScript hängt sich auf

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • phpScript hängt sich auf

    Wertes Forum,

    folgende Situation:

    Habe eine MySQL Datenbank die in einer config.db.php angesprochen wird.
    Dort wird auch eine Fehlerabfrage gemacht, mit Anzeige der Fehlermeldung.

    In einer anderen Datei wird die config.db.php includiert.
    Und eine MySQL-Abfrage gemacht. Wenn die config.db.php nicht verbinden kann. Hängt sich das Script auf.

    Wie schreibe ich das Script unten um, so das es sich nicht aufhängt.
    ? Fehlt dort eine If Anweisung?


    PHP-Code:
    <?php
    // Aktuelle Berichte einbinden

    // Datenbank einbinden
    include("config.db.php");

    // Anzahl letzten der Berichte die Angezeigt werden sollen
    $anzahl="3";

    //Auslesen der Datenbank

    $list mysql_query("SELECT * FROM $tabelle ORDER BY time DESC LIMIT $anzahl");
    while(
    $row mysql_fetch_array($list)) {

     
    $id $row[0];
     
    $teaser $row[1];
     
    $datum $row[5];


    //Anzeige der Berichte

    echo "[b][size="1"]$datum [/size] $teaser [/b]<a href=\"index.php?doc=berichte/berichte2005#id_$id\">[size="1"]mehr[/size]
    </a>"
    ;

      }

    ?>
    Danke für eure Hilfe

    Michael

  • #2
    binde das script doch per require() ein

    Kommentar


    • #3
      Die config.db.php Datei gibt zwei Möglichkeiten aus.

      1. Alles ist in Ordung und die Daten für den Datenbankzugriff werden übermittelt,
      oder

      2. Die Fehlermeldung.

      Nun wenn die Daten für den mysql_query ankommen, läuft das Script weiter.

      Nur wenn die Fehlermeldung kommt dann nicht.

      Also müste eine Abfrage sein sind es die Daten für den zugriff oder nicht.
      Wenn nein zum Ende dieses Scriptes und wenn ja zum mysql_query.

      ODER?

      Kommentar


      • #4
        Habe festgestellt es liegt nicht am oberen Script sondern es leigt an diesem in der config.db.php

        Ich habe mit Handbuch gelesen die Funftion die bricht das php parsen ab.
        Deshalb wird in der anderen php.Datei nicht weiter gemacht.

        Nun wie kann mann das lösen, das trotzdem weiter geparst wird.
        Jedenfalls mit "die" nicht.

        Sondern?



        PHP-Code:
        <?php

        //Datenbank Connect

        $db = @mysql_connect($host$user$password)
                  or die (
        "Verbindungsaufnahme zum Datenbankserver fehlgeschlagen!
        "
        );
                @
        mysql_select_db($database$db)
                or die (
        "- Datenbank wurde [b]NICHT[/b] gefunden.
        - Verbindungsaufnahme zum Datenbankserver war erfolgreich!
        "
        );

        //Datenbank Connect ENDE

        ?>

        Kommentar


        • #5
          natürlich nicht mit die(), die() ist ja dazu da das parsen abubrechen, du kannst das ganze wenn dann so schreiben:
          PHP-Code:
          <?php
          if (!($db = @mysql_connect($host$user$password))) echo 'Verbindungsaufnahme zum Datenbankserver fehlgeschlagen!
          '
          ;
          if (@
          mysql_select_db($database$db)) echo '- Datenbank wurde [b]NICHT[/b] gefunden.
          - Verbindungsaufnahme zum Datenbankserver war erfolgreich!
          '
          ;
          ?>
          natürlich die if-abfrage am besten über den ganzen teil, wo du auf die db zugreifst, anwenden, sonst werden ja alle fehlermeldungen ausgegeben

          Kommentar


          • #6
            Irgendwie habe ich das mit den if-Schleifen noch nicht verstanden.

            Jedenfall hat es nicht geklappt, oder was ist mit der if-abrage gemeint.

            Nun die Fehlermeldungen sollen nur ausgegeben werden, wenn ein Fehler auftritt sonst nicht.

            Die erste Prüfung soll natürlich sein ist ein Zugriff auf den mysql server überhaupt möglich.
            Danach natürlich, ob überhaupt die Datenbank vorhanden ist.

            Dies soll in der config.db.php stehen. Da ich es mehrfach auf der website brauche.
            Das obrige Script macht die Abfrage, und wird wiederum in eine Seite eingebunden.

            Kommentar


            • #7
              huch, die zweite abfrage ist natürlich falsch, so muss sie aussehen:
              PHP-Code:
              <?php
              if (!(@mysql_select_db($database$db))) echo '- Datenbank wurde [b]NICHT[/b] gefunden.
              - Verbindungsaufnahme zum Datenbankserver war erfolgreich!
              '
              ;
              ?>

              Kommentar


              • #8
                Danke für die Hilfe.

                Muss natürlich den Text der zweiten Abfrage noch anpassen. Da so einmal Nein, Nein und Ja steht.

                Das stimmt natürlich nicht.

                Ist ja nur Nein und Nein.

                Wenn Zugriff zu MySQL nicht steht.

                Nun noch etwas, für was steht eigendlich das "!" und das "@"?

                Kommentar


                • #9
                  das @ hast du ja selbst verwendet, aber trotzdem => fehlerunterdrückung
                  das ! invertiert die aussage, sprich aus TRUE wird FALSE und umgekehrt

                  Kommentar


                  • #10
                    Ha jetzt ja,

                    danke für die mithilfe.

                    Kommentar


                    • #11
                      Nun das Script läuft, allerding nicht so zumeiner kompletten Zufriedenheit.

                      Wenn der Server erreichbar ist und die Datenbank auch, ist alles ok.
                      Nur wenn der Server nicht erreichbar ist, steht auch in der Ausgabe das die Datenbank nicht erreichbar ist. Stimmt ja auch, aber ist nicht ganz richtig da die Abfrage gar nicht richtig ausgeführt werden konnte. Da kein zugriff zum Server erfolgte.
                      Nun wie kann eine Regel geschrieben werden.

                      Wenn Zugriff zum Server, dann Abfrage ob Datenbank erreichbar, wenn ja dann weiter.
                      Wenn kein Zugriff zum Server Ausgabe der Meldung und weiter.
                      Wenn Zugriff zum Server und kein zugriff zur Datenbank ausgabe Meldung und weiter.

                      Hoffe man versteht mein Problem.
                      Das jetzige Script lautet, siehe unten.
                      PHP-Code:
                      <?php
                      if (!($db = @mysql_connect($host$user$password)))
                      echo 
                      'Verbindungsaufnahme zum Datenbankserver fehlgeschlagen!
                      '


                      if (!(@
                      mysql_select_db($database$db)))
                      echo 
                      'Datenbank wurde [b]NICHT[/b] gefunden.'

                      ?>

                      Kommentar


                      • #12
                        das wollte ich übrigens hiermit sagen
                        Zitat von karl-150
                        natürlich die if-abfrage am besten über den ganzen teil, wo du auf die db zugreifst, anwenden, sonst werden ja alle fehlermeldungen ausgegeben
                        in etwa so ändern:
                        PHP-Code:
                        <?php
                        if ($db = @mysql_connect($host$user$password)) {
                        /*hier alles zwischenpacken, was ausgeführt werden soll, wenn verbindung zu server erfolgreich*/
                        }
                        else
                          echo 
                        'Verbindungsaufnahme zum Datenbankserver fehlgeschlagen!
                        '
                        ;
                        ?>

                        Kommentar


                        • #13
                          Ich glaube ich mache es so:

                          PHP-Code:
                          <?php
                          if (!($db = @mysql_connect($host$user$password))) {
                                  echo 
                          'Verbindungsaufnahme zum Datenbankserver fehlgeschlagen!
                          '
                          ;

                          } else if (!(@
                          mysql_select_db($database$db))) {
                                         echo 
                          'Datenbank wurde [b]NICHT[/b] gefunden.';
                          }
                          ?>
                          Trotzdem danke

                          Kommentar


                          • #14
                            Warum benutzt ihr nicht die Funktion die? Wenn die Verbingung nicht funktioniert hat oder die Datenbank nicht vorhanden ist, kann das Script doch beendet werden. Da kann man sich das if doch sparen.

                            Gruß
                            phpfan

                            Kommentar


                            • #15
                              @phpfan:
                              hättest du dir den thread mal durchgelesen wüsstest du, dass er genau davon wegwill
                              er möchte, dass das skript - was da auch immer noch kommen mag - zuende läuft

                              @trusty: so machst du es am besten nicht, besser die db-abfrage in den ersten if-block

                              Kommentar

                              Lädt...
                              X