[PHP & MySQL] Berechnungssystem so möglich?

Steffi.
Hallöle,
ich tüftel grade an einem Berechnungssystem herum. Es geht darum den Wert eines Pferdes automatisch generieren zu lassen um ein absolut einheitliches und faires Preisbild zu bieten. Ich weiß allerdings nicht ob das so, wie ich es mir vorgestellt habe, überhaupt möglich ist.
Ich habe bisher die Ausbildung als Kriterium hinzugezogen. Das gin auch relativ einfach da ich für die Ausbildung Punktwerte habe und mir daran einen Preis via PHP ausrechnen lassen kann (via Multiplikation und Addition). Dieser Bereich funktioniert auch schon wie gewünscht, das heißt er steigt wenn der Ausbildungswert des Pferdes steigt.

Allerdings würde ich gerne auch andere Kriterien in den Preis mit einfließen lassen, da ich ansonsten einen Grundwert angeben muss und somit wieder ein 'Ungleichgewicht' in das System kommt (das soll ja verhindert werden...). Folgendes würde ich gerne einfließen lassen:

1. Seltene Rassen
Das heißt wenn im Feld 'rasse' der Datenbank eine bestimmter Wert eingetragen ist (zB. Paso Fino) soll dem Preis ein "Aufschlag" zugerechnet werden (bspw. 750€), bei anderen Rassen jedoch andere Werte und bei einigen keine

2. Das Geschlecht
Sprich: Ein Hengst soll mehr als eine Stute kosten, eine Stute jedoch mehr als ein Wallach

3. Das Alter

4. Bestimmte Zuchtwerte

5. Bestimmte Fellfarben

6. Turniererfolge

soo, ich weiß allerdings nicht so ganz wie ich das realisieren soll. Also das es irgendwie mit If-Abfragen zu tun hat ist mir schon bewust aber wie lasse ich beispielsweise berechnen das im Falle dass das Pferd eine Paso Fino Stute ist die keine Nachkommen hat ein gewisser Betragt für das Geschlecht Stute hinzugerechnet wird, für die Rasse ebenfalls, aber nicht für die anderen, nicht erfüllten Kriterien (wie in diesem Beispiel die Nachkommen) und wie kann ich diesen Wert dann zu dem Bereits stehenden Wert addieren welcher ja durch die Berechnung der Ausbildung entsteht?

Gehts das alles überhaupt oder sollte man es lieber gleich sein lassen?

EDIT:
Ich habe mal bereits angefangen die ersten 'Seltenen Rassen' als If-Bedingung zu formulieren, das ist an sich auch nicht das Problem. Ist eben eine bestimmte Rasse zutreffen (if, or) wird eben der Wert der rauskommen würde wenn man nur die Ausbildung berechnen würde eben um einen gewissen Betrag erhöht. Das funktioniert soweit auch. Wie soll ich es allerdings anstellen das es möglich ist das ein Pferd auch eine seltene Rasse haben kann (da sind ja mehrere möglich) und auch eine Stute sein kann, somit beides berechnet wird? Ich kann ja nicht alle möglichkeiten mit and abdecken, da bin ich ja in jahren noch dabei ....

