Einzelnen Beitrag anzeigen

infY2k7

Registriert seit: 21. Mai 2008
23 Beiträge
 
#1

bestimmten wert aus einer mysql-datenbank auslesen

  Alt 12. Jul 2008, 10:56
Datenbank: mysql • Version: 5.0.51 • Zugriff über: phpmyadmin?
Hi junx!
Hab mich etwas in mysql eingelesen, rumgebastelt, getestet,.. und es jetzt geschafft mit einem Programm meine mysql-Datenbank zu verwalten. Hab mir hier http://www.michael-puff.de/Developer/Delphi/Tutorials/ das Beispielprogramm runtergeladen und etwas editiert(siehe Anhang).
Soweit funktioniert auch alles, außer der "ändern" button, jedoch ist das nicht weiter schlimm.

Nun will ich in einem anderem Delphi-Programm 2 Editfelder einfügen.
Edit1 für den usernamen, Edit2 für das userpw und dazu noch ein login-Button.
Es soll dann geprüft werden, ob der username und das userpasswort mit dem in der mysql Datenbank übereinstimmen.
Ich würde das hinkriegen, in dem ich wie in dem Programm im Anhang einfach alles auslese und dann nach dem username in der Tabelle suche(die Zeile rauskriege) und dann eine Spalte weiter das Passwort überprüfen lasse. Jedoch ist mir das zu unsicher und geht sicher viel einfacher.

Also meine Frage: wie kann ich praktisch NUR die Zeile mit username+passwort auslesen und checken obs richtig ist, ohne gleich alles auszulesen, denn das halte ich für unsicher

Was ich bisher habe ist das hier:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  _myCon: PMySQL; //unseren Verbindungsdeskriptor
  host, user, pass, db: PChar; //die Anmeldedaten
  _myRes: PMySQL_Res; //hier wird der gesamte Ergebnissatz
  idAuthor: String;
_mySubRes: PMySQL_Res; //benötigt, um Autor zu ermmitteln
  _myRow: PMySQL_Row; //enthält den aktuellen Datensatz
  _mySubRow: PMySQL_Row; //benötigt, um Autor zu ermmitteln
  query: String;
  vorname: String;
begin
  //Aufnehmen der Anmeldedaten
  host := pchar(edit1.Text);
  user := pchar(edit2.Text);//allgemein der username um in die datenbank reinzukommen(root)
  pass := pchar(edit3.Text);//allgemein das pw
  db := pchar(edit4.Text);//datenbank
  username:=pchar(edit5.Text);//zu prüfender username(steht in der mysql-tabelle)
  userpw:=pchar(edit6.text);//zu prüfendes userpw (steht in der mysql-tabelle)

  //jetzt wird _myCon initialisiert
  _myCon := mysql_init(nil);
  if _myCon = nil then
  begin
    ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
    Exit;
  end;

  //anschließend wird die Verbindung hergestellt
  if mysql_real_connect(_myCon, host, user, pass, db, 3306, nil, 0) = nil then
  begin
    ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(_myCon));
    Exit;
  end;
  ShowMessage('Verbindung hergestellt');

  query := 'SELECT vorname FROM apitest WHERE nr=0';

mysql_close(_myCon);
end;
Verbinung hergestellt, soweit schonmal gut. Jedoch fehlt noch das Auslesen der Tabelle und das prüfen des username+pw!

Danke im Vorraus, mfy infY
Angehängte Dateien
Dateityp: rar mysql_verwaltung_699.rar (452,1 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat