Problem mit if

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

  • Problem mit if

    Hallo Leute,
    habe ein verzweifelndes Problem.

    Es soll else {echo "leider ist Ihrem Gebiet kein AD zugeteilt";} angezeigt werden, wenn kein AD-Mitarbeiter in der Tabelle gefunden wurde. So die Theorie. Leider erscheint das "echo" nicht. Was habe ich da falsch gemacht???

    P.S. Ich bin blutiger Anfänger was PHP angeht. Ich bitte euch um detaillierte Hilfe, vielen Dank


    PHP-Code:
    <form action="<?php echo $_SERVER['Request_URI']; ?>" method="post">
        <input type="text" maxlength="5" name="plz" /><br>
        <button type="submit" name="abschicken" value="Suchen">Suchen</button> 
    </form>
    <?php
    include("dbconnect.php");

    $plz $_POST['plz'];
    $length = isset($_POST['plz']) ? strlen($_POST['plz']) : 0

    if (
    $length != 0) {
    if (
    $length == 5) {

    if (isset(
    $_POST['abschicken'])) {$abfrage "SELECT vertreter.name, vertreter.email, vertreter.tel, vertreter.fax, vertreter.mobil, vertreter.plz, vertreter.ort, vertreter.adresse FROM vertreter_zuort INNER JOIN vertreter ON vertreter.nr = vertreter_zuort.nr WHERE $plz BETWEEN vertreter_zuort.plzvon AND vertreter_zuort.plzbis";

    $ergebnis mysql_query($abfrage);

     if (
    $ergebnis != 0) { 

    while(
    $row mysql_fetch_object($ergebnis))
          {echo 
    "\t\n <br><B>$row->name</B><br>";
                   echo 
    "\t\n $row->adresse<br>";
                     echo 
    "\t\n $row->plz $row->ort<br><br>";
                     echo 
    "\t\n $row->tel<br>";
                     echo 
    "\t\n $row->mobil<br>";
                     echo 
    "\t\n $row->fax<br>";
                     echo 
    "\t\n $row->email<br>";}
            ;}
            else {echo 
    "leider ist Ihrem Gebiet kein AD zugeteilt";}
            ;}
            
        ;}
        else {echo 
    "<font color=\"red\">Bitte geben Sie Ihre vollst&auml;ndige PLZ an!";}
    ;}
    ?>

  • #2
    Brich mal deinen Code um (v.a. die Query). Hast du überhaupt im Manual zu der Fkt nachgelesen? Dort stünde etwas wie
    Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung oder FALSE, falls die Anfrage nicht korrekt ausgeführt wurde. Für alle anderen SQL Anweisungen ist der Rückgabewert von mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE. Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern.
    Deine Query ist wie es scheint nicht falsch aufgebaut, also wirst du immer eine MySql-Ressource zurückbekommen. Deine Fehlermeldung käme nur zum Tragen wenn die Query falsch wäre. Nicht jedoch wenn die Query nix findet!

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Was habe ich da falsch gemacht???
      • Die Regeln nicht gelesen.
      • Eine MySQL Resource auf einen numerischen Wert überprüft.
      • Nicht im php Handbuch den Rückgabewert der mysql_query() Funktion nachgeschlagen.
      • Und daher auch nicht auf die Funktion mysql_num_rows() gekommen, die geholfen hätte

      Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern.
      int mysql_num_rows ( resource $Ergebnis-Kennung )
      Hoffe mal das reicht.

      edit: Immer diese Schneller-Poster

      Kommentar


      • #4
        Re: Problem mit if

        Original geschrieben von dj-giver
        Ich bin blutiger Anfänger was PHP angeht. Ich bitte euch um detaillierte Hilfe,
        Nicht deswegen der detaillierte Code, sondern um zu zeigen, wie er auch lesbar dargestellt werden könnte:
        PHP-Code:
        <?php
        echo "
            <form action='" 
        $_SERVER['Request_URI'] . "' method='post'>
                <input type='text' maxlength='5' name='plz' /><br />
                <button type='submit' name='abschicken' value='Suchen'>Suchen</button> 
            </form>"
        ;

        include(
        "dbconnect.php");

        $plz $_POST['plz'];
        $length = isset($_POST['plz']) ? strlen($_POST['plz']) : 0

        if (
        $length != 0) {
            if (
        $length == 5) {
                if (isset(
        $_POST['abschicken'])){
                    
        $abfrage "
                        SELECT 
                            vertreter.name, 
                            vertreter.email, 
                            vertreter.tel, 
                            vertreter.fax, 
                            vertreter.mobil, 
                            vertreter.plz, 
                            vertreter.ort, 
                            vertreter.adresse 
                        FROM 
                            vertreter_zuort 
                        INNER JOIN 
                            vertreter ON vertreter.nr = vertreter_zuort.nr 
                        WHERE 
        $plz BETWEEN vertreter_zuort.plzvon AND vertreter_zuort.plzbis";

                    
        $ergebnis mysql_query($abfrage);
                    if (
        mysql_num_rows($ergebnis) != 0) { 
                        while(
        $row mysql_fetch_object($ergebnis)){
                            echo 
        "\n <br /><b>$row->name</b><br />";
                            echo 
        "\n $row->adresse<br />";
                            echo 
        "\n $row->plz $row->ort<br /><br />";
                            echo 
        "\n $row->tel<br />";
                            echo 
        "\n $row->mobil<br />";
                            echo 
        "\n $row->fax<br />";
                            echo 
        "\n $row->email<br />";
                        }
                    }
                    else{
                        echo 
        "Leider ist Ihrem Gebiet kein AD zugeteilt";
                    }
                }
            }
            else{
                echo 
        "<font color=\"red\">Bitte geben Sie Ihre vollst&auml;ndige PLZ an!";
            }
        }
        ?>
        Gruss
        H2O

        Kommentar


        • #5
          Vielen vielen Dank für eure Hilfe

          Kommentar

          Lädt...
          X