Ergebnis 1 bis 9 von 9

Thema: [Php Mysql] Daten vergleichen?

  1. #1

    [Php Mysql] Daten vergleichen?

    Hi!

    Ich weiß wie man Daten aus der Datenbank rausholt usw, aber ich weiß nicht wie ich jetzt diese Daten (z.B. einen Nickname der in der Datenbank ist) und ein Input (z.B. bei einem Anmeldeformular) so vergleichen soll... mit einer If Abfrage, ja, aber wie? Ich habe schon viele durchprobiert, aber nie hats geklappt.....

    Warte geduldig auf Antwort...^^

  2. #2
    Poste mal deine Abfragen, die nicht funktioniert haben (und zwar den ganzen relevanten Teil des Codes, nicht nur die Zeile mit dem if).

  3. #3
    Ähm, das hab ich net... aber ich kann dir den momentanen code schicken...

    Ich eitier das dann hier rein


    Hier der Code:

    PHP-Code:
    <?php
    include ("dbconnect.php");
    ?>
    <html>
    <head>
    <h1>
    <center>Willkommen!</center>
    <h3><br>
    <CENTER>Hier können sie sich anmelden!</CENTER>
    </h3>
    </h1>
    </head>
    <body>
    Um sich anzumelden müssen sie einige Daten angeben. Diese Daten werden nicht an Dritte weitergegeben, sondern ausschließlich für diese Seite verwendet. Unter Umständen benutzen wir ihre E-Mail Adresse um ihnen einen Newsletter zu zuschicken.<br><br><br>
    <form>
    <font size=2 color=red>
    Bitte geben sie hier ihren gewünschten Usernamen ein:<br>
    <input name="username"><br><br>
    Bitte geben sie hier ihr gewünschtes passwort ein:<br>
    <input type="password" name="userpasswort"><br>
    Bitte bestätigen sie ihr Passwort:<br>
    <input type="password" name="passwortbestätigung"><br><br>
    Bitte geben sie ihre E-Mail Adresse ein:<br>
    <input name="usermail"><br><br>
    Bitte geben sie hier ihren BNet Account an:<br>
    <input name="account"><br><br><br>
    Bitte überprüfen sie ihre Angaben bevor sie ihre Angaben abschicken!<br>
    <input type="submit" name="abschicken" value="Anmelden"><br>
    </font>
    </form>
    <?php
    if (isset($abschicken))
    {
    $prüfpw "SELECT nick FROM user WHERE nick = '$username'";
    if (
    $prüfpw == $username)
    {
    echo 
    "Ihr Username ist bereits belegt!";
    }
    else
    {
    if (
    $userpasswort == $passwortbestätigung)
    {
    if (
    $account != "")
    {
    if (
    $usermail != "")
    {
    //Datenbankeinträge machen:
    $datenbank "INSERT INTO user (nick, passwort, account, email) VALUES ('$username', '$userpasswort', '$account', '$usermail')";
    $eintragen mysql_query($datenbank);
    echo 
    '<meta http-equiv="refresh"content="0;URL=registriert.html">';
    }
    else
    {
    echo 
    'Anmeldung fehlgeschlagen. Sie müssen eine Mailadresse auswählen!';
    }
    }
    else 
    {
    print 
    "Anmeldung fehlgschlagen! Bitte geben sie einen gültigen BNet Account an!";
    }
    }
    else
    {
    print 
    "Anmeldung fehlgeschlagen! Ihr Passwort stimmt nicht mit der passwortbestätigung überein!";
    }
    }
    }
    ?>
    </body>
    </html>

  4. #4
    Dürfte ich annehmen, dass du diese if-Abfrage meinst?
    PHP-Code:
    $prüfpw "SELECT nick FROM user WHERE nick = '$username'";
    if (
    $prüfpw == $username
    Wenn ja, ist es klar, dass es nicht funktioniert, du vergleichst deine SQL-Abfrage mit dem Usernamen, nicht das Ergebnis. Die Abfrage ergibt nur True, wenn der Username SELECT nick FROM user WHERE nick = '$username' lautet.
    Folgender Code sollte funktionieren:
    PHP-Code:
    $pruefpw "SELECT nick FROM user WHERE nick = '" $_GET['username'] . "'";
    $result mysql_query($pruefpw$dblink); # für $dblink den Rückgabewert von [tt]mysql_connect()[/tt] aus dbconnect.php einsetzen
    if(mysql_num_rows($result) > 0
    Änderungen:
    1. Ich vergleiche nicht, die Abfrage mit dem Usernamen, sondern überprüfe, ob sie mindestens ein Ergebnis (= mindestens einen User mit diesem Namen) zurückgibt.
    2. Ich habe $prüfpw mal in $pruefpw umbenannt, ich würde keine Non-ASCII-Zeichen in Variablen-, Funktions- und Klassennamen verwenden
    3. Ich habe $username durch $_GET['username'] ersetzt, damit es auf wirklich allen Servern funktioniert.
    4. Ich habe den SQL-String mit Verkettung zusammengebaut. Eher prinzipiell bedingt

    Geändert von Lukas (27.05.2005 um 10:00 Uhr)

  5. #5
    Thx!

    Das funzt Fantastisch! Aber es geht auch ohne den DB-Link^^ ich frag mich sowieso was der bringen soll xD

  6. #6
    Zitat Zitat von raian
    Thx!

    Das funzt Fantastisch! Aber es geht auch ohne den DB-Link^^ ich frag mich sowieso was der bringen soll xD
    Meines wissens ist das wichtig wenn man mehr als eine DB nutzt und es gab noch mehr Gründe die mir missfallen sind ^^,

  7. #7
    Zitat Zitat von dadie
    die mir missfallen sind ^^,
    entfallen

    Aber ich hab hier einfach mal ne Frage (hab mir gerade den Eintrag im PHP-Manual zu mysql_query durchgelesen):
    Wieso soll eine mySQL-Anfrage, die per mysql_query ausgeführt wird, nicht mit einem Semikolon enden? Bei einer "normalen" Anfrage (per mysql.exe or whatever) muss eine Anfrage doch sogar damit enden - wieso nicht hier?

  8. #8
    Ich denke mal, weil in PHP bei mysql_query() klar ist, wo die Abfrage zuende ist (am Ende des Strings, der übergeben wird) Vielleicht fügt PHP ja auch selbstaändig ans Ende automatisch ein Symikolon ein und dann wäre es doppelt

  9. #9
    phpmyadmin mach da selber auch ein semikolon hinter o.o.
    Und ich auch.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •