Benutzer abfrage

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
svenrieger
Mitglied
Beiträge: 50
Registriert: 22.01.2007 12:57
Wohnort: Malsch
Kontaktdaten:

Benutzer abfrage

Beitrag von svenrieger »

ch habe in meiner Datenbank ca 700 Mitglieder eines Vereins eingetragen.
Nun möchte ich das wenn sich ein Mitglied des Vereins registriert das in der Datenbank abgefragt wird ob dieser User, Mitglied des Vereins ist oder nicht.
Dementsprechend möchte ich eine E-Mail bekommen ob er Mitglied ist oder nicht.

z.B.

In der Datenbank User_table steht der Name Hans Meier drin.

Hans Meier registriert sich im Forum.

Nun soll in der Datenbank User_table abgefragt werden ob ein Mitglied des Vereins Hans Meier heißt.

Wenn ja dann möchte ich eine E-Mail in der drinsteht:

Hans Meier hat sich registriert und ist Mitglied des Vereins.

Wenn nein dann möchte ich eine E-Mail in der drinsteht:

Hans Meier hat sich registriert und ist kein Mitglied des Vereins.


Kann mir da jemand helfen wie ich dass anstellen kann.

Danke
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ganz einfach, bau es in das Forum ein und schon läufts....

Wie wäre es mit ein paar Randbedingungen?
  • Welche Forenversion
  • Womit soll verglichen werden (Benutzername mit Nachname, oder extra feld oder oder ....)
  • Wie sieht die Registrierung generell aus (Aktivierung durch Admin/Email?)
  • In welcher Form stehen die Daten zur Verfügung (gleiche Datenbank/andere Datenbank)
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
svenrieger
Mitglied
Beiträge: 50
Registriert: 22.01.2007 12:57
Wohnort: Malsch
Kontaktdaten:

Beitrag von svenrieger »

Sorry für die fehlenden Angaben.

Forenversion 2.0.23

Es soll der Vor und Nachname verglichen werden sie sind in der user_table mit firstname und lastname deklariert.

Aktivierung durch Admin ist ausgeschalten.

Die Daten stehen in der selben Datenbank.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Aha. Dann schau mal in die includes/usercp_register.php. Hier finden sich folgende Zeilen:

Code: Alles auswählen

			if ( $board_config['require_activation'] == USER_ACTIVATION_ADMIN )
			{
				$sql = "SELECT user_email, user_lang 
					FROM " . USERS_TABLE . "
					WHERE user_level = " . ADMIN;
Dieser und der folgende Teil des Codes sorgt dafür, dass der Admin bei Aktivierung durch den Admin eine Mail bekommt. Da du das aber wohl ja nicht brauchst kannst du das leicht umfunktionieren.

Die meisten Teile der Email-Funktionen des Emailers die Folgen sind einigermaßen selbsterklärend, daher werde ich hier jetzt nur grob beschreiben, wie du die Datenbankabfrage aufbaust, den Text kannst du im Email-Template im language/lang_german/emails/admin_activate.txt bearbeiten wie du willst.

Die SQL Abfrage kannst du wie folgt machen:

Code: Alles auswählen

$user_to_search = trim(preg_replace($unhtml_specialchars_match, $unhtml_specialchars_replace, substr(str_replace("\'", "'", $username), 0, 25)));
//Mehrfachleerzeichen zu einem einzelnen zusammensetzen (falls welche vorkommen, sonst wird es schwierig den Namen zu finden):
$user_to_search = preg_replace("/ +/s", " ", $user_to_search);
//Jetzt den Namen in Vor- und Nachnamen zerlegen:
$user_to_search = explode(' ', $user_to_search);
$user_to_search[0] = str_replace("'", "\'", $user_to_search[0]);
$user_to_search[1] = str_replace("'", "\'", $user_to_search[1]);
//Hoffentlich hat der User jetzt nicht die Reihenfolge vertauscht, suchen...

$sql = "SELECT lastname, firstname FROM user_table WHERE firstname = '{$user_to_search[0]}' AND lastname = '{$user_to_search[1]}'";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Fehlschlag', '', __LINE__, __FILE__, $sql);
}
if($db->sql_numrows($result))
{
//Hier den Code für den Fall, dass es den User gibt
}
else
{
//Hier den für den Fall dass es ihn nicht gibt
}
Die beiden letzten Codesegmente darfst du mal selbst probieren :P

Das hier könnte dabei hilfreich sein:

Code: Alles auswählen

'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $board_config['board_email_sig']),
Die Zuweisung an das Email Template funktioniert im Prinzip genau so wie beim HTML Templatesystem (KB:template_system, KB:template_syntax).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
svenrieger
Mitglied
Beiträge: 50
Registriert: 22.01.2007 12:57
Wohnort: Malsch
Kontaktdaten:

Beitrag von svenrieger »

Danke den Rest bekomme ich selbst hin.
Antworten

Zurück zu „Coding & Technik“