[GastForen Programmierung/Entwicklung PHP und MySQL Abfrage-Problem

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Abfrage-Problem

Murmel
Beiträge gesamt: 16

13. Mai 2004, 22:25
Beitrag # 1 von 4
Bewertung:
(1152 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo.

Folgendes Problem

Also zur Erklärung. Ich habe 3 Tabelleneinträge

nutzer spieler gehalt
( Nutzer_ID,Name) (Spieler_ID,Nutzer_ID) (Spieler_ID,vertragsdauer)

Die Nutzer_ID unter nutzer ist fortlaufend. Die Plätze sind belegt von Usern namens "Robot 1-36". Die Spieler_ID geht von 1-10000 (10000) Spieler, und die Nutzer_ID gibt an welchen nutzer der Spieler gehört. Die Spieler_ID unter gehalt ist gleich wie unter spieler.
Das ziel ist es die vertragsdauer der Robots unter gehalt zu überprüfen, und auf nen Wert zu fixieren.

Habe jetzt mal dieses Testscript geschrieben

Code:

--------------------------------------------------------------------------------

// 36 User mit dem Namen Robot im Moment.

$computerid=mysql_query("SELECT Nutzer_ID from nutzer where Name like 'Robot%' ");

while
($computerid1=mysql_fetch_array($computerid)){

// 10000 Spieler Spieler_ID(1-10000) und Nutzer_ID(1-36) oben ordnen die 20 Spieler jedem User zu

$computersp=mysql_query("SELECT Spieler_ID from spieler where Nutzer_ID=".$computerid1[0]."");
$computersp1=mysql_fetch_array($computersp);
echo " . $computerid1[0] . ";
echo "$computersp1[0]";
}


--------------------------------------------------------------------------------




Ausgabe im Moment ist:

// Erste Zahl sind User mit Namen Robot (im Moment alle 36) Zweite zahl ist der erste Spieler (hier Spieler_ID(5) der zur Nutzer_ID (1) (Robot 1) gehört. Nutzer_ID(2)=Spieler_ID(87) (Robot 2)

1 . 5 . 2 . 87 . 3 . 125 . 4 . 169 . 5 . 217 . 6 . 263 . 7 . 307 . 8 . 370 . 9 . 406 . 10 . 494 . 11 . 530 . 12 . 569 . 13 . 613 . 14 . 634 . 15 . 763 . 16 . 826 . 17 . 900 . 18 . 937 . 19 . 1054 . 20 . 1115 . 21 . 1133 . 22 . 1161 . 23 . 1199 . 24 . 1295 . 25 . 1316 . 26 . 1386 . 27 . 1472 . 28 . 1557 . 29 . 1638 . 30 . 1662 . 31 . 1694 . 32 . 1730 . 33 . 1746 . 34 . 1823 . 35 . 1859 . 36 . 1918

Da es im Moment noch 36 Robots sind, sind die ersten Zahlen die User 1-36
Die zweite Zahl ist der erste Spieler jedes Robots. Aber jeder Robot hat am Start 20 Spieler, un die muss ich alle finden, um deren Vertragsdauer zu fixieren.
Hätte da jemand ne Idee wie ich das am besten lösen kann ?

Thx,

Murmel

PS: versuche weiteres zu erkären, wenn es nicht verständlich ist.
X

Abfrage-Problem

oesi50
  
Beiträge gesamt: 2315

13. Mai 2004, 22:56
Beitrag # 2 von 4
Beitrag ID: #85428
Bewertung:
(1152 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi murmel,
ich hab zwar noch nicht ganz verstanden was Du willst, aber wenn Dein Testscript so aussieht, läuft das etwa 20 mal schneller.

$sql =
"SELECT n.Nutzer_ID, s.Spieler_ID" .
"FROM nutzer AS n" .
"JOIN spieler AS s ON n.Nutzer_ID = s.Nutzer_ID" .
"WHERE n.Name LIKE 'Robot%' ";

$computerid=mysql_query($sql);
while ($row = mysql_fetch_array($computerid) ){
echo " . $row[0] . ";
echo "$row[1]";
}

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#85422]
(Dieser Beitrag wurde von oesi50 am 15. Mai 2004, 13:45 geändert)

Abfrage-Problem

Murmel
Beiträge gesamt: 16

14. Mai 2004, 12:52
Beitrag # 3 von 4
Beitrag ID: #85507
Bewertung:
(1152 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke erstmal.

Also um zu beschreiben was ich will. Ich will die Vertragsdauer
aller User namens "Robot" auf den Wert 20 stellen, weil die sonst auslaufen, was Probleme ins Spiel bringt da ohne Spieler keine Berechnung stattfindet. Also muss ich festellen wer alles ein Robot ist, die Spieler suchen, und diese Spieler ann unter gehalt Vertragsdauer updaten.

Die Frage ist kriegt man das mit update alleine hin ?

Das sind die DB-Einträge.



Table nutzer

Nutzer_ID -- Name --- E-mail ---- Passwort
1 ----------- Robot1 --
2 ----------- Robot2 --
3 ----------- Robot3 --
4 ----------- Robot4 --

usw.

Table spieler

Spieler_ID --- Name--- Nutzer_ID
1 ------------- a ---------1 ---> nutzer mit Nutzer_ID 1
2 ------------- b---------1------------->" "
3 ------------- c---------3 ---> nutzer mit Nutzer_ID 3
4 ------------- d---------3------------->" "
5 ------------- e---------2 ----> nutzer 2
6 ------------- f ----------4 ----> nutzer 4
7 ------------- g----------2 -----> nutzer 2
10000-------- h ---------0 ---> gehört niemandem

Table gehalt

Spieler_ID, Vertragsdauer,Gehalt_Spieltag,Wert
1 ----------------5--------
2 ----------------2
3
4
5
6
7
10000


als Antwort auf: [#85422]
(Dieser Beitrag wurde von Murmel am 14. Mai 2004, 12:55 geändert)

Abfrage-Problem

oesi50
  
Beiträge gesamt: 2315

15. Mai 2004, 16:20
Beitrag # 4 von 4
Beitrag ID: #85729
Bewertung:
(1152 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi Murmel,

versuch mal das:

# quick and dirty
$sql =
"SELECT s.Spieler_ID" .
"FROM nutzer AS n" .
"JOIN spieler AS s ON n.Nutzer_ID = s.Nutzer_ID" .
"WHERE n.Name LIKE 'Robot%' ";

$computerid=mysql_query($sql);
$row = mysql_fetch_array($computerid)
$liste = $row[0];
while ($row = mysql_fetch_array($computerid) ){
$liste = ',' . $liste . $row[0];
}

$sql =
"UPDATE gehalt " .
"SET Vertragsdauer = 20 " .
"WHERE Spieler_ID IN ($liste) ";

mysql_query($sql);

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#85422]
(Dieser Beitrag wurde von oesi50 am 15. Mai 2004, 16:33 geändert)
X