Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei der if-Anweisung

Einklappen

Neue Werbung 2019

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

  • Problem bei der if-Anweisung

    Hallo!

    Es geht um folgendes Skript:

    (index.php)
    PHP-Code:

    <!DOCTYPE html PUBLIC
    "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



    <html>


       <head>

          <title>Titel</title>
          
       </head>
       
       
       <body>
       
          <div>

    <?php

    $user 
    "xxxxx";
    $pass "xxxxx";
    $db "xxxxx";
    $host "xxxxx";

    $link mysql_connect$host$user$pass );

    if( ! 
    $link ) {
       die( 
    "Konnte Verbindung zur MySQL-Datenbank nicht aufbauen: ".mysql_error() );
    }

    mysql_select_db$db$link )
       or die ( 
    "Konnte $db nicht &ouml;ffnen: ".mysql_error() );

     
    ?>

    <table>

       <tr>
          <td width="15%" bgcolor="#C0C0C0">

    <?php

    if( ! $_GET['id'] && ! $_GET['page'] ) {
       
    $result mysql_query"SELECT navi FROM article where id='1' AND page='1'" );

    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       foreach (
    $line as $col_value) {
           echo 
    "$col_value";
       }
    }

    } else if( empty( 
    $_GET['id'] ) && ! $_GET['page'] ) {
       
    $result mysql_query"SELECT navi FROM article where id='".$_GET['id']."' AND page='1'" );

    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       foreach (
    $line as $col_value) {
           echo 
    "$col_value";
       }
    }

    } else if( empty( 
    $_GET['id'] ) && empty( $_GET['page'] ) ) {
       
    $result mysql_query"SELECT navi FROM article where id='".$_GET['id']."' AND page='".$_GET['page']."'" );

    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       foreach (
    $line as $col_value) {
           echo 
    "$col_value";
       }
    }

    } else {
       die( 
    "Es trat ein Fehler auf." );
    }

    ?>

          </td>
          <td width="85%" bgcolor="#B0B0B0">

    <?php

    if( ! $_GET['id'] && ! $_GET['page'] ) {
       
    $result mysql_query"SELECT article FROM article where id='1' AND page='1'" );

    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       foreach (
    $line as $col_value) {
           echo 
    "$col_value";
       }
    }

    } else if( empty( 
    $_GET['id'] ) && ! $_GET['page'] ) {
       
    $result mysql_query"SELECT article FROM article where id='".$_GET['id']."' AND page='1'" );

    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       foreach (
    $line as $col_value) {
           echo 
    "$col_value";
       }
    }

    } else if( empty( 
    $_GET['id'] ) && empty( $_GET['page'] ) ) {
       
    $result mysql_query"SELECT article FROM article where id='".$_GET['id']."' AND page='".$_GET['page']."'" );

    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       foreach (
    $line as $col_value) {
           echo 
    "$col_value";
       }
    }

    } else {
       die( 
    "Es trat ein Fehler auf." );
    }

    mysql_close$link );

     
    ?>

          </td>
       </tr>
       
    </table>

          </div>
          
       </body>
       
       
    </html>
    Wenn ich die Seite dann mit dem Link

    http://www.meine-hp.de/index.php?id=1

    oder

    http://www.meine-hp.de/index.php?id=1&page=1

    öffne, zeigt mir der Browser dies an:

    Es trat ein Fehler auf!

    Hei�t: er springt zu else, obwohl er zu einer der else if-Anweisungen springen soll und so wie bei if den Text aus der DB anzeigen soll.

    Wo ist der Fehler?

    Danke schon einmal im Voraus.


  • #2
    ich verstehe nicht, warum sich php anders verhalten sollte.

    Alledings sind deine If-abfragen für mich unverständlich, denn in diesem fall gibt es keinen großen unterschied zwischen empty und !. Beide sind wahr, wenn nichts übergeben wird. und da bei keinem deiner beiden links nichts übergeben wird, verhält php sich richtig.

    Kommentar


    • #3
      Danke! Gut, dass es dir mit empty aufgefallen ist! Jetzt funktiniert es perfekt!

      Kommentar

      Lädt...
      X