updaten verschiedener daten

Blobb

Mitglied
Hi,

ich habe da ein kleines Problem und hoffe das mir da einer weiterhelfen kann.
Vorab:
Ich habe bereits "Suchen" gestartet und auch Onkel Google benutzt.
Jedoch komm ich selbst damit nicht weiter bzw. ergab "meine" Suche keine wirklichen Treffer.

Ok, hier nun zu meinem Problem:

Ich habe 2 Tabellen

In der ersten sind die Angaben der zur Verfügung stehenden Objekte: Name, Anzahl und Art des Objekts.
In der zweiten werden die speziellen Einstellungen vom User gelistet.

soweit ok, also weiter...

Aus der ersten Tabelle nehme ich die Infos Name, Art und Anzahl.
Nun muß die Anzahl jedoch mit einer aus der 2. Tabelle entnommenen Zahl multipliziert werden.

Für mich auch noch nachvollziehbar...

Nun soll dies aber mit jedem User geschehen.
Da jeder User eine andere Einstellung hat.

Also, jeder User nimmt von der 1. Tabelle das gleiche Objekt mit den gleichen Inhalten.
Multipliziert sie aber mit seinen eigenen Angaben (z.b.: *3) und UPDATE seine Zeile (in der 2.Tabelle) mit den jeweiligen Daten.

..und da ist das Problem..
Wie verwirkliche ich dieses?
So das jeder User aus einer gleichen Tabelle Daten entnimmt .. diese mit seinen Einstellungen multipliziert und diese Einstellung gleichzeitig in seine Tabelle speichert mit den daraus folgenden Inhalten?

Hoffe es war für euch verständlich was ich eigentlich vorhabe? :)

Wäre jedenfalls sehr nett wenn mir da einer helfen könnte..
Ob nun mit Quellcode (was natürlich sehr fein wäre)
Oder aber nur einen Denkanstoss.
Für beide Hilfen wäre ich dankbar :)

Ach, noch was...

Das ganze wird/muß über CronJob laufen!
 
Zuletzt bearbeitet:
also,

du liest die daten der ersten tabelle aus, speicherst diese in einem array (oder auch in mehreren variablen).

nun kannst du die 2te tabelle eigentlich gleich updaten, ungefähr so:
PHP:
$query = "UPDATE user SET anzahl=anzahl*".$variableAusDerErstenTAbelle." WHERE id=".$userid."";

in diesem beispiel wird halt gleich etwas reingeschrieben, du kannst allerdings auch erst alles aus der zweiten tabelle auslessen, deine Daten änder und dann erst updaten.
was du machst bleibt ja dir überlassen

mfg
 
Erst mal danke für die Antwort.
Aber glaube das ist es nicht...zumindest macht es mir auf dem ersten Blick nicht den Eindruck.
Oder hab ich da jetzt was nicht richtig durchdacht..
Wenn ich das jetzt über eine Aktion durch CronJob jage, wird dabei auch jede zeile eines Users unterschiedlich bearbeitet?
Oder gilt das nur wenn ich persönlich diese Datenanfrage starte bzw. durchführe?

..und mit $query meinst du mysql_query = ..... ?

Also der Code schaut bei mir so aus...

PHP:
$haus_teilwert = ($metro_1[bevolkerung]/1000)*pi(); // $metro_1[bevolkerung] ist die Anzahl aus welcher die Rechnung hervorgerufen wird (Tabelle 1) Dieser Wert bleibt bei allen Spielern gleich
$haus_einnahmen = ($metro_1[bevolkerung] / $haus_teilwert)*($haus_teilwert*($bauwerke_1[haus1]+pi()))/1000; // $bauwerke_1[haus1] ist die Anzahl welche Multipliziert werden muß (Ist bei jedem Spieler unterschiedlich)
$haus_gewinn = floor($haus_einnahmen); // ist das Ergebnis welche nun per UPDATE beim User in seine Zeile gespeichert werden muß.

Die Berechnung muß bei jedem Spieler erfolgen .. mit den jeweils unterschiedlichen $bauwerke_1[haus1] Werten
zzgl. die UPDATE Funktion welche auch bei jedem Spieler erfolgen muß

Das ganze läuft alle paar Stunden per Cronjob ab...sollte es ;)
Wie müßte der Code lauten damit das für jeden Spieler unterschiedlich geschicht und nicht ein und die selbe Summe für alle aktualisiert wird?
 
pseudo code:

- daten aus tabelle 1 holen mit der nummer die multipliziert werden soll
- daten der user holen und mit foreach alle user abarbeiten

also ungefähr so:

PHP:
$query = "SELECT * FROM tabelle1"; //ich geh mal davon aus, dass nur eine zeile in der tabelle ist, ansonsten nocht mit dem WHERE klausl arbeiten

$erg = mysql_query( $query );
$res = mysql_fetch_array( $erg );

$name = $res['name'];
$anzahl = $res['anzahl'];
$art = $res['art'];

$query = "SELECT * FROM tabelle2";

$erg = mysql_query( $query );
//nun machen wir die rechnung für jeden user.....
while ( $res = mysql_fetch_array( $erg ) )
{

 //hier werden dann die entsprechnden rechnungen, oder ähnliches gemacht
 //bsp. mit echo $res['user']; könnte man z.b. __jeden__ user ausgeben
 
 $query = "UPDATE tabelle2 SET rechung1=".$anzahl." * nummer"; //ich geh hier davon aus, dass nummer das ist was du mit $anzahl multiplizieren willst
 mysql_query( $query );

}

ich hoffe du verstehst jetzt wie ich das meine ;)

mfg
 
Zurück