Fortlaufende Kontonummer

LarsB

Mitglied
Hallo ihr lieben,

mal wieder eine Frage xD

also ich möchte gerne, dass jeder User ein konto eröffnen kann. Nun das Problem:

1. Wie kann ich das umsetzten, sodass jeder User eine Individuelle Kontonummer bekommen (z.B. 73452) + dahinter eine Fortlaufenden nummer (also z.B.:
PHP:
73452 01
73452 02
73452 03
[...]
)
:confused::confused::confused:
 
Ein MySQL Feld auf auto_increment setzen, per [phpf]sprintf[/phpf] passend formatieren und mit deinem Präfix zusammenfügen.
 
Eine Frage noch,

ich habe eine DB namens user und eine DB namens Kontonummer.
Nun möchte ich, das die Id von der DB user auch in die DB Kontonummer geschrieben wird, damit jeder user auch auf sein Konto zugreifen kann und nicht auf ein anderes. Wie kann ich dies am besten umsetzten? Und klappt dies auch?
 
Einfach bei Kontonummer eine Spalte mit "user_id" oder so anlegen und da dann, wenn der User ein Konto anlegt, die Id des Users hineinspeichern. Mithilfe von JOIN kannst du dann im SQL-Statement die entpsrechende Daten auslesen.
Zur zweiten Frage, ja es funktioniert, solange man keine Syntaxfehler oder dergleichen drin hat :D
 
Meinst du DB oder Tabelle? Ist ein Unterschied ;)

Ansonsten kannst du nach dem Anlegen des Users (INSERT - Query) mittels mysql_insert_id() an die User ID kommen. Diese User ID ist der Wert, der in der User Tabelle in dem Feld mit der Eigenschaft "auto_increment" steht.
Wenn du dann das Konto anlegst, kannst du die User ID mit übergeben.

Verbinden kannst du dann die beiden Tabellen über einen INNER JOIN auf die beiden Spalten mit der User ID.

Ist es das, was du meinst?
 
Danke meinte natürlich Tabelle ;)

nun kommt die nächste Frage auf. Wie rufe ich die Daten bei dem Login ab? Kann ich das folgendermaßen machen?

PHP:
<?php 
// Session starten
session_start ();

// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("localhost", "xxx", "xxx"); 
if (!mysql_select_db ("xxx", $connectionid))
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ". 
    "Id, Benutzername, Email, Name, EP, WP, nachrichten, Geld, privaterstatus, prozente, firmenname, firmenart, firmenbudget, produkte, status ". 
  "FROM ". 
    "user ". 
  "WHERE ". 
    "(Benutzername like '".$_REQUEST["name"]."') AND ". 
    "(Passwort = '".md5 ($_REQUEST["pwd"])."')"; 
$result = mysql_query ($sql); 

$sql = "SELECT ". 
    "Kontonummer ". 
  "FROM ". 
    "kontonummer ". 
$result = mysql_query ($sql); 


if (mysql_num_rows ($result) > 0) 
{ 
  // Benutzerdaten in ein Array auslesen. 
  $data = mysql_fetch_array ($result); 

  // Sessionvariablen erstellen und registrieren 
  $_SESSION["user_id"] = $data["Id"]; 
  $_SESSION["user_benutzername"] = $data["Benutzername"]; 
  $_SESSION["user_email"] = $data["Email"]; 
  $_SESSION["user_name"] = $data["Name"]; 
  $_SESSION["user_ep"] = $data["EP"];
  $_SESSION["user_wp"] = $data["WP"];
  $_SESSION['user_nachrichten'] = $data["nachrichten"];
  $_SESSION['user_geld'] = $data["Geld"];
  $_SESSION['user_privaterstatus'] = $data["privaterstatus"];
  $_SESSION['user_prozente'] = $data["prozente"];
  $_SESSION['user_firmenname'] = $data["firmenname"];
  $_SESSION['user_firmenart'] = $data["firmenart"];
  $_SESSION['user_firmenbudget'] = $data["firmenbudget"];
  $_SESSION['user_produkte'] = $data["produkte"];
  $_SESSION['user_status'] = $data["status"];
  $_SESSION['kontonummer_kontonummer']= $data["Kontonummer"];





  header ("Location: intern.php"); 
} 
else 
{ 
  header ("Location: formular.php?fehler=1"); 
} 
?>

wahrscheinlich nicht ne xD
in die Geschichte muss ich mich erstmal wieder richtig reinfuchsen xD
so nach der learning by doing art :D
 
Mittels INNER JOIN, wie schon erwähnt wurde ;)
PHP:
# [....]
$sql = "SELECT 
    `u`.*, `k`.*
FROM
    `user` AS `u`
    INNER JOIN `konto` AS `k` ON `k`.`user_id` = `u`.`user_id`
WHERE
    `u`.`username` = '.....'
    AND `u`.`password` = '.....'";

$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) == 1)
{
    $data = mysql_fetch_assoc($res);
    // in $data sind nun alle Spalten deiner beiden Tabellen vertreten. Besser ist es, wenn du im 
    // SELECT nur die Spalten auswählst, die du auch benötigst.
    // Spalten aus der Tabelle user mit `u`.`SPALTENNAME`
    // Spalten aus der Tabelle konto mit `k`.`SPALTENNAME`
}
# [....]

So in etwa. Tippfehler darfst du behalten ;)
 
wahrscheinlich bin ich zu doof dafür oder so ...k.A. xD...

also habe den Code so geändert:

PHP:
$sql = "SELECT 
    `u`.'Id', `u`.'Benutzername', `u`.'Email', `u`.'Name', `u`.'EP', `u`.'WP', `u`.'privatstatus', `u`.'nachrichten', `u`.'Geld', `u`.'firmenname', `u`.'firmenbudget', `u`.'produkte', `u`.'status' `k`.'kontonummer'
FROM
    `user` AS `u`
    INNER JOIN `kontonummer` AS `k` ON `k`.`userid` = `u`.`Id`
WHERE
    `u`.`Benutzername` = '".$_REQUEST["name"]."'
    AND `u`.`Passwort` = '".md5 ($_REQUEST["pwd"])."'";

$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) == 1)
{
    $data = mysql_fetch_assoc($res);
    // in $data sind nun alle Spalten deiner beiden Tabellen vertreten. Besser ist es, wenn du im 
    // SELECT nur die Spalten auswählst, die du auch benötigst.
    // Spalten aus der Tabelle user mit `u`.`SPALTENNAME`
    // Spalten aus der Tabelle konto mit `k`.`SPALTENNAME`
}

nun spuckt er folgende Fehlermeldung aus:

PHP:
Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ''Id', `u`.'Benutzername', `u`.'Email', `u`.'Name', `u`.'EP', `u`.'WP', `u`.'priv' in Zeile 2

was habe ich falsch gemacht?
 

Neue Beiträge

Zurück