php:
1:
2:
if ($row->rasse == "British Riding Pony" or $row->rasse == "Welsh A" or $row->rasse == "Polo Pony" or $row->rasse == "Connemara Pony") {
echo "$add_Gesamt_Rasse_Kategorie1 €";


könnte man den or, or, or Teil auch verallgemeinern? Also da zB einsetzen: $row->rasse == "Rasse_Katg_1 und dann irgendwo alle Rassen definieren die zu Katg 1 gehören? Wäre es dann mit and möglich?

Huah...
Leila
Die Rassen könntest du in arrays legen und dann abfragen, mit if, else if usw. ob die Rasse im array liegt.
Bei Turniererfolgen hoffe ich für dich, dass du die in ner eigenen Tabelle hast, dann kannst nämlich auszählen, wie viele Erfolge jedes Pferd hat, dementsprechend auch für verschiedene Platzieungen verschiedenes vergeben.

Fellfarben könntest du ebenfalls mit array machen, für Geschlecht wieder ne If-Abfrage. Bei Zuchtwerden, weiß ich leider nicht, was du dir so vorstellst. Für alter müsste das auch gehen mit if

Ich muss ganz ehrlich sagen, ich wäre wohl an der Ausbildung gescheitert, aber das Problem hast du ja gelöst Augenzwinkern
Steffi.
Die Ausbildung war das leichteste XD Ich habe ja zwischen 0 und 250 Punkte die da vergeben werden können und da habe ich einfach festgelegt das es Pro Ausbildungs- und Potentialpunkt - je nach Sparte - einen bestimmten Wert gibt. Bspw. 2€ pro Ausbildungs- und Potenzialpunkt in den Sparten Dressur, Springen, VS. Das alles rechnet mir PHP dann zusammen und gibt mir dann einen Endwert ($add_Gesamt_Ausbildung) aus wo alle Werte eben zusammen drinne sind.

Bei den Zuchtwerten meinte ich zB. das ein gekörtes/prämiertes Pferd eben etwas mehr kostet als ein nicht zur Zucht zugelassenes. Das eben je nach Titel den das Pferd hat auch der Wert steigt und auch pro Nachkomme ein bestimmter Wert 'gezahlt' wird.

Die Erfolge habe ich bisher in einer extra Tabelle, die Tabelle Erfolge. Da ist dann eben die ID des Pferdes eingegeben und die zum Erfolg gehörenden Daten. Passt das dann?

Werde mich dann nachher mal mit den vorgeschlagen Array-Methoden auseinandersetzen, vll. klappt es ja, das wäre echt super.

Danke schonmal!
Leila
müsste. Musst halt nur die Erfolge des Pferdes mit id x abfragen und Einträge in der Tabelle zählen (mysql_num_rows($abfrage))
Steffi.
Ich werde es mal probieren nachher, sitze momentan wegen zahlreicher Freistunden noch in der Schule fest und habe gleich noch Sport.

Danke aber schonmal, hoffe ich bekomme das dann auch hin *g*
Steffi.
So, habe nun endlich Zeit gefunden und versucht die Rassen in Array zu legen, die Abfrage klappt aber leider nicht, ich bekomme immer den else-Wert ausgegeben auch wennich eine der Rassen angebe welche in den Arrays liegen.

Mein Code:
php:
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:
// Rassen Berechnung nach verschiedenen Kategorien // 

$Rasse_Kategorie1 = array("Welsh A""British Riding Pony""Riding Pony""Polo Pony""Connemara Pony""Dartmoor Pony""New Forest Pony""Appaloosa""Berber""Belgisches Warmblut""Budjonny""Holländisches Warmblut""Russischer Traber""Würtemberger""Oldenburger""Trakehner");
$Rasse_Kategorie2 = array("Australisches Reitpony""Bosnisches Reitpony""Dales Pony""Fellpony""Exmoor Pony""Gotland Pony""Schwedisches Reitpony""Pony of the Americas""Araber""Dänisches Reitpony""Dänisches Warmblut""Französisches Warmblut""Englisches Vollblut""Quarter Horse""Quarter Pony""Paint Horse""Selle Francais""Shagya Araber""Welsh B");
$Rasse_Kategorie3 = array("Französisches Reitpony""Poney Francais de Selle""Hackney Pony""Highlandpony""Isländer""Achal-Tekkiner""Amarican Saddlebred""Finnisches Universalpfer""Finnisches Warmblut""Irish Hunter""Hunter""Lippizaner""Paso Fino""Paso Peruano""Schwedisches Warmblut""Welsh C""Welsh D");
$Rasse_Kategorie4 = array("Ardenner""Brabanter""Bretone""Clydesdale""Holländisches Kaltblut""Noriker""Percheron""Rheinisches Kaltblut""Russisches Kaltblut""Alter Real""Andalusier""Knappstrupper""Morgan Horse""Belgisches Kaltblut""Rheinländer");
$Rasse_Kategorie5 = array("Pura Raza Espanola""Friese""Barock-Pinto""Hispano Araber""Russischer Araber""Persischer Araber""Arabisches Vollblut""Lusitano");
$Rasse_Kategorie6 = array("Shire Horse");

$add_Gesamt_Rasse_Kategorie1 $add_Gesamt 1000;
$add_Gesamt_Rasse_Kategorie2 $add_Gesamt 1500;
$add_Gesamt_Rasse_Kategorie3 $add_Gesamt 2000;
$add_Gesamt_Rasse_Kategorie4 $add_Gesamt 2500;
$add_Gesamt_Rasse_Kategorie5 $add_Gesamt 3000;
$add_Gesamt_Rasse_Kategorie6 $add_Gesamt 4000;


if ($row->rasse == $Rasse_Kategorie1) {
echo "$add_Gesamt_Rasse_Kategorie1 €";
}

elseif ($row->rasse == $Rasse_Kategorie2) {
echo "$add_Gesamt_Rasse_Kategorie2 €";
}

elseif ($row->rasse == $Rasse_Kategorie3) {
echo "$add_Gesamt_Rasse_Kategorie3 €";
}

elseif ($row->rasse == $Rasse_Kategorie4) {
echo "$add_Gesamt_Rasse_Kategorie4 €";
}

elseif ($row->rasse == $Rasse_Kategorie5) {
echo "$add_Gesamt_Rasse_Kategorie5 €";
}

elseif ($row->rasse == $Rasse_Kategorie6) {
echo "$add_Gesamt_Rasse_Kategorie6 €";
}

else {
echo "$add_Gesamt €";
}
}
?>
Leila
es heißt "else if" also in 2 Wörtern Augenzwinkern
Steffi.
klappt leider trotzdem irgendwie nicht =/
Steffi.
Supi, das klappt schonmal, da versuche ich den Rest jetzt mal, Dankesehr!
Puuuh, also den Preis für Ausbildung, Rasse und Geschlecht rechnet er mir auf jedenfall schonmal zusammen. Recht umständlich aber gut, geht denke ich grad noch so XD