GORM - Objektzählung

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

GORM - Objektzählung

Beitrag von Screeze » 18.02.2010, 14:28:59

Ich suche grade vergeblich eine methode des GORM, welches mich die objekte in der datenbank zählen lässt. Überseh ich die immer wieder, oder ist keine vorhanden?

Genauer gesagt, suche ich das äquivalent zu

Code: Alles auswählen

$result = mysql_query("SELECT COUNT(*) FROM `Object`"); // evtl. mit WHERE bedingung?
$anzahlderdatensaetze = mysql_result($result,0);
denn die methode alle datensätze zu laden und per php zu zählen ist nachdem was ich gelesen hab ca 12 mal langsamer.

Muss ich das manuell lösen, oder gibts doch eine Funktion dafür?

Danke

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: GORM - Objektzählung

Beitrag von dr.e. » 18.02.2010, 16:15:54

Hallo Ralf,

der GORM hat die Methode loadRelationMultiplicity(). Mit dieser kannst du ausgehend von einem Objekt und einer Beziehung die Anzahl der in Beziehung stehenden Objekte laden. Sofern es dein daten-Modell hergibt, sollte das genügen. Schau dir mal die API-Doku dazu an.
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: GORM - Objektzählung

Beitrag von Screeze » 18.02.2010, 16:22:21

Hmm das scheint nicht wirklich zu sein was ich suche.
Ich habe anfangs kein Objekt und keine Beziehung, nur den Name des Objekts, welches ich zählen will.

Beispiel:
Ich will wissen wieviele "User" es gibt. Nur eine Zahl, nichts weiter.

Da komm ich glaub ich mit der genannten Funktion nicht weit, oder irre ich?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: GORM - Objektzählung

Beitrag von dr.e. » 18.02.2010, 17:16:30

Hallo Ralf,

nein, das bringt nichts. Man könnte noch eine Methode zum GORM hinzufügen, die die Anzahl der vorhandenen Objekte eines Typs zurückliefert. Diese würde aber auch nur das von dir gepostete Statement ausführen. Demnach würde ich einfach per

Code: Alles auswählen

$gorm->get('DBDriver')->executeTextStatement('...')
das gewünschte Statement ausführen bis die Methode eingebaut ist. OK?
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: GORM - Objektzählung

Beitrag von Screeze » 18.02.2010, 17:25:43

Jo kein problem, dachte nur das da bestimmt schon was vorhanden ist.

Wenn du das einbaust, am besten gleich mit CriterionObject unterstützung...

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: GORM - Objektzählung

Beitrag von dr.e. » 18.02.2010, 17:39:23

Hi Ralf,

ok, nehme ich so auf. Die Signatur wäre dann wie folgt:

Code: Alles auswählen

int GenericORMapper::loadObjectCount($objectName,GenericCriterionObject $criterion = null)
Einschränkung wäre hier jedoch, dass dem GenericCriterionObject keine Beziehungs-Informationen mitgegeben werden können - bzw. umgekehrt: diese ignoriert werden, weil es ja hierzu schon obige Methode gibt. Einverstanden?
Viele Grüße,
Christian


Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: GORM - Objektzählung

Beitrag von MrNiceGuy » 20.02.2010, 10:28:06

Königlich wäre bei Übergabe einer Beziehung die "Weiterleitung" an die andere Methode ;)
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: GORM - Objektzählung

Beitrag von dr.e. » 20.02.2010, 13:33:28

Hallo Lutz,

was meinst du mit "Weiterleitung" an eine andere Methode? Wie soll das von der API aussehen?
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: GORM - Objektzählung

Beitrag von dr.e. » 20.02.2010, 18:59:15

Hallo zusammen,

ich habe die Methode nun zum Code hinzugefügt. Bitte hierzu auf die Version des SVN updaten (Commit: 863).

Feedback wie immer erwünscht! :)
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: GORM - Objektzählung

Beitrag von Screeze » 20.02.2010, 19:53:48

Alles klar, werde ich testen sobald ich mein 800 seiten wälzer durchhab :ugeek:

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: GORM - Objektzählung

Beitrag von MrNiceGuy » 20.02.2010, 20:33:52

@Christian: Ich meinte damit, dass wenn eben eine Verknüpfung in dem Criterion-Object steckt, dass dann von der neuen Methode auf die andere quasi weitergeleitet wird, als hätte man die alte Funktion aufgerufen.
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: GORM - Objektzählung

Beitrag von dr.e. » 21.02.2010, 00:13:05

Hallo Lutz,

ach jetzt verstehe ich. Dazu müsste aber die Signatur anderes sein, denn die aktuelle nimmt den Namen des Objekt-Typs und die Methode loadRelationMultiplicity() benötigt die Instanz des Objekts. Aus diesem Grund sind sie inkompatibel in der Signatur und auch von der Absicht. Das ist meiner Meinung nach aber nicht problematisch, denn die API ist damit klarer. Mit loadObjectCount() lädst du die Anzahl eines Objekt-Typs, mit loadRelationMultiplicity(), die Vielfachheit einer Beziehung.

Ich finde das jedoch nicht nur aus Sicht der API schöner, sondern auch aus Sicht der OOP. Binde ich das alles in eine Methode, kommen wir schnell zu doAllButFast() an. ;)
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: GORM - Objektzählung

Beitrag von Screeze » 22.02.2010, 20:57:27

dr.e. hat geschrieben:Hallo zusammen,

ich habe die Methode nun zum Code hinzugefügt. Bitte hierzu auf die Version des SVN updaten (Commit: 863).

Feedback wie immer erwünscht! :)

Getestet und für Gut befunden ;)

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: GORM - Objektzählung

Beitrag von MrNiceGuy » 23.02.2010, 09:18:34

[OT]
dr.e. hat geschrieben:[...]Ich finde das jedoch nicht nur aus Sicht der API schöner, sondern auch aus Sicht der OOP. Binde ich das alles in eine Methode, kommen wir schnell zu doAllButFast() an. ;)
Au ja, das ist es, was ich schon immer erreichen wollte *freu* :)[/OT]

PS: War ja nur eine Idee :P
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast