https://github.com/vlucas/phpdotenvquote: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?
Eerst alle rows inlezen en dan checken of de array leeg is.quote:Op woensdag 24 juni 2015 12:15 schreef zarGon het volgende:
[..]
Hoe kan ik ervoor zorgen dat-ie een subsite (Forum, Frontpage) alleen uitvoert als er records zijn? Probleem nu is dat ik voor elke subsite 400 pixels reserveer op regel 54 (dus 2 subsites = 800 pixels), terwijl de SQL-query slechts 1 subsite bevat. (Is het te volgen?)
Voorbeeld: http://fokcrew.nl/user/151187. Frontpage bevat geen records, maar wordt alsnog getoond. (Ik heb geloof ik 6 subsites, dus dat worden vele lege ruimtes.)
1 2 3 4 5 6 | foreach(array('Forum', 'Frontpage') as $subsite) { $stmt->execute(array($subsite,$id)); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (empty($rows)) { continue; } |
Het beste is natuurlijk om je database connectie op basis van locale gebruiksrechten te doen, en niet met een username password.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?
Geprobeerd, ik zag niets verschijnen op het scherm. Voor zover ik zag geen foutmeldingen.quote:Op donderdag 25 juni 2015 01:17 schreef paulb_nl het volgende:
[..]
Eerst alle rows inlezen en dan checken of de array leeg is.
[ code verwijderd ]
en de while naar foreach($rows as $row).
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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <?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 ORDER By UnitDays.FirstStartdate) UnitDays JOIN (SELECT @curRank := 0) r WHERE UnitDays.UserID = ? "; $stmt = $con->prepare($sql); // een closure functie, zodat $stmt automatisch beschikbaar is binnen de functie $fetchAll = function ($subsite, $id) use ($stmt) { $results = []; $stmt->execute(array($subsite, $id)); while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $results[] = $row; } return $results; }; foreach (array('Forum', 'Frontpage', 'FOK!', 'Games', 'Sport', 'Weblog') as $subsite) { $results = $fetchAll(array($subsite,$id)); $countRecord = 0; // ga door naar volgende subsite indien geen resultaten (lege array) if (!$results) { continue; } 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 // loop over resultaten met dezelfde logica als voorheen in je while loop foreach ($results as $row) { ++$countRecord; if ($row['IsDisplayed'] == 'Yes') { echo "['" . $row['Unit'] . "', " . $row['NrOfUniqueDays'] . "]"; } else { echo "['','']"; } if ($countRecord !== $row['Rank']) { echo ","; } } echo ']);'; echo 'var chart = new google.visualization.PieChart(document.getElementById("' . $subsite . '"));'; echo "var options = { title: 'Subsite: " . $subsite . "', sliceVisibilityThreshold: .00001, backgroundColor: 'transparent', tooltip: {showColorCode: true, textStyle: { color: 'black'}} };"; echo 'chart.draw(data, options);'; echo '}'; echo '</script>'; echo '<div class="piechart" id="' . $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>'; } ?> |
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Voorbeeld: http://fokcrew.nl/user/151187 (onderaan).
Regel 339 en verder:($fetchAll is regel 339.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21<?php
$fetchAll = function ($subsite, $id) use ($stmt) {
$results = [];
$stmt->execute(array($subsite, $id));
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$results[] = $row;
}
return $results;
};
foreach (array('Forum', 'Frontpage', 'FOK!', 'Games', 'Sport', 'Weblog') as $subsite) {
$results = $fetchAll(array($subsite,$id));
$countRecord = 0;
// ga door naar volgende subsite indien geen resultaten (lege array)
if (!$results) {
continue;
}
?>
Enig idee wat ik over het hoofd zie?
1 | $fetchAll(var) |
1 | $fetchAll(var, var) |
Klinkt logisch, alleen heb ik niet echt een idee voor een oplossing.quote:Op donderdag 25 juni 2015 15:36 schreef Nattekat het volgende:
$fetchAll(array($subsite,$id)) deze functie klopt niet, je roept hierbij aan:
[ code verwijderd ]
Terwijl je gedeclareerd hebt:
[ code verwijderd ]
Er mist dus een parameter.
Je geeft nu een array van twee elementen mee, als je die twee elementen los meegeeft moet het werken.quote:Op donderdag 25 juni 2015 15:47 schreef zarGon het volgende:
[..]
Klinkt logisch, alleen heb ik niet echt een idee voor een oplossing.. Ik moet ergens een parameter extra meegeven, of de functie aanpassen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php $fetchAll = function ($subsite, $id) use ($stmt) { $results = []; $stmt->execute(array($subsite, $id)); while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $results[] = $row; } return $results; }; foreach (array('Forum', 'Frontpage', 'FOK!', 'Games', 'Sport', 'Weblog') as $subsite) { $results = $fetchAll($subsite,$id); $countRecord = 0; // ga door naar volgende subsite indien geen resultaten (lege array) if (!$results) { continue; } ?> |
Foutmelding is weg, en het werkt!quote:Op donderdag 25 juni 2015 15:51 schreef Nattekat het volgende:
[..]
Je geeft nu een array van twee elementen mee, als je die twee elementen los meegeeft moet het werken.
Dan krijg je dus:
[ code verwijderd ]
Regel 14 is veranderd
Laravel dagelijks, OctoberCMS niet.quote:Op donderdag 25 juni 2015 17:52 schreef Qunix het volgende:
2 kudoos voor de TT.
Iemand hier die wat doet met Laravel? en OctoberCMS?
Dagelijks als in je werk?quote:Op donderdag 25 juni 2015 18:17 schreef TwenteFC het volgende:
[..]
Laravel dagelijks, OctoberCMS niet.
Nice!quote:Op donderdag 25 juni 2015 18:48 schreef TwenteFC het volgende:
[..]
Ja, en in het weekend voor de hobby ook nog vaak.
Geen bestaande systemen, alles inhouse gemaakt.quote:Op donderdag 25 juni 2015 18:52 schreef Qunix het volgende:
[..]
Nice!
Ik ben nu met een site bezig (staat nog niet live) in OctoberCMS. Wat gebruik jij als CMS (of als admin)?
https://github.com/briannesbitt/Carbonquote:Op donderdag 25 juni 2015 18:54 schreef robin007bond het volgende:
Mijn mening over PHP is wel veranderd sinds ik met zo'n goed framework bezig ben. Positief.
Één ding erger ik me nog wel heel erg aan:
Het optellen en aftrekken van datums. Dat is echt een gedoe met dat DateInterval vind ik.
http://carbon.nesbot.com/quote:Op donderdag 25 juni 2015 18:54 schreef robin007bond het volgende:
Mijn mening over PHP is wel veranderd sinds ik met zo'n goed framework bezig ben. Positief.
Één ding erger ik me nog wel heel erg aan:
Het optellen en aftrekken van datums. Dat is echt een gedoe met dat DateInterval vind ik.
Dat ziet er mooi uit.quote:Op donderdag 25 juni 2015 18:55 schreef TwenteFC het volgende:
[..]
https://github.com/briannesbitt/Carbon
Elke keer wanneer ik een oplossing zoek voor iets waarvan ik het vermoeden heb dat iemand er vast al iets moois voor gemaakt heeft zoek ik altijd eerst een beetje rond op https://packagist.org/quote:Op donderdag 25 juni 2015 18:57 schreef robin007bond het volgende:
Dit had ik veel eerder moeten weten. Ik heb zulke fucking dirty trucjes uit moeten halen om fatsoenlijk meerdere datums van elkaar af te trekken en dergelijke.En vergelijkingen met unix timestamps en dergelijke. Niet echt meer van deze tijd.
Leuke frameworks, werkt fantastisch, maar nog steeds de taal zelf wat ik lelijk blijf vindenquote:Op donderdag 25 juni 2015 18:54 schreef robin007bond het volgende:
Mijn mening over PHP is wel veranderd sinds ik met zo'n goed framework bezig ben. Positief.
Bedankt voor de tip, Packagist kende ik al en uiteraard gebruik ik ook Composer. Maar ik moet er inderdaad wat vaker op kijken.quote:Op donderdag 25 juni 2015 18:59 schreef TwenteFC het volgende:
[..]
Elke keer wanneer ik een oplossing zoek voor iets waarvan ik het vermoeden heb dat iemand er vast al iets moois voor gemaakt heeft zoek ik altijd eerst een beetje rond op https://packagist.org/
Heel eenvoudig zoeken door composer compatible packages.
Op een USB installeren thuis en booten vanaf USB op je werk.quote:Op donderdag 25 juni 2015 19:04 schreef robin007bond het volgende:
[..]
Bedankt voor de tip, Packagist kende ik al en uiteraard gebruik ik ook Composer. Maar ik moet er inderdaad wat vaker op kijken.
Developen op Windows vind ik trouwens een stuk minder chill. En ik vind het iets teveel van het goede om een GNU/Linuxdistributie geïnstalleerd te vragen bij mijn werkgever.(zeker omdat ik vakantiekracht ben).
Ja, de taal zelf is lelijk. En vooral de procedurele stijl en OOP-stijl door elkaar.quote:Op donderdag 25 juni 2015 18:59 schreef Qunix het volgende:
[..]
Leuke frameworks, werkt fantastisch, maar nog steeds de taal zelf wat ik lelijk blijf vinden
Oh, en java is absoluut niet beter.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |