Statistik |
Beiträge: 144.532 (Täglich: 19,19 )
Themen: 16.700
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 816%
Ausl. d. letzten 5 Minuten: 294%
Ausl. d. letzten 15 Minuten: 186%
Aktulle Uhrzeit: 00:30
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
|
|
Insert in mysql funktioniert nicht |
Pierre
VGFoto
Dabei seit: 22.02.2007
Beiträge: 398
0 Filebase-Einträge
Alter: 60 Jahre
Herkunft: NRW wBB-Version: wBB2.3
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.485.186
Nächster Level: 2.530.022
|
|
Insert in mysql funktioniert nicht |
|
Hallo
Ich habe mal als zweites Forum ein phpbb3 Board installiert.
Und versuche dort alles zu verstehen und zu lernen,
weil doch ein unterschied besteht zwischen wbb2 und phpbb3.
Nun zu mein problem.
In einen neue php habe ich folgendes eingefügt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
|
// Mein Code TURNIER WERTUNG START
$sql = 'SELECT * FROM phpbb_spturnier_config';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$anz1 = $row['anzahl'];
$tst1 = $row['turnierstart'];
$tsp1 = $row['turnierende'];
$name1 = $row['turnierende'];
$session = $row['session'];
$tstart1 = $user->format_date($row['turnierstart']);
$tstop1 = $user->format_date($row['turnierende']);
$sql = 'SELECT * FROM phpbb_spturnier_punkte';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$datum = time();
$punkteg = 0;
$punkte1 = 0;
$punkte2 = 0;
$punkte3 = 0;
$punkte4 = 0;
$punkte5 = 0;
$punkte6 = 0;
$punkte7 = 0;
$punkte8 = 0;
$punkte9 = 0;
$punkte10 = 0;
$sql = 'TRUNCATE TABLE phpbb_spturnier';
$result = $db->sql_query($sql);
$sql = "SELECT `game_id`,`score`,`user_id` FROM phpbb_quiz GROUP BY `user_id` ORDER BY `user_id` ASC";
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$userid = $row['user_id'];
$sql = "INSERT INTO phpbb_spturnier (userid, punkteg, punkte1, punkte2, punkte3, punkte4, punkte5, punkte6, punkte7, punkte8, punkte9, punkte10)
VALUES ('$userid', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')";
$db->sql_query($sql);
}
$db->sql_freeresult($result);
$pp = 1;
for ($i = 1; $i < ($anz1 + 1); $i++)
{
$sql = 'SELECT * FROM phpbb_spturnier_games WHERE `sp_id` = ' . $i ;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$gamid = $row['game_id'];
$sps = $row['start_g'];
$spp = $row['stop_g'];
}
$sql = 'SELECT * FROM phpbb_spturnier_punkte';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
$position_punkte = 1;
for ($i = 1; $i < ($anz1 + 1); $i++)
{
$sql = "SELECT `game_id`,`score`,`user_id`,`score_date` FROM phpbb_quiz WHERE `game_id` = $gamid GROUP BY `user_id` ORDER BY `score` ASC";
$result = $db->sql_query($sql);
$zaehler = 0;
while($row = $db->sql_fetchrow($result))
{
$punkte1 = $row[$zaehler];
$usid = $row[user_id];
}
$sql = 'UPDATE phpbb_spturnier SET `punkte' . $position_punkte . ' ` = ' . $punkte1 . ' WHERE `userid` =' . $usid . ' ';
$db->sql_query($sql);
}
$db->sql_freeresult($result);
|
|
Es funktioniert soweit fast alles bis auf das eintragen der punkzahlen in die
Tabelle spturnier.
Variable $punkte1 ist immer leer
DB Tabellen sind auch richtig angelegt ( siehe Bilder)
Wo liegt mein Fehler?
Dateianhänge: |
1.jpg (34 KB, 126 mal heruntergeladen) 2.jpg (25 KB, 127 mal heruntergeladen)
|
__________________ Gruß
Pierre
|
|
14.09.2018 16:02 |
|
|
Pierre
VGFoto
Dabei seit: 22.02.2007
Beiträge: 398
0 Filebase-Einträge
Alter: 60 Jahre
Herkunft: NRW wBB-Version: wBB2.3
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.485.186
Nächster Level: 2.530.022
Themenstarter
|
|
Hi Viktor
Zaehler habe ich erstellt weil ich gedacht
habe das er eine Zahl zum starten braucht.
Oh Erhöhung vergessen, teste ich gleich mal mit +1,
bin noch an der Arbeit am Handy
__________________ Gruß
Pierre
|
|
14.09.2018 21:08 |
|
|
Pierre
VGFoto
Dabei seit: 22.02.2007
Beiträge: 398
0 Filebase-Einträge
Alter: 60 Jahre
Herkunft: NRW wBB-Version: wBB2.3
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.485.186
Nächster Level: 2.530.022
Themenstarter
|
|
So habe folgendes geändert bzw ergänzt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
|
$pp = 1;
for ($i = 1; $i < ($anz1 + 1); $i++)
{
$sql = "SELECT * FROM phpbb_spturnier_games WHERE `sp_id` = '" . $i . "'";
$result = $db->sql_query($sql);
$row1 = $db->sql_fetchrow($result);
$gamid = $row1['game_id'];
$sps = $row1['start_g'];
$spp = $row1['stop_g'];
$sql = 'SELECT `game_id`,`score`,`user_id` FROM phpbb_quiz WHERE `game_id` = ' . (int) $row['game_id'] . ' GROUP BY `user_id` ORDER BY `score` DESC';
$result = $db->sql_query($sql);
$pl = 0;
while ($loophsp = $db->sql_fetchrow($result))
{
$a = 'p' . (1 + $pl);
$ppl = $rowpunkte[$a];
$usid = $loophsp['user_id'];
$sql = 'UPDATE phpbb_spturnier SET `punkte' . $pp . '`=' . $ppl .' WHERE `userid`=' . $usid . '';
$db->sql_query($sql);
}
$db->sql_freeresult($result);
if ($pl < 20) $pl ++;
else $pl = 20;
}
$pp ++;
|
|
Jetzt sieht es schon besser aus aber er macht nur einen eintrag in der db tabelle spturnier
und das auch noch falsch.
Ich erkläre es mal am beispiel vom Bildanhang.
Es sind ja drei spiele aktuell in die tabelle quiz, jeweils von beide userid einen Score
Also eigentlich 6 eingaben.
Diese müßte er wenn ich alles richtig gemacht habe holen und punkte vergeben
die in die tabelle spturnier_punkte hinterlegt sind pro plazierung
Platz1 = 36
Platz2 = 30
usw,..
Er hat wohl nur die daten geholt von eine gameid und nicht von alle 3
und am beispiel sollte userid 2 : 36 punkte haben, und userid 48: 30 punkte
haben weil dieses so hinterlegt ist in der DB
Es müßte ja eigentlich so aussehen bei 3 spiele
Punkteüberschrift steht jeweils für eine Spielnummer
userid punkte1 punkte2 punkte3
2 36 30 36
48 30 36 30
Vielleicht siehst du, was ich nicht sehe Viktor
Dateianhang: |
3.jpg (30,13 KB, 93 mal heruntergeladen)
|
__________________ Gruß
Pierre
|
|
15.09.2018 11:31 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.761.842
Nächster Level: 266.777.854
|
|
Hallo Pierre,
es ist schwer zu verstehen was du meinst und wenn man sich dann den Code anschaut.
Als erstes würde ich den Code mal richtig Formatieren damit man ihn besser lesen kann.
Man sieht ja sonst nicht wo Schleifen anfangen und enden.
Ich vermut da auch den Fehler da die Schleifenzähler nie erhöht werden.
Hier mal den formatierten Code.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
|
// Mein Code TURNIER WERTUNG START
$sql = 'SELECT * FROM phpbb_spturnier_config';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$anz1 = $row['anzahl'];
$tst1 = $row['turnierstart'];
$tsp1 = $row['turnierende'];
$name1 = $row['turnierende'];
$session = $row['session'];
$tstart1 = $user->format_date($row['turnierstart']);
$tstop1 = $user->format_date($row['turnierende']);
$sql = 'SELECT * FROM phpbb_spturnier_punkte';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$datum = time();
$punkteg = 0;
$punkte1 = 0;
$punkte2 = 0;
$punkte3 = 0;
$punkte4 = 0;
$punkte5 = 0;
$punkte6 = 0;
$punkte7 = 0;
$punkte8 = 0;
$punkte9 = 0;
$punkte10 = 0;
$sql = 'TRUNCATE TABLE phpbb_spturnier';
$result = $db->sql_query($sql);
$sql = "SELECT `game_id`,`score`,`user_id` FROM phpbb_quiz GROUP BY `user_id` ORDER BY `user_id` ASC";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$userid = $row['user_id'];
$sql = "INSERT INTO phpbb_spturnier (userid, punkteg, punkte1, punkte2, punkte3, punkte4, punkte5, punkte6, punkte7, punkte8, punkte9, punkte10)
VALUES ('$userid', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')";
$db->sql_query($sql);
}
$db->sql_freeresult($result);
$pp = 1;
for ($i = 1; $i < ($anz1 + 1); $i ++) {
$sql = "SELECT * FROM phpbb_spturnier_games WHERE `sp_id` = '" . $i . "'";
$result = $db->sql_query($sql);
$row1 = $db->sql_fetchrow($result);
$gamid = $row1['game_id'];
$sps = $row1['start_g'];
$spp = $row1['stop_g'];
$sql = 'SELECT `game_id`,`score`,`user_id` FROM phpbb_quiz WHERE `game_id` = ' . (int) $row['game_id'] . ' GROUP BY `user_id` ORDER BY `score` DESC';
$result = $db->sql_query($sql);
$pl = 0;
while ($loophsp = $db->sql_fetchrow($result)) {
$a = 'p' . (1 + $pl);
$ppl = $rowpunkte[$a];
$usid = $loophsp['user_id'];
$sql = 'UPDATE phpbb_spturnier SET `punkte' . $pp . '`=' . $ppl . ' WHERE `userid`=' . $usid . '';
$db->sql_query($sql);
}
$db->sql_freeresult($result);
if ($pl < 20)
$pl ++;
else
$pl = 20;
}
$pp ++;
|
|
1. $pp wird nie erhöht da das $pp ++; außerhalb der Schleife ist.
2. $pl wird auch nie erhöht da es immer wieder auf 0 gesetzt wird ($pl = 0).
code: |
1:
2:
3:
|
$sql = 'SELECT `game_id`,`score`,`user_id` FROM phpbb_quiz WHERE `game_id` = ' . (int) $row['game_id'] . ' GROUP BY `user_id` ORDER BY `score` DESC';
|
|
Müsste es da nicht "$row1['game_id'] " oder "$gamid" heißen.
code: |
1:
2:
3:
4:
|
$row1 = $db->sql_fetchrow($result);
$gamid = $row1['game_id'];
|
|
Das verstehe ich auch nicht.
Was ist:
code: |
1:
2:
3:
|
$ppl = $rowpunkte[$a];
|
|
$rowpunkte gibt es nirgendwo.
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
15.09.2018 20:19 |
|
|
Pierre
VGFoto
Dabei seit: 22.02.2007
Beiträge: 398
0 Filebase-Einträge
Alter: 60 Jahre
Herkunft: NRW wBB-Version: wBB2.3
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.485.186
Nächster Level: 2.530.022
Themenstarter
|
|
Hallo Viktor
Erstmal danke für deine Zeit
Das mit den $rowpunkte war ein fehler von mir
Das hatte ich geändert und nicht mit kopiert.
In mein post stand ja dort
$row = $db->sql_fetchrow($result);
Soll ja so sein:
$sql = 'SELECT * FROM phpbb_spturnier_punkte';
$result = $db->sql_query($sql);
$rowpunkte = $db->sql_fetchrow($result);
Es liegt wohl am Schleifen aber ich bekomme es nicht hin
Er soll ja für jedes Spiele eigentlich ne punktevergabe machen
die vorgegeben ist in eine Tabelle.
Das heißt von jedes Spiel den besten Score von jeder User
suchen (abfrage ist ja vorhanden) und dementsprechend
die Punktevergabe machen pro Spiel und User.
Eine art Rangliste von jedes Spiel und dann die platzierungen
mit Punkten vergeben und diese pro spiel in die tabelle spturnier
in die entsprechende Felder eintragen
Die Felder sind bennant als punkte1 punkte2 punkte3 usw,...
punkte1 steht für Spiel1 usw,...
Er macht es ja zum Teil wie auf mein Bild im anderen beitrag zu sehen
nur er trägt nur 1 Spiel ein und beide userid 36 Punkte
Das ist falsch.
Also liegt es wohl an ++
aber ich komme nicht drauf
__________________ Gruß
Pierre
|
|
15.09.2018 20:46 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.761.842
Nächster Level: 266.777.854
|
|
Hallo,
versuche es mal so:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
|
// Mein Code TURNIER WERTUNG START
$sql = 'SELECT * FROM phpbb_spturnier_config';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$anz1 = $row['anzahl'];
$tst1 = $row['turnierstart'];
$tsp1 = $row['turnierende'];
$name1 = $row['turnierende'];
$session = $row['session'];
$tstart1 = $user->format_date($row['turnierstart']);
$tstop1 = $user->format_date($row['turnierende']);
$sql = 'SELECT * FROM phpbb_spturnier_punkte';
$result = $db->sql_query($sql);
$rowpunkte = $db->sql_fetchrow($result);
$datum = time();
$punkteg = 0;
$punkte1 = 0;
$punkte2 = 0;
$punkte3 = 0;
$punkte4 = 0;
$punkte5 = 0;
$punkte6 = 0;
$punkte7 = 0;
$punkte8 = 0;
$punkte9 = 0;
$punkte10 = 0;
$sql = 'TRUNCATE TABLE phpbb_spturnier';
$result = $db->sql_query($sql);
$sql = "SELECT `game_id`,`score`,`user_id` FROM phpbb_quiz GROUP BY `user_id` ORDER BY `user_id` ASC";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$userid = $row['user_id'];
$sql = "INSERT INTO phpbb_spturnier (userid, punkteg, punkte1, punkte2, punkte3, punkte4, punkte5, punkte6, punkte7, punkte8, punkte9, punkte10)
VALUES ('$userid', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')";
$db->sql_query($sql);
}
$db->sql_freeresult($result);
$pp = 1;
for ($i = 1; $i < ($anz1 + 1); $i ++) {
$sql = "SELECT * FROM phpbb_spturnier_games WHERE `sp_id` = '" . $i . "'";
$result = $db->sql_query($sql);
$row1 = $db->sql_fetchrow($result);
$gamid = $row1['game_id'];
$sps = $row1['start_g'];
$spp = $row1['stop_g'];
$sql = 'SELECT `game_id`,`score`,`user_id` FROM phpbb_quiz WHERE `game_id` = ' . (int) $row1['game_id'] . ' GROUP BY `user_id` ORDER BY `score` DESC';
$result = $db->sql_query($sql);
$pl = 0;
while ($loophsp = $db->sql_fetchrow($result)) {
$a = 'p' . (1 + $pl);
$ppl = $rowpunkte[$a];
$usid = $loophsp['user_id'];
$sql = 'UPDATE phpbb_spturnier SET `punkte' . $pp . '`=' . $ppl . ' WHERE `userid`=' . $usid . '';
$db->sql_query($sql);
if ($pl < 20)
$pl ++;
else
$pl = 20;
}
$db->sql_freeresult($result);
$pp ++;
}
|
|
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
15.09.2018 22:21 |
|
|
Pierre
VGFoto
Dabei seit: 22.02.2007
Beiträge: 398
0 Filebase-Einträge
Alter: 60 Jahre
Herkunft: NRW wBB-Version: wBB2.3
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.485.186
Nächster Level: 2.530.022
Themenstarter
|
|
Hi Viktor
Super jetzt funktioniert es
Lag an das ausklammern habe ich gesehen
Vielen vielen dank
__________________ Gruß
Pierre
|
|
16.09.2018 09:33 |
|
|
Pierre
VGFoto
Dabei seit: 22.02.2007
Beiträge: 398
0 Filebase-Einträge
Alter: 60 Jahre
Herkunft: NRW wBB-Version: wBB2.3
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.485.186
Nächster Level: 2.530.022
Themenstarter
|
|
Hi Viktor
Jetzt habe ich ein problem mit ne neue abfrage.
Diese abfrage funktioniert tadelos:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
$sql = "SELECT `user_id`,`score` FROM phpbb_quiz2 ";
$result = $db->sql_query($sql);
while ($loopsbtab = $db->sql_fetchrow($result))
{
$userid = $loopsbtab['user_id'];
$score = $loopsbtab['score'];
$template->assign_block_vars('spscore', array(
'SPUSERID' => $loopsbtab['user_id'],
'SPSCORE' => $loopsbtab['score']
));
}
|
|
Weil dort aber nur die user_id in die tabelle hinterlegt ist
wollte ich den username auch aufgelistet bekommen also habe
ich die abfrage so ergänzt:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
$sql = "SELECT `user_id`,`score` FROM phpbb_quiz2 ";
$result = $db->sql_query($sql);
while ($loopsbtab = $db->sql_fetchrow($result))
{
$userid = $loopsbtab['user_id'];
$score = $loopsbtab['score'];
$sql = "SELECT `username` FROM phpbb_users WHERE user_id = " . $userid . " ";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$username = $row['username'];
$template->assign_block_vars('spscore', array(
'SPUSERID' => $loopsbtab['user_id'],
'SPSCORE' => $loopsbtab['score'],
'SPUSERNAME' => $row['username']
));
}
|
|
Jetzt habe ich wieder das problem das nur EIN datensatz aufgelistet
wird obwohl mehrere vorhanden sind.
Habe die klammer schon umgesetzt aber klappt trotzdem nicht.
Irgendwie kapiere ich das wohl nie
__________________ Gruß
Pierre
|
|
01.10.2018 11:31 |
|
|
|
Hallo,
Du überschreibst innerhalb deiner "while"-Schleife dein "$result", das außerhalb der Schleife definiert wurde.
Folglich kann auf die "alten Daten" nicht mehr zugegriffen werden, sondern dein "$result" für einen weiteren Durchgang ist mit den Daten deiner zweiten Abfrage befüllt:
php: |
1:
2:
3:
|
$sql = "SELECT `username` FROM phpbb_users WHERE user_id = " . $userid . " ";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); |
|
Eine Namensänderung an dieser Stelle sollte zum Ziel führen.
__________________
|
|
01.10.2018 15:32 |
|
|
Pierre
VGFoto
Dabei seit: 22.02.2007
Beiträge: 398
0 Filebase-Einträge
Alter: 60 Jahre
Herkunft: NRW wBB-Version: wBB2.3
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.485.186
Nächster Level: 2.530.022
Themenstarter
|
|
Oh man danke dir Schrimm
Geht jetzt , danke
__________________ Gruß
Pierre
|
|
01.10.2018 19:55 |
|
|
|
|
|
|