Doctrine – IF-Abfrage in ORDERBY

09. Mai 2014

Das Problem: es gibt in der Datenbank im Feld ranking eine Rangliste nach der einzelne Einträge sortiert werden sollen. Allerdings soll das die Reihenfolge aufsteigend sein (also ORDER BY ranking ASC), ausgenommen die Zeilen, die NULL sind. Die sollen als letztes kommen.

Was ich nun eigentlich erreichen möchte ist eine Query dieser Art:

  1. SELECT * FROM table ORDER BY IF(ranking IS NULL, 9999, ranking) ASC

Ich habe nun auf alle mögliche Arten versucht, das mit Doctrine hinzubekommen, es ist aber immer fehlgeschlagen. Bis mir dieser freundliche Tipp gegeben wurde. Anscheinend kann Doctrine kein IF in OrderBy (wieso auch? ….), was es allerdings kann ist ein CASE WHEN im Select, das man dann im OrderBy referenzieren kann.

  1. $query = $this
  2. ->createQueryBuilder( 'a' )
  3. ->select('a')
  4. ->add('from', 'path\to\whatever\table a')
  5. ->addSelect('CASE WHEN a.ranking IS NULL THEN 9999 ELSE a.ranking END as HIDDEN ORD')
  6. ->where( 'a.deleted IS NULL' )
  7. ->orderBy( 'ORD', 'asc' )
  8. ->getQuery()
  9. ;

Und damit gehts! YAY!

Btw: doctrine is total bescheuert.

IE8 (WinXP) – in Passwort Feldern werden keine Punkte angezeigt

08. Mai 2014

Es is so traurig, dass es immer noch Leute mit IE8 auf Windows XP gibt, aber bei denen besteht wohl unter bestimmten Umständen das Problem, dass die Sterne / Punkte in Passwort Feldern nicht angezeigt werden.
Korrigieren konnte ich das, in dem ich den Feldern wieder eine Standardschrift (in dem Fall Arial) zugewiesen habe.

  1. input{ font-family:Arial; }

Hahahahaha neue Facebook PHP SDK

06. Mai 2014

Weils so lustig ist, hat Facebook beschlossen, still und heimlich eine neue PHP SDK einzuführen. Und neben den üblichen Problemen (schlechte Doku, keine Beispielscripts) gibt getLoginUrl nun nicht mehr die altbekannte Facebook User ID zurück sondern eine “App Scoped User ID” – eine völlig neue ID die irgendwie im Zusammenhang mit der aktuellen APP ID generiert wird.
Wer also ein Login aufgrund der bestehenden Facebook User Id implementiert hat, wird sich in Zukunft so RICHTIG freuen.

Was ich bisher gefunden habe ist der hinweis, dass die alte SDK noch bis April 2015 funktionieren soll: https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids

Und ein einziges echtes Beispielscript ist mir bisher über den Weg gelaufen, dafür is das richtig gut und übersichtlich: http://metah.ch/blog/2014/05/facebook-sdk-4-0-0-for-php-a-working-sample-to-get-started/