PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UID zu Nickname



FlexMax
30.05.2008, 13:12
Hallo,

Steh da grad bissl auf der Leitung und komm nicht dahinter drum bitte ich euch mal um hilfe.

$game1 = mysql_fetch_array(db_query("SELECT user FROM vmsBonusGewinner WHERE GID='13160'"));

So rufe ich den "User"(KlammID) ab, aber komm nicht dahinter wie ich das umändern muss das ich dann in

<?=$game1['user'];?>

Den Nicknamen sehen kann.
Left Join geht ja irgendwie bei array nicht, bzw. kann ich dann nicht nach GameID (GID) abrufen.
Steh da grad bissl an.

Danke im vorraus.

Liebe Grüsse
Markus


P.S. Der Tread von gremlin und CO hat mir nich weitergeholfen.

DimpleX
30.05.2008, 13:45
<?=$game1['user'];?>
zeigt nach sql abfrage daten an die in feld 'user' stehen, wenn es mit feld 'nickname' machst wird das was darin steht angezeigt


DimpleX




Hallo,

Steh da grad bissl auf der Leitung und komm nicht dahinter drum bitte ich euch mal um hilfe.

$game1 = mysql_fetch_array(db_query("SELECT user FROM vmsBonusGewinner WHERE GID='13160'"));

So rufe ich den "User"(KlammID) ab, aber komm nicht dahinter wie ich das umändern muss das ich dann in

<?=$game1['user'];?>

Den Nicknamen sehen kann.
Left Join geht ja irgendwie bei array nicht, bzw. kann ich dann nicht nach GameID (GID) abrufen.
Steh da grad bissl an.

Danke im vorraus.

Liebe Grüsse
Markus


P.S. Der Tread von gremlin und CO hat mir nich weitergeholfen.

Benutzer1699
30.05.2008, 14:04
$game1 = mysql_fetch_array(db_query("SELECT stammdaten.prefix_nickname AS user FROM prefix_woauchimmerdernicksteht AS stammdaten WHERE stammdaten.user IN (SELECT user FROM vmsBonusGewinner WHERE GID='13160')"));


das wäre ein code ohne Join ;)

eselfutter
30.05.2008, 14:13
Wird in der Tabelle überhaupt der Nickname gespeichert, oder nur die ID?

Falls nicht, mußt du auf die Userdaten zugreifen, also die DB Abfrage erweitern.


$game1 = mysql_fetch_array(db_query("SELECT user FROM vmsBonusGewinner WHERE GID='13160'"));

Gibt die User ID aus.

Nun musst Du, falls nicht vorhanden, den Nickname aus der Tabelle vms_userdaten abfragen


$game_nick = mysql_fetch_array(db_query("SELECT nickname FROM '.$db_prefix.'_userdaten WHERE uid='.$game1['user'].' LIMIT 1"));Die Ausgabe würde dann
<?=$game_nick['nickname'];?>
sein.

Aber von mir nicht getestet.

Benutzer1699
30.05.2008, 14:18
@eselfutter:
warum 2 Querys? Entweder wie ich geschrieben habe mit Sub-Select oder eben Join benutzen. Ist besser, da weniger neue Abfragen und weniger Daten und Code verarbeitet werden müssen.

btw.:


$game_nick = mysql_fetch_array(db_query("SELECT nickname FROM ".$db_prefix."_userdaten WHERE uid=".$game1['user']." LIMIT 1"));

FlexMax
30.05.2008, 15:41
leider nur die id. das ist ja mein problem...

Habe den Code jetzt so umgesetzt, aber irgendwie will er noch immer nicht
kommt ne Fehlermeldung in dieser Zeile

$game1 = mysql_fetch_array(db_query("SELECT nickname FROM vms_userdaten WHERE user IN (SELECT user FROM vmsBonusGewinner WHERE GID='50000')"));



unten dann wo es hinsoll.

<?=$game1['nickname'];?>

Vielleicht liegt es daran das die GID noch nicht erreicht ist. Weil das soll ein Bonus für eine bestimmte Spielnummer sein und wenn die Zahl erreicht ist. sollte dann der gewinner dastehen...

eselfutter
30.05.2008, 15:53
leider nur die id. das ist ja mein problem...

Dann nimm mal den Code von ztk. Der sollte helfen und ist besser, als mein Vorschlag. :yes:

Xenon
30.05.2008, 16:06
Ich lese es folgender massen aus :

$nick = db_query("SELECT k.uid,u.nickname FROM
vms_kontodaten AS k
LEFT JOIN vms_userdaten AS u ON u.uid=k.uid
ORDER BY k.uid DESC LIMIT 10");

FlexMax
30.05.2008, 16:08
@esel das ist sein code ^^

@adi das geht ja eben nicht weil ich dann nichtmehr die gid abrufen kann..

Xenon
30.05.2008, 16:10
@adi das geht ja eben nicht weil ich dann nichtmehr die gid abrufen kann..
Welche gid und wieso kannste die nicht mehr abrufen ?

FlexMax
30.05.2008, 16:15
das ist die nummer die eingetragen wird sobald das jeweilige Spiel erreicht wurde.
also zb. GID='10'.... spiel 1,2,3,4,5,6,7,8,9,10 (10 wird dann da eingetragen, mit zeit, uid und gewinnhöhe.

Das ist ne gute Frage, aber es klappt nicht ^^

eselfutter
30.05.2008, 16:23
Also die GID ist die Gameid.
Du willst nun was genau? Anhand der GID sehen wer das Spiel gemacht hat und anstelle der UID den Nickname angezeigt bekommen?

FlexMax
30.05.2008, 16:39
also es gibt unterhalb des spiel eine kleine tabelle wo steht. Game ID 50000 darunter 100000, daneben gewinne usw...
jetzt will ich das man dann gleich sieht wer die jeweile gameid erreicht hat und den gewinn gewonnen hat. aber die klammid (uid) ist dazu doof, da manche nicht die klammid anderer kennen. somit wäre nickname besser

Xenon
30.05.2008, 16:44
Were es nicht zu belastung für die DB ?

FlexMax
30.05.2008, 16:46
nein es gibt ja nicht bei jedem spiel einen bonus... sollen immer nur 3 sein.

@esel und ztk
Eure Sachen funktionieren sobald die gameid erreicht wurd, vorher kommt aber eine fehlermeldung...

Benutzer1699
30.05.2008, 17:05
Dann prüf vor der Ausgabe ob die Variable vorhanden ist, oder mysql_num_rows.

FlexMax
30.05.2008, 17:19
ja aber das problem ist das ja die variable erst vorhanden ist wenn die gameid erreicht wurde... doofe sache. Dann schreibt es nähmlich erst in die vmsBonusGewinner.


$game1 = mysql_fetch_array(db_query("SELECT user FROM vmsBonusGewinner WHERE GID='50000'"));
$game_nick1 = mysql_fetch_array(db_query("SELECT nickname FROM vms_userdaten WHERE uid=".$game1['user']." LIMIT 1"));

funktioniert, aber eben nur wenn in WHERE uid=".$game1['user']." schon drinnen steht unter GID (unzwar) 50000, sonst fehlermeldung

eselfutter
30.05.2008, 20:39
Es kann auch nur eine Fehlermeldung kommen:
Du fragst eine Zeile ab, die es nicht gibt in Deiner Datenbank.....
Um das zu beheben sollte man die Ausgabe in einer if schleife packen.
Dazu braucht man aber den Ausgabe Code.