Marktsystem

uwee

Erfahrenes Mitglied
Hallo an alle

Ich bin dabei ein Marktsystem aufzubauen...
Es geht darum: Ich möchte gerne ein System haben, mitdem ich bestimmte Waren (in Werten) tauschen kann. Getauscht wird jedoch nicht 1:1, sondern so, wie es der Markt gerade hergibt.

Folgendes Beispiel:
Ich habe dieRessourcen GOLD und EISEN.
Momentan hat der Markt
1.309.339.051 GOLD und
864.940.760 EISEN im Lager.
Nun möchte ein teilnehmer gerne 50 Einheiten Gold gegen Eisen eingetauscht haben.
Als Umrechnung kommt nur diese Formel in Frage:
NEHMEN : GEBEN
Was hier bedeuten würde:
864940760 : 1309339051 = 0,660593418748
Das bedeutet, dass der Teilnehmer für 50 Gold-Einheiten gerade 33 Eisen-Einheiten bekommt. (Nach folgender Rechnung: 0,660593418748 * 50 ~ 33)

Schön und gut, das System ist jetzt ja wohl klar.

Das Problem an der ganzen Sache ist nur, dass ich nicht weiss, wie ich das rechnen soll.
Ich habe bereits ein Formular erstellt und eine tabelle angelegt.
Die Tabelle beinhaltet die Ressourcen Gold,Stein,Holz,Eisen,Nahrung und die Felder sind BIGINT(255), jeweils steht die Zahl 70000 drin.
Im Formular gibt es drei Felder:
PHP:
<form method=post action=arbeit.php>
Ressource (geben)<br>
<select name=ress_aus>
<option name=gold selected>GOLD</option>
<option name=stein>STEIN</option>
<option name=holz>HOLZ</option>
<option name=eisen>EISEN</option>
<option name=nahrung>NAHRUNG</option>
</select>
<br><br>
Menge<br>
<select name=menge>
<option selected name=100>100</option>
<option name=200>200</option>
<option name=250>250</option>
<option name=500>500</option>
<option name=750>750</option>
<option name=1000>1000</option>
<option name=1500>1500</option>
</select>
<br><br>
gegen Ressource (nehmen)<br>
<select name=ress_ein>
<option name=gold selected>GOLD</option>
<option name=stein>STEIN</option>
<option name=holz>HOLZ</option>
<option name=eisen>EISEN</option>
<option name=nahrung>NAHRUNG</option>
</select>
<br><br>
<input type=submit name=submit value=Tauschen>
</form>

Nun muss die getroffene Auswahl (aus unserem Beispiel: Gold ; 50 ; Eisen) auf eine weitere Seite geleitet werden. Die Seite soll arbeit.php heißen.

Das klappt auch alles. Aber nun hängt sich mein Einfallsreichtum daran auf, wie ich die oben vorgestellte Rechnung durchführen soll. Ich müsste die Werte aus der Tabelle holen und miteinander verrechnen. Nur wie? Ich muss vorher ja kontrollieren, WELCHE Werte verrechnet werden sollen.

SO würde ich das gerne machen:
PHP:
$ress_weg=$_POST['ress_aus'];
$ress_ein=$_POST['ress_ein'];
$ress_menge=$_POST['ress_menge'];
$sql="";
$result="";
//if ($finde!=""){
$sql="SELECT id,($ress_weg),($ress_ein) FROM ressourcen ".
 "WHERE id LIKE'%%%' " .
"ORDER BY id";

Also in die Select-abfrage einfach die getroffene Auswahl einbauen.
nur im weiteren Verlauf habe ich folgendes stehen:
PHP:
echo mysql_num_rows($result)," </title></head><body>\n";
echo "<table border=0 cellpadding=5><tr>"; 
while ($row=mysql_fetch_object($result)){ 
   echo "<td>$ress_ein:$ress_weg</td>"; 
} 
echo "</tr></table>";

Ich weiss, dass es nicht funktioniert. aber wie müsste ich es dann anders schreiben?

Vielen Dank im Voraus schonmal...

UweE
 
1. Is deine Rechnung ganz schön doof. Sowas is ned realistisch da brauchste nen zusätzlichen Faktor ala 1 Gold sind 10 Eisen wert dann noch nachfrage dazu.

Ansonsten brauchste bei 2 Werten eine Abfrage ala SELECT id, resname, reswert WHERE resname = resnameein OR resname = resnameaus
 
Es soll nict standhaft sein. 1€ ist auch nicht immer 1,5$
Es soll sich darauf anpassen, wieviel wovon im Lager ist.
Abgesehen davon habe ich nicht nach der Meinung sondern nach einem Vorschlag gefragt :mad:

Die Ausgangswerte sind beispiele und natürlich Quatsch, weil man dann immer 1:1 tauschen kann. Das ist mir schon klar. Es sollte ja als Beispiel dienen.

Wenn die Ausgangswerte sich ersteinmal verändert haben und verschiedene Sachen getauscht werden, pendelt sich das schnell ein. So isses auf dem Weltmakrt auch eben. Wenn plötzlich alle Welt Eisen braucht, geht der Wert schnell hoch!
 
Zuletzt bearbeitet:
Sicaine hat gesagt.:
Ansonsten brauchste bei 2 Werten eine Abfrage ala SELECT id, resname, reswert WHERE resname = resnameein OR resname = resnameaus

Wenn ich das nach dem Schema mache, müsste ich eine ganz andere MySQL-Tabelle zu grund legen.
Meine sieht momentan SO aus:
| ID | GOLD | STEIN | HOLZ | EISEN | NAHRUNG |
| 1 | 70000 | 70000 | 70000 | 70000 | 70000 |

Nach der Abfrage müsste sie dann doch so aussehen, oder:

| RESS | MENGE |
| Gold | 70000 |
| Stein | 70000 |
| Holz | 70000 |
| Eisen | 70000 |
| Nahrung | 70000 |


Ich mein, das wäre auch kein Problem, das so zu machen
 
zudem müsste es dann AND und nicht OR heissen, weil ich ja beide Werte brauche und nicht nur einen!
 
Zum Anderen gibts hier auch eine Editierfunktion.

Also ich würde die Tabelle umstrukturieren. Wenn du nämlich mal ein paar Ressourcen hinzufügen willst wäre es nicht sinnvoll immer dafür eine Spalte anlegen zu müssen.

Ausserdem stimmt schon OR:

"Entweder oder oder beides" ist der Wortlaut von OR. Also mit AND wird es totaler Rotz, weil man dann einen Datensatz haben müsste, der diese beiden Namen in der Spalte enthalten müsste, was rein technisch nicht geht ;)
 
ja, wegen dem editieren sorry - ich hab das schön öfters gesagt, der Rechner an dem ich sitze (bis 4) ist nicht meiner, sondern Firmeneigentum und ich kann aus irgendeinem Grund kein "Editieren" machen, weil die Firewall was dagegen hat. Ich kann ein von mir eröffnetes thema auch nicht als "abgeschlossen" markieren.


Also die Tabelle Lieber mit den Feldern Ressname und Ressmenge... okay, lässt sich machen...

EDIT:
ahhhh, das mit dem Edit tuts... zwar sind keine Bilder zu sehen, aber wenigstens die Maske ist da... trotzdem noch irgendwie seltsam das ganze.

Das mit dem OR hab ich nun verstanden.

Nur wie gehe ich dann die rechnung an... oder stimmt die so, wie ich sie dargestellt habe?
 
Zuletzt bearbeitet:
klasse, jetzt tuts das mit dem Edit wieder nicht... ich setze mich für bessere Bedingungen am Arbeitsplatz ein - meint Ihr, die Caritas tut da was ;)


Zu der Rechnung ist mir dann aufgefallen, dass ich ja die Werte beider Ressourcen benötige. DIe von Eisen und die von Gold, in meinem Beispiel.
Aber wie halte ich die auseinander, der Abfrage nach?
Eine Schleife, mit while, wie ich sie da habe, müsste zweimal durchlaufen, um die beiden Ergebnisse zu bekommen... und soll dann noch den Faktor ausrechnen.
Gar nicht so einfach dieses simple System umzusetzen
 
Zurück