Gelukkig heb ik dat mooi in de tijd van de baas kunnen doen. Zou nu nooit meer een applicatie willen ontwikkelen zonder symfony.quote:Op woensdag 24 juni 2015 07:49 schreef robin007bond het volgende:
Poeh. Moet zeggen dat zo'n framework leren als Symfony meer tijd kost dan gedacht.
Ik heb dit toegepast, maar heb nog op 1 punt hulp nodig.quote:
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | <?php try { require('config.php'); $con= new PDO( "mysql:host=" . $settings["dbserver"] . ";dbname=" . $settings["dbname"], $settings["dbuser"], $settings["dbpass"]); $sql="SELECT @curRank := @curRank + 1 AS Rank , UnitDays.UserID , UnitDays.UserName , UnitDays.Subsite , UnitDays.Unit , UnitDays.FirstStartdate , UnitDays.NrOfUniqueDays , CASE WHEN UnitDays.Subsite = ? THEN 'Yes' ELSE 'No' END IsDisplayed FROM (SELECT UserID , UserName , Subsite , Unit , FirstStartdate , NrOfUniqueDays FROM UnitDays) UnitDays JOIN (SELECT @curRank := 0) r WHERE UnitDays.UserID = ? ORDER By UnitDays.FirstStartdate"; $stmt=$con->prepare($sql); foreach(array('Forum', 'Frontpage') as $subsite) { $stmt->execute(array($subsite,$id)); $fok = 0; echo '<script type="text/javascript" data-src="https://www.google.com/jsapi" style="visibility:hidden;"></script>'; echo '<script type="text/javascript">'; echo 'google.load("visualization", "1", {packages:["corechart"]});'; echo 'google.setOnLoadCallback(drawChart);'; echo 'function drawChart() {'; echo 'var data = google.visualization.arrayToDataTable(['; echo "['Functie', 'Dagen'],['', ''], ['',''],"; if ($SelectedID == 41894 OR $SelectedID == 372780) { echo "['',''], "; } // 99.999 == du_ke while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ++$fok; if ($row['IsDisplayed'] == 'Yes') { echo "['" . $row['Unit'] . "', " . $row['NrOfUniqueDays'] . "]"; } else { echo "['','']"; } if ($fok !== $row['Rank']) { echo ","; } } echo ']);'; echo 'var chart = new google.visualization.PieChart(document.getElementById("' . $row['Subsite'] . '"));'; echo "var options = { title: 'Subsite: " . $row['Subsite']. "', sliceVisibilityThreshold: .00001, backgroundColor: 'transparent', tooltip: {showColorCode: true, textStyle: { color: 'black'}} };"; echo 'chart.draw(data, options);'; echo '}'; echo '</script>'; echo '<div class="piechart" id="' . $row['Subsite'] . '" style="width: 100%; height:400px;"></div>'; } } // Error handeling catch(PDOException $e) { echo '<pre>'; echo 'Regel: '.$e->getLine(). '<br />'; echo 'Bestand: '.$e->getFile(). '<br />'; echo 'Foutmelding: '.$e->getMessage(); echo '</pre>'; } ?> |
1 2 3 | <?php $row = $stmt->fetch(PDO::FETCH_ASSOC) ?> |
Gewoon $subsite gebruiken buiten de while?quote:Op woensdag 24 juni 2015 11:56 schreef zarGon het volgende:
[..]
Ik heb dit toegepast, maar heb nog op 1 punt hulp nodig.
[ code verwijderd ]
Het gaat om regel 49 t/m 54. $row['Subsite'] wordt niet aangevuld en is dus leeg.
Ik denk dat dat komt omdat het niet meer in de while() zit, maar ik krijg het niet aan de praat. Ook niet als ik nogmaals het onderstaande toevoeg op regel 48.
[ code verwijderd ]
Enig idee hoe ik $row['Subsite'] wel met de juiste waarden terugkrijg?
Yes, werkt! En javascript laadt nu 1 kee in. Bedankt!quote:Op woensdag 24 juni 2015 12:06 schreef mstx het volgende:
[..]
Gewoon $subsite gebruiken buiten de while?
En ik zou even zorgen dat je dat externe javascriptje niet 2x inlaadt
Jep.quote:Op woensdag 24 juni 2015 12:15 schreef Nattekat het volgende:
Klopt de tabel die de SQL query teruggeeft wel? Het is de enige plek waar $row gevuld wordt als ik het zo bekijk.
Je kan controleren of er gegevens in de data zijn gezet; als er geen gegevens in data zijn gezet moet de variable data gelijk zijn aanquote:Op woensdag 24 juni 2015 12:16 schreef zarGon het volgende:
[..]
Jep.
Alleen Forum: http://fokcrew.nl/user/151187
Forum + Frontpage: http://fokcrew.nl/user/280647.
Edit:
- nu met 6 subsites in de array...
- http://fokcrew.nl/user/356028 (ik wil dus alleen de taartgrafieken met data tonen)
1 | google.visualization.arrayToDataTable([]) |
Waarom doe je een order by in een subquery?quote:Op woensdag 24 juni 2015 11:56 schreef zarGon het volgende:
[..]
Ik heb dit toegepast, maar heb nog op 1 punt hulp nodig.
[ code verwijderd ]
Het gaat om regel 49 t/m 54. $row['Subsite'] wordt niet aangevuld en is dus leeg.
Ik denk dat dat komt omdat het niet meer in de while() zit, maar ik krijg het niet aan de praat. Ook niet als ik nogmaals het onderstaande toevoeg op regel 48.
[ code verwijderd ]
Enig idee hoe ik $row['Subsite'] wel met de juiste waarden terugkrijg?
Mijn arrayToDataTable() is altijd gevuld...quote:Op woensdag 24 juni 2015 12:32 schreef Nattekat het volgende:
[..]
Je kan controleren of er gegevens in de data zijn gezet; als er geen gegevens in data zijn gezet moet de variable data gelijk zijn aan
[ code verwijderd ]
1 | ([['Functie', 'Dagen'],['', ''], ['',''],['',''], ['POL', 1244],['TDF', 93],]) |
De taartgrafiek berekent het totaal aantal dagen een functie per user. Een functie kan meerdere keren door een user bekleed worden. De view UnitDays groepeert dus per user en per functie, en neemt daarbij de startdatum van de eerste keer dat een functie bekleed wordt.quote:Op woensdag 24 juni 2015 12:43 schreef raptorix het volgende:
[..]
Waarom doe je een order by in een subquery?
Maar het heeft geen enkele zin om in een subquery te ordenen (tenzij je een top/limit selectie doet), de ordering vind namelijk plaats over de uiteindelijke select die je doet.quote:Op woensdag 24 juni 2015 13:00 schreef zarGon het volgende:
[..]
Mijn arrayToDataTable() is altijd gevuld...
Elke taartgrafiek die je maakt heeft dezelfde kleuren voor de posities. Positie 1 is blauw, positie 2 is rood, 3 is geel etc etc. Als ik dus 3 grafieken maak zonder rekening te houden met de posities, hebben al die 3 grafieken dezelfde kleuren. En dat komt dan weer niet overeen met de timeline.
Daarom mijn fratsen met Rank en IsDisplayed... om de kleuren van de timeline en taartgrafieken kloppend te hebben.
[ code verwijderd ]
De eerste 3 posities zijn leeg, zodat POL en TDF de juiste kleuren hebben...
Ik heb iets anders nodig..
[..]
De taartgrafiek berekent het totaal aantal dagen een functie per user. Een functie kan meerdere keren door een user bekleed worden. De view UnitDays groepeert dus per user en per functie, en neemt daarbij de startdatum van de eerste keer dat een functie bekleed wordt.
Voorbeeld:
- ONZ - 10 dagen - 7 juni
- FOT - 15 dagen - 9 juni
- ONZ - 20 dagen - 10 juni
Resultaat UnitDays:
- ONZ - 30 dagen - 7 juni
- FOT - 15 dagen - 9 juni
Ik heb die sortering nodig om de volgorde van de timeline en taartgrafiek kloppende te houden. Anders is er een mismatch tussen de kleuren.
http://fokcrew.nl/user/127981.quote:Op woensdag 24 juni 2015 13:04 schreef raptorix het volgende:
[..]
Maar het heeft geen enkele zin om in een subquery te ordenen (tenzij je een top/limit selectie doet), de ordering vind namelijk plaats over de uiteindelijke select die je doet.
Ja dat kan best zijn, maar de ordering is toch echt afhankelijk van je order in de buitenste select.quote:Op woensdag 24 juni 2015 13:10 schreef zarGon het volgende:
[..]
http://fokcrew.nl/user/127981.
Zie de kleuren in de timeline en in de taartgrafiek. Zonder een order is het resultaat van de taartgrafiek alfabetisch. En dat komt niet overeen met de timeline, die chronologisch is.
Hoe zou jij die query geschreven hebben? (Waar zou jij de order plaatsen? Binnen de UnitDays-subquery?)quote:Op woensdag 24 juni 2015 13:14 schreef raptorix het volgende:
[..]
Ja dat kan best zijn, maar de ordering is toch echt afhankelijk van je order in de buitenste select.
Select id,name from (select id,name from users order by id) order by name
en
Select id,name from (select id,name from users order by name) order by name
en
Select id,name from (select id,name from users) order by name
Leveren exact het zelfde op.
Zie editquote:Op woensdag 24 juni 2015 13:18 schreef zarGon het volgende:
[..]
Hoe zou jij die query geschreven hebben? (Waar zou jij de order plaatsen? Binnen de UnitDays-subquery?)
Zit een count in UnitDays die de unieke dagen telt. Wilde een window function gebruiken die ik gewend was bij MSSQL, maar dat vond MariaDB niet leuk.quote:Op woensdag 24 juni 2015 13:19 schreef raptorix het volgende:
[..]
Zie edit
Ik zou hem persoonlijk denk ik gewoon met een aggregate functie hebben geschreven.
Ehm, ik heb geen verstand van MariaDB, ik doe het al 17 jaar in MS SQLquote:Op woensdag 24 juni 2015 13:33 schreef zarGon het volgende:
[..]
Zit een count in UnitDays die de unieke dagen telt. Wilde een window function gebruiken die ik gewend was bij MSSQL, maar dat vond MariaDB niet leuk.
Ben blij dat er geen grove fout in zit..
Enig idee of jij me kan helpen met mijn openstaande issue?
Hmhmm, jammer.quote:Op woensdag 24 juni 2015 13:37 schreef raptorix het volgende:
[..]
Ehm, ik heb geen verstand van MariaDB, ik doe het al 17 jaar in MS SQL
10 jaar terug deed ik uberhaupt veel meer met SQL, maar dat kwam omdat ik toen die ene huizensite bouwde
1 2 3 | <?php foreach(array('Forum', 'Frontpage', 'FOK!', 'Games', 'Sport', 'Weblog') as $subsite) { ?> |
Staat de code eigenlijk op GitHub? Dan kun je FOK!kers pull requests laten doen.quote:Op woensdag 24 juni 2015 17:18 schreef zarGon het volgende:
[ code verwijderd ]
Kan ik de array niet vullen met de subsites die alleen in het resultaat van de query voorkomen? Zelf een paar dingen geprobeerd, maar hopeloos..
.
Goed om te horen. Ik ben bezig met een webapplicatie en ondertussen maak ik me Symfony eigen.quote:Op woensdag 24 juni 2015 09:34 schreef KomtTijd... het volgende:
[..]
Gelukkig heb ik dat mooi in de tijd van de baas kunnen doen. Zou nu nooit meer een applicatie willen ontwikkelen zonder symfony.
Eerder geprobeerd (staat ook een topic in DIG), maar geen animo.quote:Op woensdag 24 juni 2015 18:43 schreef robin007bond het volgende:
[..]
Staat de code eigenlijk op GitHub? Dan kun je FOK!kers pull requests laten doen.
Is er uberhaupt een reden om het niet te doen? Je code is toch al openbaar.quote:Op woensdag 24 juni 2015 19:00 schreef zarGon het volgende:
[..]
Eerder geprobeerd (staat ook een topic in DIG), maar geen animo.
Ik zou zeggen de config.php in de .gitignore en dan een config-sample.php als template erin.quote:Op woensdag 24 juni 2015 19:55 schreef robin007bond het volgende:
Bij openbare repositories, hoe doen jullie dat met databases? Gewoon de config waar de passwords instaan niet committen?
Dat is wel een goede ja.quote:Op woensdag 24 juni 2015 20:50 schreef mstx het volgende:
[..]
Ik zou zeggen de config.php in de .gitignore en dan een config-sample.php als template erin.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |