Zurück   klamm-Forum > klamm-Lose > Lose4Scripts

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09.09.2015, 16:45:24   #1 (permalink)
Erfahrener Benutzer
Benutzerbild von tyygoor

ID: 330197
Lose-Remote

tyygoor eine Nachricht über ICQ schicken tyygoor eine Nachricht über MSN schicken
Reg: 29.09.2008
Beiträge: 1.133
Standard Codeschnippsel php/mysql

Ahoi,

FWX Script ist das was ich habe ^^

diesmal suche ich einen Code-Schnipsel für die Doppler-Slots der es mir erlaubt
die eingezahlten Beträge wieder auszuzahlen ^^ also ohne
verdoppelung/Verdreifachung etc etc - sondern rein die eingezahlten
Beträge ^^

im Standartfall sieht die Tab so aus :-)

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
CREATE TABLE IF NOT EXISTS `dasbaum_randdop_usr` ( `id` int(11) NOT NULL, `u_id` int(11) NOT NULL DEFAULT '0', `menge` int(11) NOT NULL DEFAULT '0', `gewinn` int(11) NOT NULL DEFAULT '0', `done` tinyint(4) NOT NULL DEFAULT '0', `time` int(10) NOT NULL DEFAULT '0', `user` varchar(50) NOT NULL DEFAULT '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7181 ; -- -- Daten für Tabelle `dasbaum_randdop_usr` -- INSERT INTO `dasbaum_randdop_usr` (`id`, `u_id`, `menge`, `gewinn`, `done`, `time`, `user`) VALUES (1, 1257, 2147483647, 0, 1, 1263585570, 'TYYGOOR'),
hat da jemand ne Idee?
von Hand ist das doch etwas mühsam ^^

aber das zusammenzählen der einzelnen Beträge pro User gibt mir eine Summe x, löst aber nicht das Problem der einzelüw ^^

gruss tyy

pro forma mal 1 MRD vhb ^^
bevor die schönen Nullen alle weg sind
 

Geändert von tyygoor (09.09.2015 um 16:47:07 Uhr)
tyygoor ist offline   Mit Zitat antworten
Alt 09.09.2015, 17:54:43   #2 (permalink)
Divide et Impera

ID: 447337
Lose-Remote

Reg: 30.06.2013
Beiträge: 190
Standard

Ich schätze, das Zauberwort heisst GROUP BY

Das Stückchen Code für den Einsatz unter PHP hätte ich jetzt auch geschrieben, aber da es eine Integer-Spalte "u_id" gibt, was ich für eine User-ID halte, und eine Varchar-Spalte "user", die ich als Username interpretiere und die somit redundant wäre ( wo sind die Normalformen hin ? ), weiss ich nicht, wo du wie die User identifizierst. Ich habe zwar eine FWX-Lizenz und könnte mir das ansehen, aber...pff, nö
 
KundM ist offline   Mit Zitat antworten
Alt 09.09.2015, 21:29:47   #3 (permalink)
Erfahrener Benutzer
Benutzerbild von tyygoor

ID: 330197
Lose-Remote

tyygoor eine Nachricht über ICQ schicken tyygoor eine Nachricht über MSN schicken
Reg: 29.09.2008
Beiträge: 1.133
Standard

Zitat:
Zitat von KundM Beitrag anzeigen
-schnipp---
aber...pff, nö
das gefällt mir am besten :-)

so mach ich das xDDD

gruss Tyy

p.s.

u_id oder user ( u_name)- völlig Latte,
da die Tab wo das reinkommt

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:
CREATE TABLE IF NOT EXISTS `dasbaum_users_neu` ( `u_id` mediumint(6) unsigned NOT NULL, `u_name` varchar(55) NOT NULL DEFAULT '', `u_passwd` char(40) NOT NULL DEFAULT '', `u_rights` tinyint(4) NOT NULL DEFAULT '0', `konto` decimal(18,2) NOT NULL DEFAULT '0.00', `konto_save` int(11) NOT NULL DEFAULT '0', `email` varchar(60) NOT NULL DEFAULT '', `ap` int(11) unsigned NOT NULL DEFAULT '0', `ap_all` bigint(20) NOT NULL, `bonus` bigint(20) NOT NULL DEFAULT '0', `info` text NOT NULL, `ip` varchar(15) NOT NULL DEFAULT '', `exportid` varchar(50) NOT NULL DEFAULT '', `solicitor` smallint(6) unsigned NOT NULL DEFAULT '0', `saldo_today` bigint(20) NOT NULL, `saldo_sum` bigint(20) NOT NULL, `saldo` bigint(20) NOT NULL DEFAULT '0', `paidmail` tinyint(1) unsigned NOT NULL DEFAULT '0', `mailtype` tinyint(1) unsigned NOT NULL DEFAULT '0', `maillevel` tinyint(2) unsigned NOT NULL DEFAULT '0', `lastnews` int(11) unsigned NOT NULL DEFAULT '0', `refback` smallint(5) unsigned NOT NULL DEFAULT '0', `regdate` int(10) unsigned NOT NULL DEFAULT '0', `ralley_klick` int(11) unsigned NOT NULL DEFAULT '0', `ralley_short` int(11) unsigned NOT NULL DEFAULT '0', `ralley_day` int(11) unsigned NOT NULL DEFAULT '0', `ralley_week` int(11) unsigned NOT NULL DEFAULT '0', `ralley_month` int(11) unsigned NOT NULL DEFAULT '0', `ralley_ref` int(11) unsigned NOT NULL DEFAULT '0', `ralley_beg` int(11) unsigned NOT NULL DEFAULT '0', `ralley_user` int(11) unsigned NOT NULL DEFAULT '0', `ralley_zock` int(11) unsigned NOT NULL DEFAULT '0', `ralley_year` int(11) unsigned NOT NULL DEFAULT '0', `ralley_multi` int(11) unsigned NOT NULL DEFAULT '0', `ralley_game` int(11) unsigned NOT NULL DEFAULT '0', `ralley_sponsor` int(11) unsigned NOT NULL DEFAULT '0', `ralley_mail` int(11) unsigned NOT NULL DEFAULT '0', `birthdate` varchar(10) NOT NULL DEFAULT '', `lastonline` int(10) unsigned NOT NULL DEFAULT '0', `last_login` int(10) unsigned NOT NULL DEFAULT '0', `urank` bigint(20) unsigned DEFAULT '0', `origin` varchar(2) NOT NULL DEFAULT '', `lastorigin` int(11) unsigned NOT NULL, `clickcount` int(11) unsigned NOT NULL, `paidcount` int(11) unsigned NOT NULL, `surfbar` text NOT NULL, `surfpoints` int(11) unsigned NOT NULL, `activepoints` int(11) unsigned NOT NULL, `withdrawel` bigint(20) NOT NULL, `captcha` tinyint(3) unsigned NOT NULL, `withdrawel_count` smallint(4) NOT NULL, `schatzsuche` int(11) NOT NULL, `arthurkings` int(11) NOT NULL, `anteile` bigint(6) NOT NULL, `wio_last` varchar(50) NOT NULL, `wio_last_link` varchar(100) NOT NULL, `rente` decimal(16,2) NOT NULL, `krente_s` int(11) NOT NULL, `krente_a` int(11) NOT NULL, `krente_t` int(11) NOT NULL, `uotd` int(11) NOT NULL DEFAULT '0', `xur_reminder` int(11) NOT NULL DEFAULT '0', `lastsurfclick` int(11) NOT NULL, `verzoegert_ausz` int(1) NOT NULL, `captcha2` int(11) NOT NULL, `lastpaid2` int(11) NOT NULL, `paid4start` int(20) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1578 ; (1257, 'tyygoor', 'e4fe9641d3b9db019a31d590917', 15, '35523000.00', 10000, 'tyygoor@hotmail.de', 2, 25398064, 4000, 'b:0;', '91.51.95.000.000', '330197', 0, 2000, 1073787078, 1390752210, 0, 1, 0, 1307897409, 0, 1263585409, 0, 0, 0, 0, 0, 0, 0, 70505, 0, 500, 0, 0, 0, 0, '', 1308171581, 1307954498, 25000000, '', 1308130766, 0, 0, '', 0, 0, 0, 0, 0, 1308168412, 0, 7071, 'shoutbox_jackpot', './page.php?cat=shoutbox_jackpot', '0.00', 0, 2, 2, 0, 0, 0, 1, 0, 0, 0),
ich müsste halt nur die werte 'u_id' und 'menge' von dem doppler zu der passenden 'u_id' in der spalte 'konto' addieren. dafür fehlt mir ein Ansatz ^^ wie ich das mache ^^
 

Geändert von tyygoor (09.09.2015 um 21:42:47 Uhr)
tyygoor ist offline Threadstarter   Mit Zitat antworten
Alt 10.09.2015, 03:54:19   #4 (permalink)
Divide et Impera

ID: 447337
Lose-Remote

Reg: 30.06.2013
Beiträge: 190
Standard

Hier zuerst die Lösung für die alten mysql_*-Funktionen:

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
$q1 "SELECT `u_id`, SUM(`menge`) FROM `dasbaum_randdop_usr` GROUP BY `u_id`";
$e1 mysql_query($q1)or die(mysql_error());
WHILE(
$z1 mysql_fetch_row($e1))
{
 if(
$z1[1] > 0)
 {
  
$q2="UPDATE `dasbaum_users_neu` SET `konto` = `konto` + '".$z1[1]."' WHERE `u_id` = '".$z1[0]."'";
  
mysql_query($q2)or die(mysql_error));
 }

Für den Fall, dass doch PDO verwendet wird und die Datenbankverbindung mit der Klasse $DB läuft:
PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
$q2 "UPDATE `dasbaum_users_neu` SET `konto` = `konto` + ? WHERE `u_id` = ?";
$e2 $DB->prepare($q2);

$q1 "SELECT `u_id`, `SUM(`menge`) FROM `dasbaum_randdop_usr` GROUP BY `u_id`";
if(
$e1 $DB->query($q1))
{
 WHILE(
$z1 $e1->fetch(PDO::FETCH_NUM))
 {
  if(
$z1[1] > 0)
  {
   if(!
$e2->execute(array($z1[1],$z1[0])))
   {
    echo
"Fehler beim Aktualisieren der User-ID $z1[0]<br>";
   }
  }
 }
}
else
{
 echo
"Kann Aktualisierungsabfrage nicht starten.<br>";

Zwar sind MyISAM-Tabellen nicht transaktionsicher, aber da die Aktualiserung nur einmal erfolgt (erfolgen soll), müssen auch die Werte in der Doppler-Tabelle nicht zurückgesetzt werden. Diese können ja z. B. mit einem anschliessenden UPDATE auf 0 gesetzt werden, falls gewünscht. Ansonsten könnte man noch eine Log-Funktion in das Update einbauen... ja, man könnte viel machen Aber das Obige sollte das Gewünschte erfüllen.
 

Geändert von KundM (12.09.2015 um 07:07:41 Uhr) Grund: fehlerhaften Backtick entfernt
KundM ist offline   Mit Zitat antworten
Alt 11.09.2015, 01:14:07   #5 (permalink)
Divide et Impera

ID: 447337
Lose-Remote

Reg: 30.06.2013
Beiträge: 190
Standard

Keine Ursache, gern geschehen
 
KundM ist offline   Mit Zitat antworten
Alt 11.09.2015, 05:22:32   #6 (permalink)
Erfahrener Benutzer
Benutzerbild von tyygoor

ID: 330197
Lose-Remote

tyygoor eine Nachricht über ICQ schicken tyygoor eine Nachricht über MSN schicken
Reg: 29.09.2008
Beiträge: 1.133
Standard

moin,

hatte gestern mal etwas knapp Zeit und werde mir das
heute mal anschauen ob ich unwissender damit klar komme :-)

danke für deine Mühe

gruss tyy
 
tyygoor ist offline Threadstarter   Mit Zitat antworten
Alt 11.09.2015, 11:43:33   #7 (permalink)
Erfahrener Benutzer

ID: 247061
Lose-Remote

Stephan18 eine Nachricht über ICQ schicken
Reg: 20.07.2006
Beiträge: 1.086
Standard

Bei PDO hat sich in Zeile 5 ein Klitzekleiner Fehler eingeschlichen, der verhindern wird, dass der Code funktioniert.

Guck dir die Zeile einfach an, dann wirst du sehen was ich meine. Kann leider am Handy diese Zeichen nicht schreiben, sonst würde ich die Zeile korrigieren.
Aber du wirst ganz sicher rausfinden, was der Fehler ist ;-)

Ich hoffe, dass dies kein Darstellungsfehler am Handy ist, aber bislang war alles immer richtig dargestellt, ich vermute also, dass der Fehler tatsächlich vorliegt ;-)
 

Geändert von Stephan18 (11.09.2015 um 11:44:35 Uhr)
Stephan18 ist offline   Mit Zitat antworten
Alt 12.09.2015, 07:06:06   #8 (permalink)
Divide et Impera

ID: 447337
Lose-Remote

Reg: 30.06.2013
Beiträge: 190
Standard

@Stephan18: Danke für den Hinweis. Ist zwar Zeile 4, in der der Backtick vor dem SUM zuviel war, aber wer das schreiben kann, hätte es ohnehin nicht eingetippt - so wie ich beim Korrekturlesen das tatsächlich überlesen habe (gibt übrigens interessante und spannende Experimente zu dem Thema)

edit:
Gehe ich auf "Ändern", wird der Backtick nicht mehr angezeigt; oben im Post ist er noch zu lesen ... Sachen gibt's ...
 

Geändert von KundM (12.09.2015 um 07:10:04 Uhr) Grund: Sachen gibt's...
KundM ist offline   Mit Zitat antworten
Alt 12.09.2015, 07:12:21   #9 (permalink)
Divide et Impera

