[MySql] Eingabe mit ausgelesenem Datensatz vergleichen

  • Hi

    Ich bin gut Vorangekommen mit meiner Datenbank.
    Jetzt will ich eine art Login Script bauen.
    Alles kein Problem bis auf das auslesen und Vergleichen aus der Datenbank.

    In der DB hab ich mehrere Spalten, die wichtigen hier "nick" und "passwort"
    Das Passwort ist md5 Verschlüsselt.

    Wie kann ich in der Zeile "nick" nach dem eingegebenen Namen suchen?
    Ich hab n Code Schnippsel aber davon werde ich auch nicht schlau.

    SQL
    SELECT nick FROM users WHERE nick ='$_POST['nick']';


    Wie verwende ich diese SELECT Abfrage, und wie kann ich, wenn einer gefunden wird sein passwort etc. in eine Variable übergeben?

    Wie ich mit einer While schleife alle Daten der Spalte ausgeben kann ist mir klar.

    2. Versuch
    Sollte ich die ganzen nicks in array kopieren mit ner while schleife und die Durchsuchen lassen? oder wäre das Quatsch?
    Hört sich zumindest so an! :lol:

  • Ich habe das so gemacht:

    Code
    "WHERE ". 
        "(Nickname like '".$_REQUEST["name"]."') AND ". 
        "(Kennwort = '" .$_REQUEST["pwd"]."')";

    Weiß nicht ob es dir weiterhilft, koennte jedoch sein! :P

  • du nutz den query den du da hast und guckst dan mit mysql_fetch_row ob es dafür einträge gibt ich glaub so würed das gehen
    aber ich hab grad vergessen ob man das mit dem sql befehl count machen würe oder ob das auch so geht

  • Ich habs geschafft.
    Jetzt muss ich nur noch den rest Coden :lol:

    Den durchbruch hatte ich mit mysql_num_rows hab einfach alles mögliche Probiert bis 1 kam :D

  • Nächstes Problem.

    Ich hab jetzt ein wenig weiter gemacht

    Dann kommt:

    Zitat


    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /www/usersites/m-r/rmb/pub/rmb/mysql/index.php on line 12

    Wieso das?

  • moin,
    probiers mal so:

    Code
    $anfrage = "SELECT * FROM users WHERE nick like '$name'";

    Gruß crAzywuLf :D

  • Jup das geht.

    Aber ich hab wieder Probleme :cry:

    Dann kommt:

    Zitat

    Parse error: syntax error, unexpected T_STRING in /www/usersites/m-r/rmb/pub/rmb/mysql/index.php on line 6

    Die besagte Zeile:

    Code
    $anfrage = SELECT * FROM users WHERE nick like '$_POST['ename']';

    Was ist falsch? :oops:

  • also ich finde dieses like nicht nötig (ich habs noch nie benutzt) schreib doch einfach ein = also so:

    Code
    $anfrage = SELECT * FROM users WHERE nick = "'$_POST['ename']'";
  • Ok bis jetzt läuft alles top. :mrgreen:

    es geht alles bis auf das vergleichen des Passwortes.


    Das pw, das ich eingegeben habe ist richtig.
    Ich habe beide md5 Hashs verglichen.

    aber das Script gibt aus, das es falsch ist.
    Wieso wo liegt die tote maus?

    EDIT
    beim importieren der Datensätze in die DB kam noch ein Leerzeichen hinein :evil:

  • moin,
    schau doch mal woran es liegt z.B. so

  • @RMB
    Ich finde deine schreibweise ziemlich schlecht.
    Man sollte den Code schon ordnen sonst weiß man nicht was,was ist.
    Hier und du solltest darauf achten all "{" auch wieder richtig zu scließen.


    Und warum holst du dir die Daten als zahlen aus der DB also zb. $row[1]"
    mach es doch mit den namen dann kommst du nicht durcheinander $row['name'].
    Oder ist deine Tabellenstruktur in zahlen aufgebaut?glaub ich weniger.

    [Blockierte Grafik: http://azustek.az.funpic.de/hf.gif]
    <?php
    $artists = array("Methodman", "Big L");
    if(!in_array($new_artist, $artists)) {
    array_push($artists, $new_artist);
    }

  • @wulf
    es war das Leerzeichen beim Eintragen des Passwortes das noch vor dem md5 stand.

    Sonic
    durch das Probieren kopieren umschreiben, hat sich natürlich viel verschoben.
    Werd ich sicher noch ausbügeln :D
    Ich hab das so gemacht weil ich auf $row['nick'] noch keine Daten bekomme. muss noch schauen.

    Aber funktionieren tut jetzt alles super
    Vielen Dank für die Hilfe.