Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
Das konzept, das mir thecain vorgeschlagen hat ist völliger schwachsin.Hier wurde diese schon von @thecain genannt: https://www.html.de/threads/arrays-in-mysql.53751/#post-367043
Hab ich nicht mehr gefunden, hab nur noch "loch" in der Suchfunktion gesucht.
Was?!?!?!?!?!?! Sag mal von welchem Planeten kommst du?Das konzept, das mir thecain vorgeschlagen hat ist völliger schwachsin.
Das problem ist, dass ihr in diesem statistik bereich nicht ganz drauss kommt. Dass mein Datebank konzept korrekt ist da bin ich mir sicher. Ich glaube abr auch das the cain eine falsche vorstellung meindes db konzepts hat, ich speichere nichts in einem kommaspearated array in der db falls das mal klar ist.Was?!?!?!?!?!?! Sag mal von welchem Planeten kommst du?
Es macht echt keinen Sinn dir hier weiter zu erklären was richtig ist und was nicht. Denn du bist der festen Überzeugung das dein Quellcode und Datenbankschema korrekt ist.
Bloß weil du eine Architektur, Ansatz was auch immer nicht verstehst, ist es nicht gleich Schwachsinn.
Dann träum mal weiter.Dass mein Datebank konzept korrekt ist da bin ich mir sicher.
Er hat Ahnung, du nicht. Also würde ich auf den hören, der sich damit auskennt. Außerdem ist er nicht der einzige der dieser Meinung ist, also würde ich mir mal Gedanken machen. ;)Ich glaube abr auch das the cain eine falsche vorstellung meindes db konzepts hat, ich speichere nichts in einem kommaspearated array in der db falls das mal klar ist.
Bitte.Aber egal. Danke für eure Hilfe.
Sorry war letztesmal ein bisschen komisch drauf :) Habe eben noch nie object orientiert mit php gearbeitet.Ich nehme nochmal allen Mut zusammen und wage es zu Fragen, was du für Statistiken berechnest. Du sprichst hier von verschiedenen? Zähle mal bitte auf welche.
<?php namespace helpers;
use \PDO as PDO;
/*
* Statistic Class
*
* @author Jeremy
* @version 2.0
* @date June 27, 2014
*/
class Statistic{
static $db;
private $userid;
private $roundid;
private $courseid;
private $start;
private $end;
private $_score = array();
public function __construct($userid, $roundid = null, $start = "2000-01-01", $end = "2030-01-01", $courseid = 0){
$this->userid = $userid;
$this->roundid = $roundid;
$this->start = $start;
$this->end = $end;
$this->courseid = $courseid;
$this->queryTables();
}
private function queryTables(){
$course_query = "";
if($this->courseid != 0){
$course_query = "AND rounds.courseid = $this->courseid";
}
//Create all queries
$this->_score = self::$db->selectAssoc("SELECT score.* FROM score INNER JOIN rounds ON score.roundid = rounds.roundid WHERE rounds.userid = $this->userid AND rounds.date BETWEEN '$this->start' AND '$this->end' $course_query");
// 11 weitere queries
}
//funktion für den rundenschnitt
public function getScore(){
$sum = 0;
$count = 0;
//Deletes roundid from array
foreach($this->_score as $round){
unset($round["roundid"]);
if($round["hole1"] != 0){
$sum += array_sum($round);
$count++;
}
}
if($count > 0){
return $sum / $count;
} else {
return 0;
}
}
//statistik für die berechnung von fairway hits
public function getFir(){
$fairways = array();
//Deletes roundid from array
foreach($this->_fir as $round){
$i = 1;
unset($round['roundid']);
while($i <= count($round)) {
array_push($fairways, $round["hole{$i}"]);
$i++;
}
}
$hits = array_count_values($fairways);
$left = 0;
$hit = 0;
$right = 0;
if($hits[1] != 0 && $hits[1] != NULL){
$left = $hits[1] / (count($fairways) - $hits[0]) * 100;
}
if($hits[2] != 0 && $hits[2] != NULL){
$hit = $hits[2] / (count($fairways) - $hits[0]) * 100;
}
if($hits[3] != 0 && $hits[3] != NULL){
$right = $hits[3] / (count($fairways) - $hits[0]) * 100;
}
$perc = array(
1 => $left,
2 => $hit,
3 => $right
);
return $perc;
}
// es folgen ca 12 andere statistiken
Was machst du denn mit einem Framework?!Habe eben noch nie object orientiert mit php gearbeitet.
Vielleicht sind Design Pattern imom für dich noch zu weit gegriffen. Man sollte schon entsprechnde Vorkenntnisse mitbringen.Falls ich wirklich ein design pattern anwenden soll, kannst du mir bitte sagen wie viel klassen ich bracuhe und was wo hinnkomt.
abstract class AbstractStatistic {
public $userId;
public $roundId;
abstract function calculate();
public function getUserId() {
return $this->userId;
}
public function setUserId($userId) {
$this->userId = $userId;
}
public function getRoundId() {
return $this->roundId;
}
public function setRoundId($roundId) {
$this->roundId = $roundId;
}
}
class AbcStatistic extends AbstractStatistic {}
Die andere variante wäre 18 tabellen mit 12 spalten für jede statistik aber das ist müsamer mit dem auslesen.Was machst du denn mit einem Framework?!
Ich lege dir nochmal ans Herz, dein Datenbankschema von Grundauf zu überdenken. Wenn du 12 Tabellen mit jeweils 18 mal den selben Spalten hast, solltest du schon schmunzeln. Da kann schon etwas nicht stimmen, egal ob Golfstatistiken oder sonstwas.
Vielleicht sind Design Pattern imom für dich noch zu weit gegriffen. Man sollte schon entsprechnde Vorkenntnisse mitbringen.
Hier nocheinmal ein Beispiel wie eine Abstrakte Klasse in deinem Fall aussehen könnte:
PHP:abstract class AbstractStatistic { public $userId; public $roundId; abstract function calculate(); public function getUserId() { return $this->userId; } public function setUserId($userId) { $this->userId = $userId; } public function getRoundId() { return $this->roundId; } public function setRoundId($roundId) { $this->roundId = $roundId; } }
PHP:class AbcStatistic extends AbstractStatistic {}
Das logische Denken üben wir nochmal. ;)Die andere variante wäre 18 tabellen mit 12 spalten für jede statistik aber das ist müsamer mit dem auslesen.
Also mit dem Datenbank modell komme ich immer noch nicht weiter.Das logische Denken üben wir nochmal. ;)
Schau dir mal den Link hier an: http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
Dann setze dich nebenbei mal mit Doctrine auseinander.Also mit dem Datenbank modell komme ich immer noch nicht weiter.
Ich werde jetz auch Laravel als Framework benutzen. Da werde ich für jeden Tabelle eine Klasse erstellen was das andere Problem ja schon mal löst. Kannst du mir nicht mal einen Vorschlag geben für das Datenbank modell?
Das ist keine blöde Frage, das versuchen wir Ihm ja schon in zähligen Beiträgen zu erklären.Ich muss jetzt mal blöd fragen:
Warum baust du die Datenbank nicht bspw. so auf, wenn du nur die Summen betrachtest:
user _ID ---loch_nr ---putts ---strafschläge ---etc.
1 ---10 ---3 ---1 ---xyz
3 ---2 ---5 ---0 ---xyz
1 ---… ---… ---… ---…
Ist jetzt mal total primitiv, aber das kann man ja noch ausbauen, in dem das ganze in verschiedene Untertabellen verlegt. Dennoch hätte man nur ein paar Tabellen und nicht so viele.
Danke vielmal für die Antwort.Ich muss jetzt mal blöd fragen:
Warum baust du die Datenbank nicht bspw. so auf, wenn du nur die Summen betrachtest:
ID --- user _ID ---loch_nr ---putts ---strafschläge ---etc.
1 --- 1 ---10 ---3 ---1 ---xyz
2 --- 3 ---2 ---5 ---0 ---xyz
3 --- 1 ---… ---… ---… ---…
Ist jetzt mal total primitiv, aber das kann man ja noch ausbauen, in dem das ganze in verschiedene Untertabellen zerlegt. Dennoch hätte man nur ein paar Tabellen und nicht so viele.