abonnement Unibet Coolblue Bitvavo
pi_141393425

Ik ben bezig met een website waarop statistieken van de forumcrew staan. Van (ex-)crew wordt er een overzicht gemaakt van zijn/haar functies, met daarbij een start- en een einddatum (mits aanwezig). Ook wordt er weergegeven hoeveel dagen iemand crew is (geweest) en is er aan de hand daarvan een ranglijst. Van fora worden er ook overzichten gemaakt. De website is te bereiken op http://fok.zevkiselim.nl/crew/.

Momenteel wordt alles met de hand gedaan. De overzichten, de grafieken, de ranglijst - kortom alles - wordt per geval opgezocht, berekend en gecodeerd. Ik zou dit graag (deels) willen automatiseren en daarbij kan ik jullie hulp wel gebruiken.


Ik wil met hulp uit dit topic dit project omzetten van handmatig naar dynamisch, met behulp van PHP en MySQL.

Het project staat op GitHub: https://github.com/zarGonnn/FOK-crewgeschiedenis. Hier is altijd de laatste versie van het project te vinden. Ik heb hulp nodig, dus mocht je kunnen helpen: graag!

De dynamische versie is te zien op http://fok.zevkiselim.nl/crew2.0/.

Meer info:
- Readme op GitHub.
- Wiki op GitHub.

