The first line will install the files. They are saved in /usr/share/adminer. Therefore we need a symbolic link to the folder, which is made in the second line of code.
So how do yo find the most popular cake in the Shire Bakery? Here’s an idea.
-- Show the best cookie
-- See: Ben Forta Chap. 16
SELECT COUNT( cakes.cake ) AS 'popular', cakes.cake, costumers.who
FROM cakes, costumers, likes
-- sort out the cardinalities (relations)
WHERE cakes.cakes_id = likes.cakes_id
AND costumers.costumers_id = likes.costumers_id
-- group by the cake
group by cakes.cake
-- and sort (most popular and downwards)
order by popular desc
Here’s a short tutorial on how to solve some basic SQL cardinalities. First have a look at the ER-diagram for the database and the resulting tables in PhpMyAdmin.
Many-to-Many
Many to many cardinalities may be solved like this:
SELECT cake, who
FROM cakes, costumers, likes
WHERE costumers.costumers_id = likes.costumers_id
AND cakes.cakes_id = likes.cakes_id
Note that there are two where clauses combined via AND.
One-to-Many
This cardinality is more easy:
SELECT inventory .* , costumers.who
FROM inventory, costumers
WHERE inventory.costumers_id = costumers.costumers_id
In the “many” table you simply connect via the “one” table’s id.
You can download and try out the samples from my Github Repository oneToMany_ManyToMany.
Read On
These samples are inspired by Ben Forta’s “MySQL Crash Course” Ch. 15 – 16.
Smashing Magazine (SM) har en artikel om at bruge WPs egen tabel-skaber-klasse til at skabe tabeller. Det giver en spændende funktionalitet. Læs “Create Native Admin Tables in WordPress”.
WP udviklere kan anvende de originale klasser til at skabe plugins, der i stil og udtryk ligner den originale WP. Som WP udvikler kommer man hurtigt til at arbejde på en måde, der minder om CakePHP frameworket – selv om man dog ikke har en kommandolinje til rådighed.
Den primitive CRUD er på vej. Filerne fra phpscaffold kan faktisk ikke anvendes i deres nuværende form. Jeg kan dog til en vis grad bruge SQL-sætningerne og formularerne. Men koden skal i vid udstrækning skrives fra bunden af.
Til gengæld er WP Codex nem at gå til. Jeg bruger også “Professional WordPress Plugin Development” af Williams et al. (2011).
Konstaterer, at mit workflow ser nogenlunde sådan ud:
1) Finde et problem. Spørge brugere. Undersøge.
2) Tænke over en løsning. Spørge brugere. Undre. Undersøge.
3) Modeller af workflow -> ER diagrammer
4) Etablere databasen på grundlag af modeller
5) PHP / HTML -> CRUD funktionalitet
6) Design (udvikle CSS)
Det ser ud til at det egentlige design udvikles til sidst, når jeg har fundet ud af, hvordan produktet skal virke. Måske er mit spørgsmål forkert, for hvis jeg havde besluttet at følge en vandfaldsmodel, så havde projektet taget en anden drejning.
Har netop konfigureret en LAMP server på et virtuelt Debiansystem i Mac OS X i virtualbox. Gnome skrivebordsmiljøet var for tungt; men LXDE fungerer fint. Jeg regner med at skrive koden i Pico (Nano), MC (Midnight Commander) og Bluefish.
Her begynder notater til udvikling af en Scrum-Kanban. Formålet med projektet er at udvikle en Kanban, der kan køre som et plugin i WordPress. Dels for at arbejde teoretisk med IT-projektstyring – og dels for at prøve muligheder med HTML5 og CSS.
Koden herunder stammer fra W3Schools og den laver den basale funktionalitet; men løsningen er ikke persistent. En persistent løsning bør kunne udvikles via PHP og MySQL. Sprints er:
Gemmefunktion – overfører data til databasen via POST.
Så lykkedes det at få hul igennem fra WP MySQL databasen (via klassen $wpdb) til Googles API.Grafen på billedet herover er lavet med (tilfældige) peakflow-værdier fra min database. Tallene fra databasen er visualiseret i form af en graf.
Grafen er udviklet via Googles Wizard. Efter at have defineret, hvordan grafen skulle se ud kunne man kopiere en img tag med en meget lang URL.
Googles URL blev delt op i tre bidder. Første del er de dele af URLen som ligger før tallene fra databasen. Så kommer værdier fra databasen (der er et imploderet array). Til sidst følger den sidste del af Google URLen. Der er selvfølgelig grænser for hvor lang en “GET” streng kan være; men ind til videre er det ikke et problem.
Brugeren skal være logget på for at kunne se resultaterne; men en demoversion lader sig vel nok fremstille på et tidspunkt. Først ville jeg splitte sagerne op i to funktioner; men det fungerede ikke efter hensigten. Så besluttede jeg at samle hele koden i én funktion i min class – og det virkede så.
Nu virker den tekniske side af mit plugin, for de øvrige værdier kan findes ved at variere SQL sætningerne og graferne; men den grundlæggende kode er meget ens. Noget helt andet er naturligvis en usabilityanalyse – og designet…
Der bør nok være en demoside, der viser The Asthma Diary i funktion med en demobruger a la billedet her.
Multimusen.dk will set a few cookies from Doubleclick, Google and the Social Media plugins they ay set some cookies. Some of my pages use APIs - such as YouTube, LinkedIn, Google Fonts, Google Maps, Mapbox, Spotify, Jetpack, Twitter, Facebook &c.. Such plugins may set the odd cookie.