ka :(

DarkSummer

Erfahrenes Mitglied
member script(multi)

hi ich hab a problem mit meinem kleinen member script ^^ also ich hab da 3 games drin is alles mysql und hab eine spalte game in der tabelle
da ist
1. cs
2. quake
3. ut

wie kann ich es dabei realiesieren das sich ein spieler auch fuer 2 games einschreibn kann also das meinetwegen da 2 zahlen drin steht oder so?
die abfrage sieht so aus

SELECT FROM pmember WHERE game LIKE '$g' and STATUS LIKE 'member'

das g wird dabei in der url festgelegt
member.php?g=1 oder so

danke fuer help
 
mach eine dreistellige zahl. erste stelle für cs, zweite für quake, dritte für ut.

also:

bei nur cs: 100
bei nur quake: 010
bei nur quake und ut: 011
usw..

dann kannst du es mit folgendem auseinandernehmen.

PHP:
if(substr($g,0,1) == "1") $cs = true;
if(substr($g,1,1) == "1") $quake = true;
if(substr($g,2,1) == "1") $ut = true;
 
Zuletzt bearbeitet:
hmm und wie mach ich das wenn dann ut und cs sind ? bzw wie muss dazu dann ne abfrage laufen muss ich da jedesmal davorsetzen if($ut = true) ??
 
kommt drauf an, wie du weiterarbeiten willst.

wenn du jetzt für jedes angegebene spiel etwas ausgeben willst, dann geht es mit den if abfragen, ansonsten weiß ich nicht, was du willst. ;)
 
warum erstellst du eigentlich nicht einfach für jedes spiel eine neue zeile in der tabelle?

Code:
|----------|------|--------|--------|
|   name   |  cs  |   ut   |  quake |
|----------|------|--------|--------|
|  player1 |   0  |    1   |    1   |
|----------|------|--------|--------|
|  player2 |   0  |    0   |    1   |
|----------|------|--------|--------|
|  player3 |   1  |    0   |    1   |
|----------|------|--------|--------|
usw..


dann kannst du ja ganz einfach über where abfragen. das wäre einfacher. anders geht es sich auch. aber eben schwerer.
 
Hallo Dark,

das löst man am besten und am flexibelsten mit einer relationalen Tabelle.

Das Konstrukt könnte so aussehen:

Tabelle Members:
================
id
name
email

(id mit index belegen)

Tabelle Games:
==============
id
gamename

(id mit index belegen)

Tabelle members_games:
=====================
membersID
gamesID

(Beide Felder mit index belegen)

Der Select würde jetzt so aussehen:

SELECT m.id, m.name, m.email FROM members as m, members_game as mg WHERE mg.gamesID = 1 AND mg.membersID = m.id

Somit zeigt er dir alle Member die zu Games mit der id 1 gehören.

Wenn du einen User einträgst must du die relationale Tabelle in einer While Schleife lassen ...

Mal angenommen du hast drei Spiele. Die gibst du in einer Checkbox beim eintragen eines Members mit aus.

Dann trägst du das neue Member ein und holst dir die ID raus ( mysql_insert_id() )

Dann die While Schleife laufen lassen.... der SQL darin sieht so aus:

INSERT INTO members_games ( membersID, gamesID ) VALUES ( id_aus_schleife, wert_aus_mysql_insert_id )

Greez
Fatility
 
fatility alter ruler ^^ danke fuer diese doktor verdächtige arbeit ^^ ich hab scho die lösung von brain mittlerweile aufgeriffen aber da ich n public memberscript machen wollt wuerd sich das dazu supi lohnen ^^ besonders da man wenn ich dann in der tabelle member_games noch soviele games angeben kann dadurch wie ich will ^^


Danke echt ^^ cu
 
Zuletzt bearbeitet:
Es eignet sich sehr gut um eine Anzahl n von Games und Members zu verbinden.

Du kannst die Verbindungen jeder ändern und lösen ... das ist das geniale dran.

Achte aber drauf, das wenn du Games oder Members löscht, auch diese Datensätze aus der relationalen Tabelle zu löschen...

Sonst wird diese mit unnötigen Datensätzen belegt und das wollen wir ja nicht.

Wenn du das so machst wie ich dir gezeigt habe, dann melde dich wenn du Probs hast.

Also ich löse alle Verbindungen so... egal ob es bei News nur Rubriken sind usw. Du bist halt absolut flexibel ...

Greez
Fati
 
Zurück