[ Bericht 43% gewijzigd door #ANONIEM op 05-07-2014 13:31:14 ]
pi_141393452
Ik update de OP later.
pi_141393782
quote:
14s.gif Op zondag 22 juni 2014 00:13 schreef bondage het volgende:

[..]

Dat kun je natuurlijk ook gewoon meegeven in de hash en afvangen in de handleLocationHash functie.
Volgens mij is de uitdaging nu vooral de visuele weergave.

Neem Bart bijvoorbeeld. In de oude indeling was er alleen 'Forum' en 'FOK!' als onderverdeling.

In de nieuwe zou het zo worden:
- Forum: GAM / MEN / DIG
- Games: Redactie Games
- FOK!: PR

Weergave kan door tonen van meerdere grafieken per subsite. Dan heb je in dit geval dus 3 tabellen, 3 pie charts en 3 timelines, onder elkaar.

Of, tabs. Heb je 3 tabs, met elk 3 grafieken. ZIet er visueel ook beter uit, niet?
  Moderator / Redactie Sport zondag 22 juni 2014 @ 00:29:19 #4
359864 crew  Nattekat
De roze zeekat
pi_141393956
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    
var jsonTimelineData;
    $.
ajax({
        
url"content/getchartdata/user-timeline.php",
        
dataType"JSON",
        
asyncfalse,
        
data: {
            
usernum
        
},
        
success: function(callback) {
            
jsonTimelineData callback;
        }
    });
?>

Levert niks op. Is er een reden dat hierbij een functie wordt gebruikt om de gegevens door te sluizen en bij de tabel en taartgrafiek gewoon de responsetext?
100.000 katjes
Fuck the EBU!
pi_141394369
quote:
0s.gif Op zondag 22 juni 2014 00:29 schreef Nattekat het volgende:

[ code verwijderd ]

Levert niks op. Is er een reden dat hierbij een functie wordt gebruikt om de gegevens door te sluizen en bij de tabel en taartgrafiek gewoon de responsetext?
 Ik heb een half uurtje geleden of zo een commit gedaan.   het goed is heb je de een-na-laatste commit, toch?  Verschil is dat de URL na selectie  ?type=user#user=1 was, en nu ?type=user#id=1 is.

De timeline kreeg ik niet werkend. esv7 heeft dat werkend gekregen. Na zijn fix is deze code erbij gekomen.

esv7, zou je hier een antwoord op kunnen geven?

[ Bericht 0% gewijzigd door #ANONIEM op 22-06-2014 00:44:24 ]
  Moderator / Redactie Sport zondag 22 juni 2014 @ 00:46:58 #6
359864 crew  Nattekat
De roze zeekat
pi_141394554
quote:
0s.gif Op zondag 22 juni 2014 00:41 schreef zarGon het volgende:

[..]

Ik heb een half uurtje geleden of zo een commit gedaan. het goed is heb je de een-na-laatste commit, toch? Verschil is dat de URL na selectie ?type=user#user=1 was, en nu ?type=user#id=1 is.

De timeline kreeg ik niet werkend. esv7 heeft dat werkend gekregen. Na zijn fix is deze code erbij gekomen.

esv7, zou je hier een antwoord op kunnen geven?
type=user#user=5 zit ik op, dat zou dus kunnen. Ik ben nu alvast aan een fix aan het werken, mocht het nodig zijn upload ik die wel.
100.000 katjes
Fuck the EBU!
pi_141394681
quote:
0s.gif Op zondag 22 juni 2014 00:46 schreef Nattekat het volgende:

[..]

type=user#user=5 zit ik op, dat zou dus kunnen. Ik ben nu alvast aan een fix aan het werken, mocht het nodig zijn upload ik die wel.
:9.

Zou je kunnen updaten naar de laatste commit? Kleine wijzigingen. Voorkomt eventueel gedoe later. :P.
  Moderator / Redactie Sport zondag 22 juni 2014 @ 00:53:49 #8
359864 crew  Nattekat
De roze zeekat
pi_141394795
quote:
0s.gif Op zondag 22 juni 2014 00:50 schreef zarGon het volgende:

[..]

:9.

Zou je kunnen updaten naar de laatste commit? Kleine wijzigingen. Voorkomt eventueel gedoe later. :P.
Ik pas het in github's eigen editor aan om dat te voorkomen, maak je geen zorgen daarover :P
100.000 katjes
Fuck the EBU!
pi_141394808
quote:
0s.gif Op zondag 22 juni 2014 00:53 schreef Nattekat het volgende:

[..]

Ik pas het in github's eigen editor aan om dat te voorkomen, maak je geen zorgen daarover :P
Okidoki!
  Moderator / Redactie Sport zondag 22 juni 2014 @ 01:10:20 #10
359864 crew  Nattekat
De roze zeekat
pi_141395250
SPOILER
Om 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.
Zolang dit niet als array gezien wordt houdt het op :P
Werk voor morgen dan maar.
100.000 katjes
Fuck the EBU!
  Moderator / Redactie Sport zondag 22 juni 2014 @ 13:14:44 #11
359864 crew  Nattekat
De roze zeekat
pi_141403878
user-timeline.php en googlecharts.js geüpdated. Wel een beetje zitten kloten met de github branches, mag gerust gefixt worden.
Was een stuk makkelijker geweest als ik gewoon al mijn eigen bestanden kon uploaden, er is iets foutgegaan en ik weet niet wat.

[ Bericht 34% gewijzigd door Nattekat op 22-06-2014 13:23:40 ]
100.000 katjes
Fuck the EBU!
pi_141404456
quote:
0s.gif Op zondag 22 juni 2014 13:14 schreef Nattekat het volgende:
user-timeline.php en googlecharts.js geüpdated. Wel een beetje zitten kloten met de github branches, mag gerust gefixt worden.
Was een stuk makkelijker geweest als ik gewoon al mijn eigen bestanden kon uploaden, er is iets foutgegaan en ik weet niet wat.
Ja, met die branhes heb ik ook zitten kloten toen ik een branch voor esv7 had aangemaakt. Vond 't ook irritant werken.

We kunnen 2 dingen doen:
- jij maakt je eigen branch (heb je al gedaan), en doet al je wijzigingen daarop. De master branch neemt jouw toevoegingen over. Voordeel hiervan is dat je helemaal los kunt gaan binnen je eigen branch.
- jij voegt je verbeteringen gewoon toe aan de master branch. Voordeel is dat verbeteringen sneller doorgevoerd worden zonder gedoe, nadeel is dat je wel moet opletten dat de master niet kaput gaat. In dit geval kun je dus je eigen bestanden ook gewoon toevoegen (let wel op dat je config.php niet meeneemt).

Wat mij betreft voeg je je verbeteringen direct toe op de master branch (en verwijder je die nieuwe branch).

Kun je mij vertellen wat jouw verbetering op de timeline precies inhoudt?

[ Bericht 2% gewijzigd door #ANONIEM op 22-06-2014 13:34:22 ]
  Moderator / Redactie Sport zondag 22 juni 2014 @ 13:34:47 #13
359864 crew  Nattekat
De roze zeekat
pi_141404491
quote:
0s.gif Op zondag 22 juni 2014 13:33 schreef zarGon het volgende:

[..]

Ja, met die branhes heb ik ook zitten kloten toen ik een branch voor esv7 had aangemaakt. Vond 't ook irritant werken.

We kunnen 2 dingen doen:
- jij maakt je eigen branch (heb je al gedaan), en doet al je wijzigingen daarop. De master branch neemt jouw toevoegingen over. Voordeel hiervan is dat je helemaal los kunt gaan binnen je eigen branch.
- jij voegt je verbeteringen gewoon toe aan de master branch. Voordeel is dat verbeteringen sneller doorgevoerd worden zonder gedoe, nadeel is dat je wel moet opletten dat de master niet kaput gaat. In dit geval kun je dus je eigen bestanden ook gewoon toevoegen (let wel op dat je config.php niet meeneemt).

Wat mij betreft voeg je je verbeteringen direct toe op de master branch (en verwijder je die nieuwe branch).

Kun je mij vertellen wat jouw verbetering op de timeline precies inhoudt?
Eerst verscheen die hele timeline niet, hij zou nu wel moeten verschijnen maar ik heb mijn eigen sql database net kapotgemaakt :@
Zou jij het kunnen testen eventueel? In principe zou het moeten werken, hij deed het ook toen ik het testte op een oudere versie.
100.000 katjes
Fuck the EBU!
  Moderator / Redactie Sport zondag 22 juni 2014 @ 13:39:03 #14
359864 crew  Nattekat
De roze zeekat
pi_141404634
Ik zie het probleem al; ik ben vergeten user naar id te veranderen bij de call in googlecharts.js.
100.000 katjes
Fuck the EBU!
pi_141405300
Jep. Dat had ik in de laatste commit gewijzigd (zoals hierboven gemeld). :P.

Maar... Wat heb je nu toegevoegd en hoe werkt hetgeen wat je hebt toegevoegd? De timeline die er nu is werkt gewoon.

Je bent bezig geweest met de 'tabs' en toen werkte het niet meer. Als ik het goed begrijp wijzig je de timeline om het werkend te krijgen na jouw toevoegingen?
  Moderator / Redactie Sport zondag 22 juni 2014 @ 14:03:27 #16
359864 crew  Nattekat
De roze zeekat
pi_141405563
quote:
0s.gif Op zondag 22 juni 2014 13:55 schreef zarGon het volgende:
Jep. Dat had ik in de laatste commit gewijzigd (zoals hierboven gemeld). :P.

Maar... Wat heb je nu toegevoegd en hoe werkt hetgeen wat je hebt toegevoegd? De timeline die er nu is werkt gewoon.

Je bent bezig geweest met de 'tabs' en toen werkte het niet meer. Als ik het goed begrijp wijzig je de timeline om het werkend te krijgen na jouw toevoegingen?
Die hele timeline verscheen niet, mijn aanpassingen zitten in aparte bestanden, welke ik dus gewoon uit kan zetten. Toen ik de update uploadde was het ook de verkeerde versie.
100.000 katjes
Fuck the EBU!
pi_141405657
quote:
1s.gif Op zondag 22 juni 2014 14:03 schreef Nattekat het volgende:

[..]

Die hele timeline verscheen niet
Ook niet in de versies die je had gedownload? (v0.0.5)

Heel raar, ik test die 'grondig'. Hm.

quote:
, mijn aanpassingen zitten in aparte bestanden, welke ik dus gewoon uit kan zetten. Toen ik de update uploadde was het ook de verkeerde versie.
In de branche die je had aangemaakt, toch? Dat maakt dan niet zoveel uit, hehe.
  Moderator / Redactie Sport zondag 22 juni 2014 @ 14:09:04 #18
359864 crew  Nattekat
De roze zeekat
pi_141405767
quote:
0s.gif Op zondag 22 juni 2014 14:05 schreef zarGon het volgende:

[..]

Ook niet in de versies die je had gedownload? (v0.0.5)

Heel raar, ik test die 'grondig'. Hm.

[..]

In de branche die je had aangemaakt, toch? Dat maakt dan niet zoveel uit, hehe.
Ik kan nu niet meer zien welke versie ik had, de bestanden stonden al in aparte mappen.

Ik weet zeker dat de enige update na mij die van user => id was.
100.000 katjes
Fuck the EBU!
pi_141405848
quote:
1s.gif Op zondag 22 juni 2014 14:09 schreef Nattekat het volgende:

[..]

Ik kan nu niet meer zien welke versie ik had, de bestanden stonden al in aparte mappen.

Ik weet zeker dat de enige update na mij die van user => id was.
Het wordt een beetje rommelig en onduidelijk voor mij...

Kun je even iets proberen? https://github.com/zarGonnn/FOK-crewgeschiedenis/releases. Download v0.0.5 eens. Werkt timeline wel of niet bij jou?
  Moderator / Redactie Sport zondag 22 juni 2014 @ 14:15:56 #20
359864 crew  Nattekat
De roze zeekat
pi_141405986
quote:
0s.gif Op zondag 22 juni 2014 14:11 schreef zarGon het volgende:

[..]

Het wordt een beetje rommelig en onduidelijk voor mij...

Kun je even iets proberen? https://github.com/zarGonnn/FOK-crewgeschiedenis/releases. Download v0.0.5 eens. Werkt timeline wel of niet bij jou?
Kan dat nu even niet doen. Wel enorm vaag als het wel werkt voor jou. Over een uurtje of 2 kan ik het testen.
100.000 katjes
Fuck the EBU!
pi_141406035
quote:
1s.gif Op zondag 22 juni 2014 14:15 schreef Nattekat het volgende:

[..]

Kan dat nu even niet doen. Wel enorm vaag als het wel werkt voor jou. Over een uurtje of 2 kan ik het testen.
Ik moet wel zeggen: ik test het door op de website te plaatsen. Jij test lokaal. Zou het daaraan kunnen liggen?
  Moderator / Redactie Sport zondag 22 juni 2014 @ 14:20:23 #22
359864 crew  Nattekat
De roze zeekat
pi_141406132
quote:
0s.gif Op zondag 22 juni 2014 14:17 schreef zarGon het volgende:

[..]

Ik moet wel zeggen: ik test het door op de website te plaatsen. Jij test lokaal. Zou het daaraan kunnen liggen?
Ik denk het niet, mijn browser gaf de foutmelding. Het komt dus echt van de code af. Dan ligt de oorzaak bij mijn php versie of apache.
100.000 katjes
Fuck the EBU!
pi_141406465
quote:
1s.gif Op zondag 22 juni 2014 14:20 schreef Nattekat het volgende:

[..]

Ik denk het niet, mijn browser gaf de foutmelding. Het komt dus echt van de code af. Dan ligt de oorzaak bij mijn php versie of apache.
Mijn PHP-versie is 5.3.27 en de Apache-versie kan ik niet achterhalen... Hmpf.
  Moderator / Redactie Sport zondag 22 juni 2014 @ 14:33:56 #24
359864 crew  Nattekat
De roze zeekat
pi_141406550
quote:
0s.gif Op zondag 22 juni 2014 14:31 schreef zarGon het volgende:

[..]

Mijn PHP-versie is 5.3.27 en de Apache-versie kan ik niet achterhalen... Hmpf.
PHP 5.4 en Apache 2.2 hier...
100.000 katjes
Fuck the EBU!
  Moderator / Redactie Sport zondag 22 juni 2014 @ 15:57:56 #25
359864 crew  Nattekat
De roze zeekat
pi_141409403
quote:
0s.gif Op zondag 22 juni 2014 14:11 schreef zarGon het volgende:

[..]

Het wordt een beetje rommelig en onduidelijk voor mij...

Kun je even iets proberen? https://github.com/zarGonnn/FOK-crewgeschiedenis/releases. Download v0.0.5 eens. Werkt timeline wel of niet bij jou?
Die doet het wel ja. Erg raar dit, de versie die ik heb heeft ook al die extra mappen. Ik kan iig verder met de overzichten per forum :)
100.000 katjes
Fuck the EBU!
pi_141447376
quote:
11s.gif Op zaterdag 21 juni 2014 23:47 schreef bondage het volgende:

[..]

Die zou je in de selectUser functie naar een div kunnen schrijven, die is daar immers bekend.
Zou je me hier iets meer over kunnen vertellen? :@.

Ik heb zelf wat geprobeerd (o.a. http://stackoverflow.com/(...)ite-to-a-div-element), maar dat gaf niet het gewenste resultaat.
  FOK!mycroftheld maandag 23 juni 2014 @ 13:45:43 #27
128465 bondage
pi_141448002
quote:
0s.gif Op maandag 23 juni 2014 13:29 schreef zarGon het volgende:

[..]

Zou je me hier iets meer over kunnen vertellen? :@.

Ik heb zelf wat geprobeerd (o.a. http://stackoverflow.com/(...)ite-to-a-div-element), maar dat gaf niet het gewenste resultaat.
Gewoon via jQuery: $("#id_van_je_divje").html(var_met_userid);
pi_141448063
quote:
14s.gif Op maandag 23 juni 2014 13:45 schreef bondage het volgende:

[..]

Gewoon via jQuery: $("#id_van_je_divje").html(var_met_userid);
Waar moet dit geplaatst worden?

Op de user-pagina of op de index (samen bij de rest van de js)?
  FOK!mycroftheld maandag 23 juni 2014 @ 16:06:38 #29
128465 bondage
pi_141453184
quote:
1s.gif Op maandag 23 juni 2014 13:46 schreef zarGon het volgende:

[..]

Waar moet dit geplaatst worden?

Op de user-pagina of op de index (samen bij de rest van de js)?
In de functie selectUser, daar is het ID namelijk bekend.
pi_141455043
quote:
11s.gif Op maandag 23 juni 2014 16:06 schreef bondage het volgende:

[..]

In de functie selectUser, daar is het ID namelijk bekend.
http://fok.zevkiselim.nl/crew2.0/?type=user#id=151187.

*O*.

Nu de rest er nog omheen bouwen.
pi_141483314
quote:
11s.gif Op maandag 23 juni 2014 16:06 schreef bondage het volgende:

[..]

In de functie selectUser, daar is het ID namelijk bekend.
1
2
3
4
5
6
function selectUser(user_id) {
    $("#userselect").hide();
    $("#userinfo").show();
    $("#userid").show(); $("#userid").html(user_id);
    drawItems(user_id);
}
Bedoeling van dit stukje:
- regel 2 verbergt de lijst van users
- regel 3 toont de userinfo (gebruikersnaam/userid/registratiedatum etc.)
- regel 4 toont de userid specifiek voor de SQL-query.
- regel 5 tekent de grafieken.

Gaat nu vooral om regel 3 en 4.
­
­
­
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
<div class="page-header" id="userinfo" style="display:none;">
        <?php 
        
try {
            require(
'config.php'); 
            
            
$UserID '<span id="userid"></span>';
            echo 
$UserID;
            
$con= new PDO"mysql:host=" $settings["dbserver"] . ";dbname=" $settings["dbname"], $settings["dbuser"], $settings["dbpass"]);  
            
$sql=    "SELECT
                          PK_Gebruiker
                        , Gebruikersnaam
                        , UserID
                    FROM Gebruiker
                    WHERE UserID = " 
$UserID " "
                    
            
$stmt=$con->prepare($sql);
            
$stmt->execute(); 
    
            while(
$row $stmt->fetch(PDO::FETCH_ASSOC)) {  
                echo 
'<h1>LOL</h1>';
                
//echo $row['Gebruikersnaam'];
            
}
        } 
        
        
// Errorafhandeling
        
catch(PDOException $e) {
            echo 
'<pre>';
            echo 
'Regel: '.$e->getLine(). '<br />';
            echo 
'Bestand: '.$e->getFile(). '<br />'
            echo 
'Foutmelding: '.$e->getMessage();
            echo 
'</pre>'
        }                
        
?>
    </div>
Ik weet dat de code veel beter kan.

- $UserID is de UserID van geselecteerde user (regel 4 van de js-code).
- $UserID werkt als ik een echo doe, ik zie dan de geselecteerde UserID.
- $sql zou de Gebruikersnaam moeten ophalen op basis van $UserID.
- Voor elke record (in dit geval maar eentje) zou er 'LOL' zichtbaar moeten zijn.
- De query werkt wel als ik handmatig een UserID invul en geen $UserID gebruik.

Dit werkt helaas niet. Jij/iemand een idee waarom niet?

Ik wil in de while() de userinfo tonen.

Hoe kan dit makkelijker/beter?

[ Bericht 0% gewijzigd door #ANONIEM op 24-06-2014 11:27:04 ]
  FOK!mycroftheld dinsdag 24 juni 2014 @ 11:28:55 #32
128465 bondage
pi_141483411
quote:
0s.gif Op dinsdag 24 juni 2014 11:25 schreef zarGon het volgende:
$UserID = '<span id="userid"></span>';
Gequote stukje gaat nooit werken natuurlijk, je geeft nu een string zonder betekenis mee aan je query. Is het de bedoeling dat de naam van de user wordt opgehaald adhv het ID die geselecteerd is?
pi_141483570
quote:
11s.gif Op dinsdag 24 juni 2014 11:28 schreef bondage het volgende:

[..]

Gequote stukje gaat nooit werken natuurlijk, je geeft nu een string zonder betekenis mee aan je query. Is het de bedoeling dat de naam van de user wordt opgehaald adhv het ID die geselecteerd is?
Bedoeling is dat ik data (van de user) uit de database trek. Ik moet daarvoor echter weten welke user er geselecteerd is. Dat wordt nu met $("#userid").html(user_id); gedaan.

Als ik eenmaal een UserID heb, kan ik de data uit de database tonen.

Omdat de UserID (#id=xxx) nu met JavaScript werkt, kan ik geen PHP gebruiken. Of nou ja, dat is me niet gelukt.
pi_141483609
quote:
11s.gif Op dinsdag 24 juni 2014 11:28 schreef bondage het volgende:

[..]

Gequote stukje gaat nooit werken natuurlijk, je geeft nu een string zonder betekenis mee aan je query. Is het de bedoeling dat de naam van de user wordt opgehaald adhv het ID die geselecteerd is?
Dat gequote stukje werkt overigens wel in een echo. Ik dacht dat het daarom ook zou werken in de query.
  FOK!mycroftheld dinsdag 24 juni 2014 @ 11:40:58 #35
128465 bondage
pi_141483760
quote:
0s.gif Op dinsdag 24 juni 2014 11:33 schreef zarGon het volgende:

[..]

Bedoeling is dat ik data (van de user) uit de database trek. Ik moet daarvoor echter weten welke user er geselecteerd is. Dat wordt nu met $("#userid").html(user_id); gedaan.

Als ik eenmaal een UserID heb, kan ik de data uit de database tonen.

Omdat de UserID (#id=xxx) nu met JavaScript werkt, kan ik geen PHP gebruiken. Of nou ja, dat is me niet gelukt.
Elementen die dynamisch worden gevuld kun je niet doorgeven. Je zal hiervoor een losse ajax request moeten doen of het geselecteerde user-id opslaan in de sessie en die hergebruiken in je query.
pi_141483971
quote:
14s.gif Op dinsdag 24 juni 2014 11:40 schreef bondage het volgende:

[..]

Elementen die dynamisch worden gevuld kun je niet doorgeven. Je zal hiervoor een losse ajax request moeten doen of het geselecteerde user-id opslaan in de sessie en die hergebruiken in je query.
Fuck. :'). Dat gaat mij in ieder geval niet lukken. :'). Geen idee hoe of wat.

Zou jou dit willen/kunnen doen? Mits je kan/wil en tijd en zo hebt.
  FOK!mycroftheld dinsdag 24 juni 2014 @ 11:56:48 #37
128465 bondage
pi_141484179
quote:
0s.gif Op dinsdag 24 juni 2014 11:49 schreef zarGon het volgende:

[..]

Fuck. :'). Dat gaat mij in ieder geval niet lukken. :'). Geen idee hoe of wat.

Zou jou dit willen/kunnen doen? Mits je kan/wil en tijd en zo hebt.
Wil je in de toekomst nog meer waarden dynamisch ophalen of is de naam van de user het enige? Het probleem is namelijk dat je op den duur met gigantisch veel losse requests komt te zitten, lijkt me niet de bedoeling en maakt de boel onoverzichtelijk. Wat je zou kunnen doen is een JS functie schrijven die alle data in één request ophaalt, dus zowel de gegevens voor de grafieken als de extra info betreft de geselecteerde gebruiker. Je kunt deze gegevens allemaal teruggeven als JSON data, dus de userdata en grafiekdata in een object en dan opsplitsen in de JS functie die de aanroep doet.

Ik heb er op dit moment helaas geen tijd voor.
pi_141484228
quote:
11s.gif Op dinsdag 24 juni 2014 11:56 schreef bondage het volgende:

[..]

Wil je in de toekomst nog meer waarden dynamisch ophalen of is de naam van de user het enige? Het probleem is namelijk dat je op den duur met gigantisch veel losse requests komt te zitten, lijkt me niet de bedoeling en maakt de boel onoverzichtelijk. Wat je zou kunnen doen is een JS functie schrijven die alle data in één request ophaalt, dus zowel de gegevens voor de grafieken als de extra info betreft de geselecteerde gebruiker. Je kunt deze gegevens allemaal teruggeven als JSON data, dus de userdata en grafiekdata in een object en dan opsplitsen in de JS functie die de aanroep doet.
Voor de user-pagina is bijna alles rond, alleen de genoemde gegevens hierboven missen. En dat kan allemaal geregeld worden met alleen de UserID.

quote:
Ik heb er op dit moment helaas geen tijd voor.
Helaas. ;(. Bedankt voor je uitleg nog in ieder geval, al kan ik er weinig mee.

*;

[ Bericht 0% gewijzigd door #ANONIEM op 24-06-2014 11:59:07 ]
  FOK!mycroftheld dinsdag 24 juni 2014 @ 12:00:57 #39
128465 bondage
pi_141484293
quote:
0s.gif Op dinsdag 24 juni 2014 11:58 schreef zarGon het volgende:

[..]

Voor de user-pagina is bijna alles rond, alleen de genoemde gegevens hierboven missen. En dat kan allemaal geregeld worden met alleen de UserID.

[..]

Helaas. ;(. Bedankt voor je uitleg nog in ieder geval, al kan ik er weinig mee.

*;
Ik ga vanavond ff voor je kijken, ben nu aan het werk. Het is namelijk niet zo heel erg ingewikkeld.
pi_141484303
quote:
14s.gif Op dinsdag 24 juni 2014 12:00 schreef bondage het volgende:

[..]

Ik ga vanavond ff voor je kijken, ben nu aan het werk. Het is namelijk niet zo heel erg ingewikkeld.
O+. Heel erg bedankt!
pi_141575515
Ben bezig met de 'admin'-pagina's, warmee je gemakkelijk data kunt toevoegen aan de database.

http://fok.zevkiselim.nl/crew2.0/admin/view.php.

Ik zou het volgende willen weten: hoe kan ik in plaats van een textbox een dropdownlijstje weergeven? In die dropdown staan dan de mogelijke waarden die al voorkomen in de database.

Ik heb dat nodig voor het gedeelte 'rol'. Ik wil bij het toevoegen van een 'rol' ook meteen een subsite kunnen kiezen. Dat je bijvoorbeeld 'DIG' toevoegt en daarbij uit een dropdown 'Forum' als subsite kan kiezen.

Met textbox: http://fok.zevkiselim.nl/crew2.0/admin/edit.php?rol.
(Werkt nu sowieso niet, de SQL-query klopt niet.)

--> Ik wil dus dat 'Subsitenaam' geen textbox is, maar een dropdownlijst.

Code:
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<?php

elseif (isset($_GET['rol']))
{
    
// creates the new/edit record form
    // since this form is used multiple times in this file, I have made it a function that is easily reusable
    
function renderForm($Subsitenaam ''$Rolafkorting ''$Rolomschrijving ''$Foutmelding ''$PK_Rol '')
{
?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>    
            <title>    <?php if ($PK_Rol != '') { echo "Edit Record"; } else { echo "New Record"; } ?>    </title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        </head>
        <body>
            <h1><?php if ($PK_Rol != '') { echo "Edit Record"; } else { echo "New Record"; } ?></h1>
            <?php
            
if ($Foutmelding != '') {
            echo 
"<div style='padding:4px; border:1px solid red; color:red'>" $Foutmelding "</div>";
            } 
            
?>
            <form action="" method="post">
                <div>
                    <?php
                    
if ($PK_Rol != '') { ?>
                    <input type="hidden" name="PK_Rol" value="<?php echo $PK_Rol?>" />
                    <p>PK_Rol: <?php echo $PK_Rol?></p>
                    <?php }    ?>
                
                    <strong>Subsitenaam: *</strong> <input type="text" name="Subsitenaam" value="<?php echo $Subsitenaam?>"/><br/>
                    <strong>Rolafkorting: *</strong> <input type="text" name="Rolafkorting" value="<?php echo $Rolafkorting?>"/><br/>
                    <strong>Rolomschrijving: *</strong> <input type="text" name="Rolomschrijving" value="<?php echo $Rolomschrijving?>"/><br/>
                    <p>* required</p>
                    <input type="submit" name="submit" value="Submit" />
                </div>
            </form>
        </body>
    </html>
    
<?php }
    
/* EDIT RECORD */
    
    // if the 'PK_Rol' variable is set in the URL, we know that we need to edit a record
    
if (isset($_GET['PK_Rol']))
    {
        
// if the form's submit button is clicked, we need to process the form
        
if (isset($_POST['submit']))
        {
            
// make sure the 'PK_Rol' in the URL is valid
            
if (is_numeric($_POST['PK_Rol']))
            {
                
// get variables from the URL/form
                
$PK_Rol $_POST['PK_Rol'];
                
$Subsitenaam htmlentities($_POST['Subsitenaam'], ENT_QUOTES);
                
$Rolafkorting htmlentities($_POST['Rolafkorting'], ENT_QUOTES);
                
$Rolomschrijving htmlentities($_POST['Rolomschrijving'], ENT_QUOTES);
                    
                
// check that firstname and lastname are both not empty
                
if ($Subsitenaam == '' || $Rolafkorting == '' || $Rolomschrijving == '')
                {
                    
// if they are empty, show an error message and display the form
                    
$Foutmelding 'ERROR: Please fill in all required fields!';
                    
renderForm($Subsitenaam$Rolafkorting$Rolomschrijving$Foutmelding$PK_Rol);
                }
                else
                {
                    
// if everything is fine, update the record in the database          //!!!!!!!!!!!!!!!
                    
if ($stmt $mysqli->prepare("UPDATE Rol SET Naam = ? WHERE PK_Rol=?"))
                    {
                        
$stmt->bind_param("sssi"$Subsitenaam$Rolafkorting$Rolomschrijving$PK_Rol);
                        
$stmt->execute();
                        
$stmt->close();
                    }
                    
// show an error message if the query has an error
                    
else
                    {
                        echo 
"ERROR: could not prepare SQL statement.";
                    }
                    
                    
// redirect the user once the form is updated
                    
header("Location: view.php?rol");
                }
            }
            
// if the 'PK_Rol' variable is not valid, show an error message
            
else
            {
                echo 
"Error!";
            }
        }
        
// if the form hasn't been submitted yet, get the info from the database and show the form
        
else
        {
            
// make sure the 'PK_Rol' value is valid
            
if (is_numeric($_GET['PK_Rol']) && $_GET['PK_Rol'] > 0)
            {
                
// get 'PK_Rol' from URL
                
$PK_Rol $_GET['PK_Rol'];
                    
                
// get the record from the database
                
if($stmt $mysqli->prepare("SELECT * FROM Subsite WHERE PK_Rol=?")) //!!!!!!!!!
                
{
                    
$stmt->bind_param("i"$PK_Rol);
                    
$stmt->execute();
                    
                    
$stmt->bind_result($PK_Rol$Subsitenaam$Rolafkorting$Rolomschrijving);
                    
$stmt->fetch();
                        
                    
// show the form
                    
renderForm($Subsitenaam$Rolafkorting$RolomschrijvingNULL$PK_Rol);
                    
                    
$stmt->close();
                }
                
// show an error if the query has an error
                
else
                {
                    echo 
"Error: could not prepare SQL statement";
                }
            }
            
// if the 'PK_Rol' value is not valid, redirect the user back to the view.php page
            
else
            {
                
header("Location: view.php?rol");
            }
        }
    }
    
    
/* NEW RECORD */
    // if the 'PK_Rol' variable is not set in the URL, we must be creating a new record
    
else
    {
        
// if the form's submit button is clicked, we need to process the form
        
if (isset($_POST['submit']))
        {
            
// get the form data
            
$Subsitenaam htmlentities($_POST['Subsitenaam'], ENT_QUOTES);
            
$Rolafkorting htmlentities($_POST['Rolafkorting'], ENT_QUOTES);
            
$Rolomschrijving htmlentities($_POST['Rolomschrijving'], ENT_QUOTES);
            
            
// check that firstname and lastname are both not empty
            
if ($Subsitenaam == '' || $Rolafkorting == '' || $Rolomschrijving == '')
            {
                
// if they are empty, show an error message and display the form
                
$Foutmelding 'ERROR: Please fill in all required fields!';
                
renderForm($Subsitenaam$Rolafkorting$Rolomschrijving$Foutmelding);
            }
            else
            {
                
// insert the new record into the database
                
if ($stmt $mysqli->prepare("INSERT Rol (Naam) VALUES (?)")) //! !!!!!!!!!!!!
                
{
                    
$stmt->bind_param("sss"$Subsitenaam$Rolafkorting$Rolomschrijving);
                    
$stmt->execute();
                    
$stmt->close();
                }
                
// show an error if the query has an error
                
else
                {
                    echo 
"ERROR: Could not prepare SQL statement.";
                }
                    
                
// redirec the user
                
header("Location: view.php?rol");
            }
        }
        
// if the form hasn't been submitted yet, show the form
        
else
        {
            
renderForm();
        }
    }
        
    
// close the mysqli connection
    
$mysqli->close();
}
?>


[ Bericht 0% gewijzigd door #ANONIEM op 26-06-2014 15:06:17 ]
  Moderator / Redactie Sport donderdag 26 juni 2014 @ 15:30:15 #42
359864 crew  Nattekat
De roze zeekat
pi_141576427
quote:
0s.gif Op donderdag 26 juni 2014 15:04 schreef zarGon het volgende:
Ben bezig met de 'admin'-pagina's, warmee je gemakkelijk data kunt toevoegen aan de database.

http://fok.zevkiselim.nl/crew2.0/admin/view.php.

Ik zou het volgende willen weten: hoe kan ik in plaats van een textbox een dropdownlijstje weergeven? In die dropdown staan dan de mogelijke waarden die al voorkomen in de database.

Ik heb dat nodig voor het gedeelte 'rol'. Ik wil bij het toevoegen van een 'rol' ook meteen een subsite kunnen kiezen. Dat je bijvoorbeeld 'DIG' toevoegt en daarbij uit een dropdown 'Forum' als subsite kan kiezen.

Met textbox: http://fok.zevkiselim.nl/crew2.0/admin/edit.php?rol.
(Werkt nu sowieso niet, de SQL-query klopt niet.)

--> Ik wil dus dat 'Subsitenaam' geen textbox is, maar een dropdownlijst.

Code:
[ code verwijderd ]

1
2
3
4
5
6
<?php
<select>
  <
option value="DIG">DIG</option>
  <
option value="GC">GC</option>
</
select>
?>

Wil je zoiets hebben?

Met een array die uit de SQL query rolt kan je een for each opstellen voor elke subsite waarbij je bij elke subsite een nieuwe option toevoegt.
100.000 katjes
Fuck the EBU!
pi_141576581
quote:
0s.gif Op donderdag 26 juni 2014 15:30 schreef Nattekat het volgende:

[..]
[ code verwijderd ]

Wil je zoiets hebben?
Jep! In plaats van handmatig 'DIG' of 'GC' invullen, wil ik het kunnen kiezen. Makkelijker, en niet foutgevoelig.
quote:
Met een array die uit de SQL query rolt kan je een for each opstellen voor elke subsite waarbij je bij elke subsite een nieuwe option toevoegt.
Dat wordt een while() zoals bij de grafieken?

Hm...
  Moderator / Redactie Sport donderdag 26 juni 2014 @ 15:37:56 #44
359864 crew  Nattekat
De roze zeekat
pi_141576724
quote:
0s.gif Op donderdag 26 juni 2014 15:34 schreef zarGon het volgende:
Dat wordt een while() zoals bij de grafieken?

Hm...
Ik zou persoonlijk eerst bestaande code kopieren (die code die alle gegevens voor een piechart in een array gooit) en vervolgens die array gebruiken om het te vullen. Scheelt werk en is iets overzichtelijker.
100.000 katjes
Fuck the EBU!
pi_141576794
quote:
0s.gif Op donderdag 26 juni 2014 15:37 schreef Nattekat het volgende:

[..]

Ik zou persoonlijk eerst bestaande code kopieren (die code die alle gegevens voor een piechart in een array gooit) en vervolgens die array gebruiken om het te vullen. Scheelt werk en is iets overzichtelijker.
De grafieken tonen geen usergegevens, maar subsite/rol/activiteit.

Ik zal er vanavond eens naar kijken.
  Moderator / Redactie Sport donderdag 26 juni 2014 @ 15:41:20 #46
359864 crew  Nattekat
De roze zeekat
pi_141576859
quote:
0s.gif Op donderdag 26 juni 2014 15:39 schreef zarGon het volgende:

[..]

De grafieken tonen geen usergegevens, maar subsite/rol/activiteit.

Ik zal er vanavond eens naar kijken.
Dat snap ik, maar die code kan je als uitgangspunt nemen ;)
100.000 katjes
Fuck the EBU!
  FOK!mycroftheld donderdag 26 juni 2014 @ 21:32:32 #47
128465 bondage
pi_141592620
quote:
0s.gif Op dinsdag 24 juni 2014 12:01 schreef zarGon het volgende:

[..]

O+. Heel erg bedankt!
Ben er helaas nog niet aan toegekomen, te druk de laatste paar dagen. Zal morgen of in het weekend even iets proberen te fixen.
pi_141600422
quote:
14s.gif Op donderdag 26 juni 2014 21:32 schreef bondage het volgende:

[..]

Ben er helaas nog niet aan toegekomen, te druk de laatste paar dagen. Zal morgen of in het weekend even iets proberen te fixen.
:).

Ik richt me op de andere delen. Komt wel goed.
pi_141616986
Rol:
- PK_Rol
- Afkorting
- Omschrijving
- FK_Subsite

Subsite:
- PK_Subsite
- Naam

1
2
3
4
SELECT *
FROM Rol R
LEFT JOIN Subsite S
    ON R.FK_Subsite = S.PK_Subsite

Huidige waarden:
- Rol.PK_Rol = 1
- Rol.Afkorting = 'BAG'
- Rol.Omschrijving = 'BAGGER'
- Rol.FK_Subsite = 1

- Subsite.PK_Subsite = 1
- Subsite.Naam = Forum
- Subsite.PK_Subsite = 2
- Subsite.Naam = Frontpage

Ergo: het forum heeft een BAG-forum.

----

Ik wil dat updaten...
Rol.Afkorting: 'BAG' -> 'GAB'
Rol.Omschrijving: 'BAGGER' -> 'GABBER'
Subsite.Naam = 'Forum' -> 'Frontpage'.

Ik wil alleen de tabel Rol updaten, dus met Subsite.Naam zou de juiste Subsite.PK_Subsite opgezocht moeten worden. Rol.FK_Subsite zou deze nieuwe waarde moeten krijgen.

Dit zouden dus de nieuwe waarden moeten zijn:
- Rol.PK_Rol = 1
- Rol.Afkorting = 'GAB'
- Rol.Omschrijving = 'GABBER'
- Rol.FK_Subsite = 2

Wat is de juiste SQL-updatequery hiervan? Of nou ja, kan dat met 1 query?

[ Bericht 0% gewijzigd door #ANONIEM op 27-06-2014 14:50:03 ]
  Moderator / Redactie Sport vrijdag 27 juni 2014 @ 20:30:36 #50
359864 crew  Nattekat
De roze zeekat
pi_141627181
Ik heb nog even zitten rondkijken op de kwetsbaarheid van jouw server, het lijkt vanaf mijn oogpunt dat de sql-tabel read-only is, dat zit dus wel goed. Echter is jouw server kwetsbaar voor SQL-injections. Je kan het zelf uitproberen door naar http://fok.zevkiselim.nl/crew2.0/?type=user#id=1 OR 1=1 te gaan, de grafieken zullen elke rij uit de tabel tonen.

Ik heb nog geprobeerd om gegevens in die tabel te krijgen maar dat is dus niet gelukt. Toch is het een goed idee om de tabel 'gebruikers' te controleren op mijn fratsen :P

Je kan dit oplossen door in user-piechart en user-table in de sql code ". $id ." te veranderen naar "?" (zonder aanhalingstekens) en dan deze uit te voeren met $stmt->execute($id)

Hele code voor de volledigheid:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
    $sql 
=    "SELECT 
                  G.Gebruikersnaam
                , R.Afkorting Rolafkorting
                , SUM(DATEDIFF(IFNULL(A.Einddatum,CURDATE()),A.Startdatum)+1) Duur
            FROM Activiteit A
            LEFT JOIN Gebruiker G
                ON A.FK_Gebruiker = G.PK_Gebruiker
            LEFT JOIN Rol R
                ON A.FK_ROL = R.PK_ROL
            LEFT JOIN Subsite S
                ON R.FK_Subsite = S.PK_Subsite
            WHERE G.UserID = ?
            GROUP BY G.Gebruikersnaam, R.Afkorting
            ORDER BY A.Startdatum ASC, IFNULL(A.Einddatum,CURDATE()) ASC"
;

    
$stmt=$con->prepare($sql); 
    
$stmt->execute($id); 
?>
100.000 katjes
Fuck the EBU!
pi_141648759
quote:
0s.gif Op vrijdag 27 juni 2014 20:30 schreef Nattekat het volgende:
Ik heb nog even zitten rondkijken op de kwetsbaarheid van jouw server, het lijkt vanaf mijn oogpunt dat de sql-tabel read-only is, dat zit dus wel goed. Echter is jouw server kwetsbaar voor SQL-injections. Je kan het zelf uitproberen door naar http://fok.zevkiselim.nl/crew2.0/?type=user#id=1 OR 1=1 te gaan, de grafieken zullen elke rij uit de tabel tonen.

Ik heb nog geprobeerd om gegevens in die tabel te krijgen maar dat is dus niet gelukt. Toch is het een goed idee om de tabel 'gebruikers' te controleren op mijn fratsen :P

Je kan dit oplossen door in user-piechart en user-table in de sql code ". $id ." te veranderen naar "?" (zonder aanhalingstekens) en dan deze uit te voeren met $stmt->execute($id)

Hele code voor de volledigheid:
[ code verwijderd ]

Thanks voor de check, ik zal aanpassen. (Jij kunt dit overigens ook doen, je hebt rechten op GitHub.)

Kun je mij vertellen hoe ik een foreign key kan updaten? 'Normale' waarden veranderen is geen probleem, maar ik loop vast al ik die waarde eerst moet opzoeken (foreign key) en dan pas kan wijzigen. De subsite van een rol wijzigen, bijvoorbeeld.

Ik word een beetje gek. :').
  FOK!mycroftheld zaterdag 28 juni 2014 @ 17:35:34 #52
128465 bondage
pi_141649681
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function selectUser(user_id) {
    $("#userselect").hide();
    $("#userinfo").show();
    $("#userid").show();
    $("#userid").html(user_id);
    getUserById(user_id, function(output) {
        $("#username").html(output);
    });
    drawItems(user_id);
}

function getUserById(user_id, callback) {
    $.post("index.php?do=get_user_by_id", {'user_id':user_id},
    function(data) {
        callback(data);
    });
}

Je moet dan echter in index nog wel even ervoor zorgen dat je een handler hebt welke $_GET['do'] == 'get_user_by_id' afhandelt, het daadwerkelijke id zit in de post $_POST['user_id']. Je kunt hier natuurlijk ook een los script voor schrijven en deze aanroepen, deze moet het ID omzetten naar een naam en deze echo'en. Niet vergeten de naam om te zetten naar entities.

Bovenstaande is wel de meest simpele methode. Het beste is om alles in een enkele call af te handelen en terug te geven als JSON, je kunt de data er dan uithalen via data.chart_data en data.user_name. Dit vereist echter een grote aanpassing aan je bestaande code.
pi_141760284
quote:
0s.gif Op vrijdag 27 juni 2014 20:30 schreef Nattekat het volgende:
Is de "Foutmelding-opgelost"-branch nog ergens voor nodig of kan ik 'm verwijderen?

https://github.com/zarGon(...)Foutmelding-opgelost.
  Moderator / Redactie Sport dinsdag 1 juli 2014 @ 12:40:56 #54
359864 crew  Nattekat
De roze zeekat
pi_141760369
quote:
0s.gif Op dinsdag 1 juli 2014 12:38 schreef zarGon het volgende:

[..]

Is de "Foutmelding-opgelost"-branch nog ergens voor nodig of kan ik 'm verwijderen?

https://github.com/zarGon(...)Foutmelding-opgelost.
Hij mag weg.

Staan trouwens interessante namen in de userlist nu :P
100.000 katjes
Fuck the EBU!
pi_141762927
quote:
0s.gif Op dinsdag 1 juli 2014 12:40 schreef Nattekat het volgende:

[..]

Hij mag weg.
Verwijderd. ^O^.

quote:
Staan trouwens interessante namen in de userlist nu :P
Jep. Ik heb net een nieuwe commit gedaan. Admin-gedeelte is erbij gekomen: http://fok.zevkiselim.nl/crew2.0/?admin=index.

Zijn een paar issues mee: https://github.com/zarGon(...)is/issues?state=open. Zie je hulp graag tegemoet mocht je kunnen helpen.
pi_141763953
quote:
0s.gif Op vrijdag 27 juni 2014 20:30 schreef Nattekat het volgende:
Ik heb nog even zitten rondkijken op de kwetsbaarheid van jouw server, het lijkt vanaf mijn oogpunt dat de sql-tabel read-only is, dat zit dus wel goed. Echter is jouw server kwetsbaar voor SQL-injections. Je kan het zelf uitproberen door naar http://fok.zevkiselim.nl/crew2.0/?type=user#id=1 OR 1=1 te gaan, de grafieken zullen elke rij uit de tabel tonen.

Ik heb nog geprobeerd om gegevens in die tabel te krijgen maar dat is dus niet gelukt. Toch is het een goed idee om de tabel 'gebruikers' te controleren op mijn fratsen :P

Je kan dit oplossen door in user-piechart en user-table in de sql code ". $id ." te veranderen naar "?" (zonder aanhalingstekens) en dan deze uit te voeren met $stmt->execute($id)

Hele code voor de volledigheid:
[ code verwijderd ]

Ik heb dit net even getest bij de user-piechart... Ik heb je code overgenomen en op de juiste plek geplakt. Het werkt niet, de overzichten verdwijnen. Wat zou het kunnen zijn?
pi_141764144
quote:
14s.gif Op zaterdag 28 juni 2014 17:35 schreef bondage het volgende:

[ code verwijderd ]

Je moet dan echter in index nog wel even ervoor zorgen dat je een handler hebt welke $_GET['do'] == 'get_user_by_id' afhandelt, het daadwerkelijke id zit in de post $_POST['user_id']. Je kunt hier natuurlijk ook een los script voor schrijven en deze aanroepen, deze moet het ID omzetten naar een naam en deze echo'en. Niet vergeten de naam om te zetten naar entities.

Bovenstaande is wel de meest simpele methode. Het beste is om alles in een enkele call af te handelen en terug te geven als JSON, je kunt de data er dan uithalen via data.chart_data en data.user_name. Dit vereist echter een grote aanpassing aan je bestaande code.
Ik kan nu pas hiermee aan de slag. Als ik vragen heb, hoor je ze wel. :P.

Hartstikke bedankt! O+.
  Moderator / Redactie Sport dinsdag 1 juli 2014 @ 14:37:56 #58
359864 crew  Nattekat
De roze zeekat
pi_141764549
quote:
0s.gif Op dinsdag 1 juli 2014 13:51 schreef zarGon het volgende:
Zijn een paar issues mee: https://github.com/zarGon(...)is/issues?state=open. Zie je hulp graag tegemoet mocht je kunnen helpen.
Ik ga er vanavond naar kijken ^O^
quote:
0s.gif Op dinsdag 1 juli 2014 14:21 schreef zarGon het volgende:

[..]

Ik heb dit net even getest bij de user-piechart... Ik heb je code overgenomen en op de juiste plek geplakt. Het werkt niet, de overzichten verdwijnen. Wat zou het kunnen zijn?
Is er nog een specifieke error code? In principe zou dit moeten werken.
100.000 katjes
Fuck the EBU!
pi_141764661
quote:
0s.gif Op dinsdag 1 juli 2014 14:37 schreef Nattekat het volgende:

[..]

Ik ga er vanavond naar kijken ^O^
Cool!

quote:
Is er nog een specifieke error code? In principe zou dit moeten werken.
Nope, geen foutmelding op de pagina zelf. PHP-code lijkt/is goed. Ik vermoed dat de SQL-query niet helemaal goed is. Heb niet gekeken of het werkt met een handmatig ingevulde UserID, i.p.v. $id.
  Moderator / Redactie Sport dinsdag 1 juli 2014 @ 15:06:50 #60
359864 crew  Nattekat
De roze zeekat
pi_141765786
Is er een reden dat mijn mailbox overspoeld is met mailtjes van github? :P
100.000 katjes
Fuck the EBU!
pi_141766027
quote:
0s.gif Op dinsdag 1 juli 2014 15:06 schreef Nattekat het volgende:
Is er een reden dat mijn mailbox overspoeld is met mailtjes van github? :P
Omdat je hebt aangegeven dat je deze repo wil watchen. Zie https://github.com/settings/notifications.

Ik had niet door dat je telkens een mailtje zou krijgen. :@. Heb een commit gedaan en 6 issues ingeschoten; dat zullen je mailberichten zijn.

[ Bericht 0% gewijzigd door #ANONIEM op 01-07-2014 15:15:16 ]
  Moderator / Redactie Sport dinsdag 1 juli 2014 @ 15:23:40 #62
359864 crew  Nattekat
De roze zeekat
pi_141766492
quote:
0s.gif Op dinsdag 1 juli 2014 15:12 schreef zarGon het volgende:

[..]

Omdat je hebt aangegeven dat je deze repo wil watchen. Zie https://github.com/settings/notifications.

Ik had niet door dat je telkens een mailtje zou krijgen. :@. Heb een commit gedaan en 6 issues ingeschoten; dat zullen je mailberichten zijn.
Jup, precies 6.
100.000 katjes
Fuck the EBU!
pi_141879343
Een nieuwe commit gedaan, issue #4 gefikst. Wel een nieuwe issue ontstaan hierdoor.

Deze tutorial gebruikt om de adminpagina's te beveiligen. Zie http://fok.zevkiselim.nl/crew2.0/?admin=inloggen (user: admin; pass: admin).

Zal nu de code van bondage doornemen/gebruiken om de userinfo correct te tonen.
pi_142747191
Is er niemand hier die me kan helpen met issue 5 en 6? https://github.com/zarGon(...)is/issues?state=open.

Als die zijn opgelost kan er tenminste voor één subsite (forum) gegevens toegevoegd worden en heb ik weer een beetje motivatie om hieraan te werken.
  dinsdag 19 augustus 2014 @ 18:46:18 #65
222754 Dagoduck
Karel (2003-2022)
pi_143599387
Er is zeker nog niets te bekijken qua stats? Ik ben helaas niet thuis in de PHP/MySQL :+
|| FOK!Stok || tatatatatataatatatattaaaaapiediedieuwtididipieuwpidibididi She said I'll throw myself away pididididum They're just photos after all! || Den Helder || Winnaar VBL Wijndal-award 2020: beste AZ-user! || Mijn concertstatistieken ||
pi_143601662
zG. Het is goed van je dat je anderen probeert te motiveren om mee te helpen met oplossen van issues. Helaas zijn er maar weinig mensen die Fok een warm hart toedragen, mede door Danny. Dus ik denk niet dat je op veel animo kunt rekenen. :(
  Moderator / Redactie Sport dinsdag 19 augustus 2014 @ 21:43:41 #67
359864 crew  Nattekat
De roze zeekat
pi_143607745
Om eerlijk te zijn was ik het door mijn vakantie een beetje vergeten :@
100.000 katjes
Fuck the EBU!
pi_143609615
quote:
1s.gif Op zaterdag 26 juli 2014 13:29 schreef zarGon het volgende:
Is er niemand hier die me kan helpen met issue 5 en 6? https://github.com/zarGon(...)is/issues?state=open.

Als die zijn opgelost kan er tenminste voor één subsite (forum) gegevens toegevoegd worden en heb ik weer een beetje motivatie om hieraan te werken.
als je ? gebruikt in je query, moet je geen labels gebruiken in je bind_param functie. Tevens wordt die bind_param functie nu niet goed gebruikt (elke variabele moet in een nieuwe aanroep).

1
2
3
4
5
<?php
$stmt
->bind_param(1$RolafkortingPDO::PARAM_STR);
$stmt->bind_param(2$RolomschrijvingPDO::PARAM_STR);
$stmt->bind_param(3$PKPDO::PARAM_STR);
?>

al kan je ook simpelweg die bind_param weglaten en doen.

1
2
3
<?php
$stmt
->execute(array($Rolafkorting$Rolomschrijving$pk)); 
?>



http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

[ Bericht 33% gewijzigd door remi1986 op 19-08-2014 22:31:07 ]
pi_143611965
Tevens in dat edit bestand waarom wordt er ineens mysqli gebruikt? (regel 29)

En echt, html en php bij elkaar? :')

De tranen springen in mijn ogen als ik dit allemaal bekijk.
  Moderator / Redactie Sport dinsdag 19 augustus 2014 @ 22:58:23 #70
359864 crew  Nattekat
De roze zeekat
pi_143612059
quote:
0s.gif Op dinsdag 19 augustus 2014 22:56 schreef remi1986 het volgende:
En echt, html en php bij elkaar?

De tranen springen in mijn ogen als ik dit allemaal bekijk.
Over welk bestand heb je het precies :?
100.000 katjes
Fuck the EBU!
pi_143612149
quote:
0s.gif Op dinsdag 19 augustus 2014 22:58 schreef Nattekat het volgende:

[..]

Over welk bestand heb je het precies :?
admin/edit.php
pi_143612349
quote:
0s.gif Op dinsdag 19 augustus 2014 22:56 schreef remi1986 het volgende:
Tevens in dat edit bestand waarom wordt er ineens mysqli gebruikt? (regel 29)

En echt, html en php bij elkaar? :')

De tranen springen in mijn ogen als ik dit allemaal bekijk.
- Wellicht is het handig als je deel 1 doorleest.
- Voor het admingedeelte is http://www.killersites.co(...)records-with-mysqli/ gebruikt.
- Als ik de skills had, had ik het allang alleen in elkaar geflanst en had ik dit topic niet geopend.
- Mocht je het willen verbeteren kun je helpen door de code aan te passen en te verbeteren.
  Moderator / Redactie Sport dinsdag 19 augustus 2014 @ 23:05:20 #73
359864 crew  Nattekat
De roze zeekat
pi_143612427
quote:
0s.gif Op dinsdag 19 augustus 2014 23:00 schreef remi1986 het volgende:

[..]

admin/edit.php
Ok, dat het er niet uit ziet moet ik ook wel toegeven :@

Maar ik denk dat vooral onervarenheid hier een rol speelt, volgens mij is Zargon echt een gigantische newbie (niet lullig bedoeld ;) ) wat betreft het maken van software en is dit project ook een leercurve. Bij mij heeft het ook even geduurd tot ik meer op het overzicht en netheid ging letten.
100.000 katjes
Fuck the EBU!
pi_143612430
quote:
0s.gif Op dinsdag 19 augustus 2014 23:04 schreef zarGon het volgende:

[..]

- Wellicht is het handig als je deel 1 doorleest.
- Voor het admingedeelte is http://www.killersites.co(...)records-with-mysqli/ gebruikt.
- Als ik de skills had, had ik het allang alleen in elkaar geflanst en had ik dit topic niet geopend.
- Mocht je het willen verbeteren kun je helpen door de code aan te passen en te verbeteren.
ik ben denk ik sneller als ik van scratch af aan begin. Ik dacht ff snel die query voor je te fixen (zie paar berichten hierboven)
pi_143612584
quote:
0s.gif Op dinsdag 19 augustus 2014 23:05 schreef Nattekat het volgende:

[..]

Ok, dat het er niet uit ziet moet ik ook wel toegeven :@
Het werkt, en daar gaat het mij in eerste instantie om. Dat het beter kan wéét ik.

quote:
Maar ik denk dat vooral onervarenheid hier een rol speelt, volgens mij is Zargon echt een gigantische newbie (niet lullig bedoeld ;) ) wat betreft het maken van software en is dit project ook een leercurve.
Had gehoopt dat het vanaf de OP van het eerste deel al duidelijk was wat mijn kunnen en doen was.
pi_143612664
quote:
0s.gif Op dinsdag 19 augustus 2014 23:05 schreef remi1986 het volgende:

[..]

Ik dacht ff snel die query voor je te fixen (zie paar berichten hierboven)
Zou je mij ook kunnen voorzien van de goede SQL-query? (De inserts en de edits...) Dan kan ik in ieder geval eventueel zelf verder.

quote:
ik ben denk ik sneller als ik van scratch af aan begin.
Er hebben zoveel mensen hier meegekeken die de kennis in huis hebben en weten hoe dit 'project' gerealiseerd kan worden, maar daadwerkelijk helpen hebben er maar twee of drie gedaan.

Alle hulp is welkom.
  Moderator / Redactie Sport dinsdag 19 augustus 2014 @ 23:11:26 #77
359864 crew  Nattekat
De roze zeekat
pi_143612677
quote:
0s.gif Op dinsdag 19 augustus 2014 23:08 schreef zarGon het volgende:

[..]

Het werkt, en daar gaat het mij in eerste instantie om. Dat het beter kan wéét ik.
Ik heb nooit jouw manier van werken bekritiseerd, ik vind het juist mooi dat je direct met zo'n groot project begint, ik zou het ook niet veel beter doen met mijn basis-php kennis.

quote:
[..]

Had gehoopt dat het vanaf de OP van het eerste deel al duidelijk was wat mijn kunnen en doen was.
Klopte het niet dan wat ik zei :?
100.000 katjes
Fuck the EBU!
pi_143612876
quote:
0s.gif Op dinsdag 19 augustus 2014 23:11 schreef zarGon het volgende:

[..]

Zou je mij ook kunnen voorzien van de goede SQL-query? (De inserts en de edits...) Dan kan ik in ieder geval eventueel zelf verder.

[..]

Er hebben zoveel mensen hier meegekeken die de kennis in huis hebben en weten hoe dit 'project' gerealiseerd kan worden, maar daadwerkelijk helpen hebben er maar twee of drie gedaan.

Alle hulp is welkom.
ja er klopt niks van die pagina. Want er wordt ineens mysqli gebruikt .. dan moet je mysqli_query gebruiken en dan werken functies als bind_param en execute helemaal niet.

En ik wil best helpen, maar dan beginnen we overnieuw. Help momenteel een andere user ook met een systeem. In avondje goede structuur neergezet en maakt het werken voor iedereen een stuk fijner.
pi_143612895
quote:
0s.gif Op dinsdag 19 augustus 2014 23:11 schreef Nattekat het volgende:

[..]

Ik heb nooit jouw manier van werken bekritiseerd, ik vind het juist mooi dat je direct met zo'n groot project begint, ik zou het ook niet veel beter doen met mijn basis-php kennis.
Ik zie het niet als kritiek. Ik vind het alleen jammer dat het nu nog - na twee delen - ter sprake moet komen. Ik wil graag verder en na de zoveelste 'ja dat moet niet zo' en 'dit moet beter' zonder daadwerkelijk te helpen word ik een beetje moe van, van dat soort commentaar. Dan moet ik namelijk weer gaan uitleggen hoe het zit, voor de zoveelste keer... Dat terwijl alles valt terug te lezen.

Ik wil gewoon een stap verder, maar het lijkt erop alsof men vooral blijft steken bij hoe het er nu uitziet.

En voordat je het persoonlijk neemt: dat is het niet. Het is alleen een beetje frustrerend dat het bij praten blijft, ik had liever gezien dat men daadwerkelijk meehelpt; al is het maar twee regels code.

quote:
Klopte het niet dan wat ik zei :?
Jawel, maar het is een herhaling van zetten. Het is al eerder besproken in de reeks/het topic. Ik zou het fijner vinden als we gewoon een stap verder kunnen komen zonder telkens in herhaling te vallen.

[ Bericht 6% gewijzigd door #ANONIEM op 19-08-2014 23:18:43 ]
  Moderator / Redactie Sport dinsdag 19 augustus 2014 @ 23:19:59 #80
359864 crew  Nattekat
De roze zeekat
pi_143613026
quote:
0s.gif Op dinsdag 19 augustus 2014 23:17 schreef zarGon het volgende:

[..]

Ik zie het niet als kritiek. Ik vind het alleen jammer dat het nu nog - na twee delen - ter sprake moet komen. Ik wil graag verder en na de zoveelste 'ja dat moet niet zo' en 'dit moet beter' zonder daadwerkelijk te helpen word ik een beetje moe van, van dat soort commentaar. Dan moet ik namelijk weer gaan uitleggen hoe het zit, voor de zoveelste keer... Dat terwijl alles valt terug te lezen.

Ik wil gewoon een stap verder, maar het lijkt erop alsof men vooral blijft steken bij hoe het er nu uitziet.

En voordat je het persoonlijk neemt: dat is het niet. Het is alleen een beetje frustrerend dat het bij praten blijft, ik had liever gezien dat men daadwerkelijk meehelpt; al is het maar twee regels code.

[..]

Jawel, maar het is een herhaling van zetten. Het is al eerder besproken in de reeks/het topic. Ik zou het fijner vinden als we gewoon een stap verder kunnen komen zonder telkens in herhaling te vallen.
Ah op die fiets. Ik gaf meer een antwoord aan Remi hoe het zat, ik heb er verder ook geen problemen mee hoe het eruit ziet.

Daarover gesproken ook, volgens mij heb ik nooit mijn 'switch' geupload :@
100.000 katjes
Fuck the EBU!
pi_143613055
quote:
0s.gif Op dinsdag 19 augustus 2014 23:16 schreef remi1986 het volgende:

[..]

En ik wil best helpen, maar dan beginnen we overnieuw.
Opnieuw beginnen is geen probleem, vooral niet als de basis dan beter in elkaar zit. Vergroot ook de kans dat anderen wellicht mee willen doen.

quote:
Help momenteel een andere user ook met een systeem. In avondje goede structuur neergezet en maakt het werken voor iedereen een stuk fijner.
Graag!
pi_143613967
quote:
0s.gif Op dinsdag 19 augustus 2014 23:20 schreef zarGon het volgende:

[..]

Opnieuw beginnen is geen probleem, vooral niet als de basis dan beter in elkaar zit. Vergroot ook de kans dat anderen wellicht mee willen doen.

[..]

Graag!
echt al dat hergebruik van codes is nergens voor nodig. Op iedere pagina zowat wordt een PDO object gemaakt. Doe dat in index.php en dat object is door het hele project bruikbaar.

Zelfde met de requires voor config.php. En tevens zie ik dat het vaak require is en niet require_once. Op moment dat je nu in index.php een require_once(config.php) zou toevoegen, zou bijna elke pagina een fatal error geven.

En ja dat overnieuw beginnen ben ik opzich wel voor, maar het moet niet zo zijn dat ik je hele project ga maken. Daar heb ik simpelweg geen tijd voor.


1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sql
=    "SELECT
                          PK_Gebruiker
                        , Gebruikersnaam
                        , UserID
                    FROM Gebruiker
                    WHERE UserID = " 
$UserID " "
                    
            
                    
            
$stmt=$con->prepare($sql);
            
$stmt->execute(); 
?>

Zo heeft dat hele prepare geen enkel nut. Nu is alsnog SQL injectie mogelijk.
  Moderator / Redactie Sport dinsdag 19 augustus 2014 @ 23:57:14 #83
359864 crew  Nattekat
De roze zeekat
pi_143614468
quote:
0s.gif Op dinsdag 19 augustus 2014 23:42 schreef remi1986 het volgende:
Zo heeft dat hele prepare geen enkel nut. Nu is alsnog SQL injectie mogelijk.
Het probleem is dat mijn 'oplossing' hiertegen niet werkte en ik verder geen idee heb hoe het op te lossen...
Er is wel aan gedacht iig.

(of dit is een ander die over het hoofd gezien is)
100.000 katjes
Fuck the EBU!
pi_143614483
quote:
0s.gif Op dinsdag 19 augustus 2014 23:11 schreef zarGon het volgende:

[..]

Zou je mij ook kunnen voorzien van de goede SQL-query? (De inserts en de edits...) Dan kan ik in ieder geval eventueel zelf verder.

De queries zijn goed. Regel 403 in edit.php

De bind_param vervangen door

1
2
3
4
5
<?php
$stmt
->bind_param(1$RolafkortingPDO::PARAM_STR);
$stmt->bind_param(2$RolomschrijvingPDO::PARAM_STR);
$stmt->bind_param(3$PKPDO::PARAM_STR);
?>

of die regel bind_param helemaal weg en dan

1
2
3
<?php
$stmt
->execute(array($Rolafkorting$Rolomschrijving$pk)); 
?>
pi_143614719
quote:
0s.gif Op dinsdag 19 augustus 2014 23:57 schreef Nattekat het volgende:

[..]

Het probleem is dat mijn 'oplossing' hiertegen niet werkte en ik verder geen idee heb hoe het op te lossen...
Er is wel aan gedacht iig.

(of dit is een ander die over het hoofd gezien is)
dit is standaard PDO?

1
2
3
4
5
6
7
<?php
$stmt 
$db->prepare("SELECT * FROM table WHERE id=? AND name=?");
$stmt->bindValue(1$idPDO::PARAM_INT);
$stmt->bindValue(2$namePDO::PARAM_STR);
$stmt->execute();
$rows $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

1
2
3
4
5
6
<?php
$stmt 
$db->prepare("SELECT * FROM table WHERE id=:id AND name=:name");
$stmt->bindValue(':id'$idPDO::PARAM_INT);
$stmt->bindValue(':name'$namePDO::PARAM_STR);
$stmt->execute();
$rows $stmt->fetchAll(PDO::FETCH_ASSOC);

1
2
3
4
<?php
$stmt 
$db->prepare("SELECT * FROM table WHERE id=:id AND name=:name");
$stmt->execute(array(':name' => $name':id' => $id));
$rows $stmt->fetchAll(PDO::FETCH_ASSOC);
  Moderator / Redactie Sport woensdag 20 augustus 2014 @ 00:06:23 #86
359864 crew  Nattekat
De roze zeekat
pi_143614773
quote:
0s.gif Op woensdag 20 augustus 2014 00:04 schreef remi1986 het volgende:

[..]

dit is standaard PDO?
[ code verwijderd ]

[ code verwijderd ]

[ code verwijderd ]

Dacht ik ook, ik heb waarschijnlijk een fout gemaakt waardoor het niet werkte. Mijn kennis ligt meer bij html en sql helaas...
100.000 katjes
Fuck the EBU!
pi_143614853
quote:
0s.gif Op woensdag 20 augustus 2014 00:06 schreef Nattekat het volgende:

[..]

Dacht ik ook, ik heb waarschijnlijk een fout gemaakt waardoor het niet werkte. Mijn kennis ligt meer bij html en sql helaas...
Heb ik wat leesvoer voor je dan

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers
  FOK!-Schrikkelbaas woensdag 20 augustus 2014 @ 10:21:57 #88
334 TARAraboemdijee
Vader!
pi_143621080
quote:
0s.gif Op maandag 16 juni 2014 10:11 schreef zarGon het volgende:

[..]

Dat zal dan voor 2004 zijn geweest?

Zoals je ziet is er een link geplaatst naar de MED. Als jij een link hebt (waarin staat dat zij Global Moderator is geworden), dan zie ik die graag. :P.
Shmoopy was inderdaad, samen met RemCow en mij ooit GM.
Ik sta trouwens helemaal niet in het overzicht, terwijl ik onzin-mod ben geweest (met Knut), C&H mod volgens mij, GM, volgens mij ook ergens nog KLB. Sowieso weblog, fotoboek en FP crew. Data weet ik echt niet meer, maar kan ik vast ergens opduiken.

Er waren ooit crew-voorsteldingetjes hier ergens op de site, daar staat vast wat in, dit heb ik van mijn eigen fotoboek:
quote:
In april 2000 werd ik Moderator van Onzin, en ben dit altijd gebleven. Eerst met Knut, toen alleen, daarna met Vork en nu weer met Knut.
In augustus 2000 een extra baantje erbij, Global Mod.
In voorjaar 2004 was het beruchte voorval waardoor ik crew-af werd (opgezocht: 4 april 2004)

[ Bericht 10% gewijzigd door TARAraboemdijee op 20-08-2014 10:27:55 ]
In this world of evil and darkness I'm looking for the one girl that has the power to bring light into my heart. A light so pure that my evil thoughts about this world and the people living on it will vanish and I'll finally experience true love.
  FOK!-Schrikkelbaas woensdag 20 augustus 2014 @ 10:27:26 #89
334 TARAraboemdijee
Vader!
pi_143621193
Enneh: http://wiki.fok.nl/index.(...)ht#Global_moderators
(sowieso die wiki)
http://frontpage.fok.nl/c(...)-1-jaar-te-laat.html
(er zijn meer van die crew-voorstel-dingetjes uit die tijd)

[ Bericht 38% gewijzigd door TARAraboemdijee op 20-08-2014 10:33:24 ]
In this world of evil and darkness I'm looking for the one girl that has the power to bring light into my heart. A light so pure that my evil thoughts about this world and the people living on it will vanish and I'll finally experience true love.
  FOK!-Schrikkelbaas woensdag 20 augustus 2014 @ 11:38:21 #90
334 TARAraboemdijee
Vader!
pi_143622831
Bewijs mbt Shmoopy:
MED / De Global Moderator: niet zomaar een modje

Toevoeging mbt mijzelf:
Alle taken die ik had (chat, weblog, fotoboek, FP en GM op forum) zijn 4-4-2004 beeindigd.
Ik kwam tijdelijk terug op de FP als nieuwsposter en spellchecker op 22-4-2012 tot sowieso 19-10-2012, maar weet niet precies wanneer ik ben gestopt (19-10-2012 kan ik nog iets vinden van crew-activiteit van mij, ik ben gestopt ergens, rechten zijn pas veel later afgenomen)

[ Bericht 60% gewijzigd door TARAraboemdijee op 20-08-2014 12:02:36 ]
In this world of evil and darkness I'm looking for the one girl that has the power to bring light into my heart. A light so pure that my evil thoughts about this world and the people living on it will vanish and I'll finally experience true love.
pi_144575626
Even een update!

Met dank aan remi1986 is er nu een versie dat code-technisch véél beter in elkaar zit. Deze versie heb ik momenteel op Github staan.

Het project FOK-crewgeschiedenis bevat 3 branches:
- 1.0: de handmatige versie. Alle code werd per 'user' en 'forum' handmatig geschreven. Live te zien op op http://fok.zevkiselim.nl/crew.
- 2.0: eerste poging om de boel dynamisch te maken m.b.v. PHP en MySQL. Code is dus amateuristisch. Live te zien op http://fok.zevkiselim.nl/crew2.0.
- master (3.0): huidige versie; opgezet door remi1986. Bevat Smarty en zit technisch veel beter in elkaar! Live te zien op http://fok.zevkiselim.nl/crew3.0.

Huidige 3.0 bevat:
- Weergave van users
- (Admin) Invoeren en wijzigen van users (inc. rollen!)

Belangrijkste to-do:
- Google Charts implementeren (en weergeven van ingevoerde user-gegevens)

Er is nog veel te doen. :P. Als iemand zou willen helpen hoor ik dat graag!

[ Bericht 0% gewijzigd door #ANONIEM op 16-09-2014 09:17:27 ]
pi_144587079
Iemand die mee zou willen helpen met de Google Charts? Nu er Smarty gebruikt wordt kan dat netter dan mijn oplossing. :+.
pi_147507789
Ik heb even hulp nodig met het omzetten van een datediff...

PHP:
1
2
3
4
5
<?php
    $uAnne_s1 
= new DateTime("2005-08-16");
    
$uAnne_e1 = new DateTime("2006-02-13");
    
$uAnne_i1 $uAnne_s1->diff($uAnne_e1)->days;
?>
Resultaat:
quote:
181
Mods met meerdere fora hebben dus meerdere van zulke berekeningen. Anne heeft er bijvoorbeeld 9.

Er wordt ook een totaal berekend; dit totaal is uniek, de dubbele/overlappende dagen worden vermeden.

Bij Anne is dat een opsomming van functie 1,3, 5 en 6:
1
2
3
<?php
    $uAnne_total 
$uAnne_i1 $uAnne_i3 $uAnne_i5 $uAnne_i6;
?>
Resultaat:
quote:
2297 (181+188+98+1830)
Nu wilde ik de ranglijst uitbreiden; naast het aantal in dagen, wil ik het aantal ook weergeven in jaren/maanden/dagen. Bedoel, "3 j, 4 m, 26 d" zegt meer dan '1244 dagen'.

Even opgezocht, dit gevonden: http://stackoverflow.com/a/14519315.

Dit werkt, maar alleen bij 1 datediff. Als het totaal dus alleen bestaat uit $uAnne_i1, werkt het. Maar wanneer het totaal uit meerdere datediffs bestaat, werkt het niet.

Iemand een idee hoe ik dit werkend kan krijgen?

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// PUB
    
$uAnne_s1 = new DateTime("2005-08-16");
    
$uAnne_e1 = new DateTime("2006-02-13");
    
$uAnne_i1 $uAnne_s1->diff($uAnne_e1)->days;      // datediff in dagen
    
$uAnne_i1_ymd $uAnne_s1->diff($uAnne_e1);        // wordt gebruikt voor ymd-berekening
// F&F
    
$uAnne_s3 = new DateTime("2006-08-07");
    
$uAnne_e3 = new DateTime("2007-02-11");
    
$uAnne_i3 $uAnne_s3->diff($uAnne_e3)->days;      // datediff in dagen
    
$uAnne_i3_ymd $uAnne_s3->diff($uAnne_e3);        // wordt gebruikt voor ymd-berekening

// Opsomming PUB + F&F in dagen (werkend!):
$uAnne_total $uAnne_i1 $uAnne_i3;

// YMD, niet werkend:
$uAnne_total_ymd $uAnne_i1_ymd $uAnne_i3_ymd
$uAnne_ymd 
$uAnne_total_ymd->" j, " $uAnne_total_ymd->m." m, ".$uAnne_total_ymd->d." d";
// Voorbeeldresultaat: 1 j, 2 m, 3 d
?>

Ik zou het totaal van $uAnne_e1 en $uAnne_e3 graag terug willen zien in jaren/maanden/dagen.

[ Bericht 0% gewijzigd door #ANONIEM op 12-12-2014 10:21:59 ]
  Moderator / Redactie Sport vrijdag 12 december 2014 @ 10:21:52 #94
359864 crew  Nattekat
De roze zeekat
pi_147507898
Je kan het aantal dagen delen door 365 en naar beneden afronden, daarna delen door 30 voor het aantal maanden, en wat je onderhoud is het aantal dagen.
100.000 katjes
Fuck the EBU!
  Redactie Sport / Supervogel vrijdag 12 december 2014 @ 10:31:53 #95
270182 crew  Pino112
Pino van Luna O+
pi_147508056
quote:
0s.gif Op vrijdag 12 december 2014 10:21 schreef Nattekat het volgende:
Je kan het aantal dagen delen door 365 en naar beneden afronden, daarna delen door 30 voor het aantal maanden, en wat je onderhoud is het aantal dagen.
Maanden met 31 of 28/29 dagen dan?
pi_147508080
quote:
0s.gif Op vrijdag 12 december 2014 10:21 schreef Nattekat het volgende:
Je kan het aantal dagen delen door 365 en naar beneden afronden, daarna delen door 30 voor het aantal maanden, en wat je onderhoud is het aantal dagen.
Dan heb je een resultaat dat relatief is. Je houdt geen rekening met een aantal zaken, zoals schrikkeljaren bijvoorbeeld.

De ->y ->m ->d is absoluut, en daarom beter.


10 oktober 2014 t/m 10 december 2014 = 62 dagen.
Delen door 30 levert op: 0 jaren, 2 maanden, 2 dagen
->y ->m ->d levert op: 0 jaren, 2 maanden, 1 dag

10 oktober t/m 9 november = 1 maand
10 november t/m 9 december = 1 maand
+10 december = 1 dag
-------------------------
2 maanden, 1 dag

Edit:
Ik tel overigens de begindag mee. Het datumverschil is een 'tot en met'.

Startdatum: 1 december 2014
Einddatum: 3 december 2014

Dit zijn dus 3 dagen en niet 2. Bij mijn berekeningen noteer ik de begindatum als begindatum - 1 dag.
1
2
3
4
<?php
    $uAnne_s1 
= new DateTime("2005-08-16");
    
$uAnne_e1 = new DateTime("2006-02-13");
?>
Begindatum = 17 augustus 2005
Einddatum: 13 december 2006

[ Bericht 7% gewijzigd door #ANONIEM op 12-12-2014 10:55:13 ]
pi_147510227
gooi die dates in een strtotime. Het verschil daartussen is het aantal seconden. Dat weer delen door 60 heb je aantal minuten etc.
pi_147510325
quote:
0s.gif Op vrijdag 12 december 2014 12:04 schreef remi1986 het volgende:
gooi die dates in een strtotime. Het verschil daartussen is het aantal seconden. Dat weer delen door 60 heb je aantal minuten etc.
Is dat niet hetzelfde als delen door 365/30? Door het in seconden te plaatsen en dat te delen mis je de context, no?
pi_147510460
quote:
0s.gif Op vrijdag 12 december 2014 12:08 schreef zarGon het volgende:

[..]

Is dat niet hetzelfde als delen door 365/30? Door het in seconden te plaatsen en dat te delen mis je de context, no?
ow wacht .. diff() is beter inderdaad.

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$january 
= new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval $february->diff($january);

// %a will output the total number of days.
echo $interval->format('%a total days')."\n";

// While %d will only output the number of days not already covered by the
// month.
echo $interval->format('%m month, %d days');
?>

The above example will output:

31 total days
1 month, 0 days
pi_147510647
quote:
0s.gif Op vrijdag 12 december 2014 12:13 schreef remi1986 het volgende:

[..]

ow wacht .. diff() is beter inderdaad.
[ code verwijderd ]

The above example will output:

31 total days
1 month, 0 days
Dit was ik ook tegengekomen, maar dit werkte ook niet.

Stel, je wil naast een interval van $januari en $februari ook een interval van $mei en $augustus. En een totaal daarvan.

Dus:
- januari - februari = 1 maand (werkend)
- mei - augustus = 3 maanden (werkend)
---------
Totaal: 4 maanden (krijg ik niet aan de praat)

Hoe krijg je dat totaal werkend? Dat lukt me namelijk niet.

[ Bericht 2% gewijzigd door #ANONIEM op 12-12-2014 12:20:11 ]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')