ID: 447337
Lose-Remote

Reg: 30.06.2013
Beiträge: 190
Standard

Zitat:
Zitat von tyygoor Beitrag anzeigen
moin,

hatte gestern mal etwas knapp Zeit und werde mir das
heute mal anschauen ob ich unwissender damit klar komme :-)

danke für deine Mühe

gruss tyy
Vielen Dank für die Lose.
Ich hoffe, der Schnipsel hat dir weitergeholfen.
 
KundM ist offline   Mit Zitat antworten
Alt 12.09.2015, 14:49:24   #10 (permalink)
kanz pöhse
Benutzerbild von LasMiranda

ID: 28058
Lose-Remote

LasMiranda eine Nachricht über ICQ schicken LasMiranda eine Nachricht über AIM schicken LasMiranda eine Nachricht über MSN schicken LasMiranda eine Nachricht über Yahoo! schicken LasMiranda eine Nachricht über Skype™ schicken
Reg: 05.05.2006
Beiträge: 3.054
Standard

Nein, der Fehler ist, dass Vergleiche mit == anstatt mit = gemacht werden.
Gruß, Martin
LasMiranda ist offline   Mit Zitat antworten
Alt 12.09.2015, 20:31:15   #11 (permalink)
Divide et Impera

ID: 447337
Lose-Remote

Reg: 30.06.2013
Beiträge: 190
Standard

@tyygoor: In Zeile 4 muss der Backtick vor SUM weg, der mir dort noch immer angezeigt wird und auch mit "Beitrag Ändern" von mir nicht zu entfernen ist. Ansonsten ist das korrekt.
 
KundM ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[S] Kleines Codeschnippsel für Nickpage alpha10 Lose4Scripts (erledigt) 3 14.07.2014 17:14:42
[S] Php Codeschnippsel imagettfbbox kangoo23 Lose4Scripts 1 12.04.2014 08:51:20
[S] Codeschnippsel flr1986 Lose4Scripts (erledigt) 6 13.05.2010 17:15:59
Codeschnippsel für Betteldienst??? kevin2008 Lose4Scripts 1 08.03.2008 19:27:00
Codeschnippsel für VMS Losedoppler kostenlos ! dennis79 Lose4Scripts (erledigt) 0 02.03.2007 22:54:31


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46:02 Uhr.