PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Problem mit if (https://www.php-resource.de/forum/php-developer-forum/87501-problem-mit-if.html)

dj-giver 11-10-2007 09:38

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 :dontknow:


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!";}
;}
?>


jahlives 11-10-2007 09:53

Brich mal deinen Code um (v.a. die Query). Hast du überhaupt im Manual zu der Fkt nachgelesen? Dort stünde etwas wie
Zitat:

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

ZombieChe 11-10-2007 09:54

Zitat:

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
Zitat:

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.
Zitat:

int mysql_num_rows ( resource $Ergebnis-Kennung )
Hoffe mal das reicht.

edit: Immer diese Schneller-Poster :p

H2O 11-10-2007 10:33

Re: Problem mit if
 
Zitat:

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!";
    }
}
?>


dj-giver 11-10-2007 10:39

Vielen vielen Dank :D :D für eure Hilfe


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:54 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG