anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Auktionen https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4710 |
Seite 1 von 1 |
Autor: | Patzue [ Mi 29 Okt, 2008 14:52 ] |
Betreff des Beitrags: | Auktionen |
Hi! Die SuFu hat mir nicht grade weitergeholfen.. Ich wollte eine Art Häuser versteigerung machen, sodass, sagewn wir man für 10k Gold sein Haus anbietet und Interesenten dann, sagen wir 2 RL Tage Zeit haben zu bieten und der höchst bietende bekommt es dann.. Nur mein problem ist.. ich hab keinerlei Idee wie ich das machen soll, dass man Anbieten kann und dass man seinen eigenen Startpreis machen kann (mit mindeststart Preis und max-Start preis..) Wäre nett, wenn mir jemand Helfen könnte |
Autor: | Auric [ Mi 29 Okt, 2008 15:20 ] |
Betreff des Beitrags: | Re: Auktionen |
Gehe es doch mal ganz Grundlegend an: Der Anfang ist immer: Ein User muss (nach Prüfungen ob er das kann etc.) ein Haus zur Versteigerung anbieten. Hier muss also die für ein Auktionsangebot nötige Datenmenge irgendwie zunächst aufgenommen und dann natürlich abgespeichert werden - am einfachsten wohl in der DB: Entweder als zusätzliche Felder in der houses-Tabelle oder aber (sauberer in meinen Augen) in einer separaten Tabelle (nennen wir sie einmal "auktionen"). Letztere bräuchte in etwa folgende Felder:
acctid (INT) - Verweis auf die acctid des verkäufers house_id (INT) - Verweis auf die id des Hauses start (DATETIME) - Zeitpunkt des Auktionsstart ende (DATETIME) - Zeitpunkt des Auktionsschlusses Nächster Abschnitt: die Auktion wird freigegeben und andere User können auf das Haus bieten. Eleganterweise können wir hier ein bisschen verallgemeinern und sagen, dass das allererste Gebot der Startpreis des Besitzers ist - damit sparen wir uns weitere Felder in der auktionen-Tabelle. Nun müssen natürlich die Gebote auch noch irgendwo gespeichert werden - wir brauchen also noch eine weitere Tabelle: "auktionsgebote", die da aussehen könnte wie folgt:
auktion_id (INT) - Zuordnung zur Auktion acctid (INT) - id des bieters datum (DATETIME) - datum des Gebotsabgabe gold (INT) - gebotener Wert Goldstücke gems (INT) - gebotener Wert Edelsteine Nun musst du "nur" noch eine Oberfläche dazu schreiben um das ganze ein- und natürlich aus zugeben. Schlussendlich muss eben der Höchstbietende noch bestimmt werden und der Handel durchgezogen werden. Hier taucht nun allerdings ein Problem auf: Was wenn der User nicht mehr genug Finanzmittel hat. Hier musst du dir nun selbst überlegen, wie du das angehen willst - z.B. indem die User das Gold schon beim Bieten einzahlen müssen und es im nicht-Siegesfall wieder ausgezahlt wird (was allerdings bei einem DK auf Seiten des Users wunderbare Geld-Überbrückungsmöglichkeiten bietet). Soweit erst mal meine tips Auric |
Autor: | Patzue [ Mi 29 Okt, 2008 18:01 ] |
Betreff des Beitrags: | Re: Auktionen |
da mein Datenbank wissen das beste ist ;-) alles varchar oder? und welche länge/Set? |
Autor: | Harthas [ Mi 29 Okt, 2008 20:54 ] |
Betreff des Beitrags: | Re: Auktionen |
Hat Auric ja sogar angegeben. Jeweils in der Klammer ;-) |
Autor: | Tidus [ Do 30 Okt, 2008 10:38 ] |
Betreff des Beitrags: | Re: Auktionen |
nun da es bei datetime meines wissens keine länge (wozu auch) gibt, und es sonst nur int felder sind, nimmst einfach 11 weil du wahrscheinlich weder mit der id noch mit dem gold oder gems betrag jemals über die mögliche größe von einem int 11 drüber kommst ;D |
Autor: | Eliwood [ Do 30 Okt, 2008 15:51 ] |
Betreff des Beitrags: | Re: Auktionen |
Die Zahl in den Klammern ist nicht die Länge. Mit "Länge" ist etwas anderes gemeint - und zwar das auffüllen von wievielen Leerschlägen bei der Ausgabe. Und, wenn das ZEROFILL-Flag gesetzt ist, mit wievielen Nullen aufgefüllt werden muss - 11 bedeutet also, dass die Zahl *immer* 11 Stellen haben muss, sofern weniger. 1 wird demnach zu 00000000001. int ist die Grösse des Feldes - 2^32. Das oberste Maximum für die Zahlen ist demnach 2^31-1. |
Autor: | Tidus [ Fr 31 Okt, 2008 13:45 ] |
Betreff des Beitrags: | Re: Auktionen |
hm, wenn ich nun aber statt 11 nur 1 nehm, dann hat es max eine stelle oder mindestens eine stelle? also kann die zahl dann auch mehr stellen haben..? |
Autor: | Taikun14 [ Sa 01 Nov, 2008 23:52 ] |
Betreff des Beitrags: | Re: Auktionen |
Tidus hat geschrieben: hm, wenn ich nun aber statt 11 nur 1 nehm, dann hat es max eine stelle oder mindestens eine stelle? also kann die zahl dann auch mehr stellen haben..? Hat dir Eli doch eig. erklärt? Wenn du 1 nimmst, hast du mind. 0, aber max. 1, denn 2^1-1 = 1. Das ist ja immer viel, was man besser machen könnte, wo sich die Leute denken "mir egal, 11 passt schon", aber dass sie dafür 32 Bit unnötig verbrauchen, wissen sie nicht. ![]() |
Autor: | Eliwood [ Sa 01 Nov, 2008 23:56 ] |
Betreff des Beitrags: | Re: Auktionen |
Nein, NEIN. 11 hat *NICHTS* mit der Anzahl STELLEN zu tun. Verdammt. Lest ihr denn nicht? Diese Zahl sagt einzig etwas darüber aus, bis wohin mit Leerschlägen bei der Ausgabe aufgefüllt wird. Alles klar? Egal ob 11 oder 1, die Zahl hat trotzdem 32 bit. Und kann trotzdem 2^31-1 gross werden, bzw. -2^31 klein. |
Autor: | Taikun14 [ So 02 Nov, 2008 00:25 ] |
Betreff des Beitrags: | Re: Auktionen |
Stimmt, du hast Recht. Da hatte ich wohl noch ander Typen nebenbei im Kopf gehabt. ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |