abonnement Unibet Coolblue Bitvavo
pi_54951942
quote:
Op donderdag 29 november 2007 18:58 schreef SuperRembo het volgende:
Je hoeft toch alleen de key aan die functie door te geven? $_POST is super-global, dus die heb je ook tot je beschikking binnen de functie.
Hmm... ik gebruik feitelijk niet de $_POST array, maar een opgeschoonde array, maar het idee is goed
Die kan ik natuurlijk ook gewoon in m'n functie gebruiken, en de key als los argument meegeven...

Ik ga d'r mee aan de slag!
pi_54955179
quote:
Op vrijdag 30 november 2007 13:53 schreef Aquaatje het volgende:

[..]

Wat voor oud brak mormel gebruik je als server dat je geen nesting kunt toepassen?
[ code verwijderd ]

Deze dan?
Opzet is inderdaad goed, maar krijg ook brussel ed steden terug stom database opzet waar ik helaas niets aan kan veranderen

Maar tnx, ik ga het maar even omslachtig doen met 2 queries!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54961000
quote:
Op vrijdag 30 november 2007 20:59 schreef Chandler het volgende:

[..]

Opzet is inderdaad goed, maar krijg ook brussel ed steden terug stom database opzet waar ik helaas niets aan kan veranderen

Maar tnx, ik ga het maar even omslachtig doen met 2 queries!
Het is mogelijk dat je niet nederlandse steden terug krijgt als je titel bij meerdere landen hoort.

kees - land - NL
kees - land - BE
kees - plaats - Amsterdam
kees - plaats - Brussel

Als je dan mijn query toepast krijg je inderdaad zowel Amsterdam als Brussel terug, want er is geen zichtbaar verschil tussen beide 'kees' entries. Dan moet je echt een tabel maken met daarin 'land' en 'plaats' gekoppeld en het niet op deze vreemde manier doen. Of je tabelstructuur aanpassen?
Everything is possible, the impossible just takes longer.
pi_54963119
Aquaatje, dat is juist het probleem; er staan geen dubbele waardes (zoals jij hebt beschreven) in deze database opzet al gaf de eigenaar van de database ook al aan dat het uitlezen van bepaalde waarden niet erg simpel is.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54963160
Is de data in de db wel ok?
pi_54963180
quote:
Op vrijdag 30 november 2007 11:01 schreef Chandler het volgende:

nu wil ik met een query uit deze database alle plaatsnamen halen uit Nederland (NL)

Ik heb getract met een left join query alle namen te pakken waar een property land in zit met de value NL en daarna met distinct de steden er uit te halen, maar dit werkte niet.

voorbeeld:
[ code verwijderd ]

maar helaas kreeg ik 0 resultaten wat doe ik fout?
Haal die Group By er eens uit?
pi_54963342
quote:
Op zaterdag 1 december 2007 09:29 schreef Farenji het volgende:
Is de data in de db wel ok?
Zekers, er werken meer dan 100 sites met deze database structuur!

@Light, dat levert ook niets op. Maar volgens mij wist je dat al
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54963367
quote:
Op zaterdag 1 december 2007 10:03 schreef Chandler het volgende:

[..]

Zekers, er werken meer dan 100 sites met deze database structuur!

@Light, dat levert ook niets op. Maar volgens mij wist je dat al
Nee, ik had het niet getest.
pi_54963656
1
2
3
4
5
6
SELECT DISTINCT(d1.value) AS stad
FROM database d1
INNER JOIN database d2 ON d2.naam = d1.naam
WHERE d1.property = 'stad' 
   AND d2.property = 'land' 
   AND d2.value = 'NL'

Deze query zou echt moeten werken. Dus met een INNER JOIN, niet met een LEFT JOIN. Als dit geen resultaten oplevert dan klopt er iets niet aan de namen van de property's of value. Met de voorbeelddata die je eerder gaf moet dit "groningen" en "Amsterdam" geven. Met een LEFT JOIN krijg je alle steden terug (en dan is die hele join dus zinloos).
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54964195
Hey Sr,

Bedankt voor je query, maar deze geeft dezefde resultaten als met een innerjoin. Ben idd ook bang dat de database eigenaar niet de juiste waarden in de database.

Ik zie touwens de fout in het database systeem

Aangezien er ook NL voor kan komen bij andere waarden (zoals spreektaal) wordt NL daar ook op gevalideerd en komt deze ook naar boven als zijnde een nederlandse plaats

Is het mogelijk om de d2.property en d2.value uit 1 regel te halen? want nu wordt het uit meerdere rijen gehaald (bv 1e rij de property en 3e rij de value?)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54964976
quote:
Op zaterdag 1 december 2007 11:36 schreef Chandler het volgende:
Ik zie touwens de fout in het database systeem

Aangezien er ook NL voor kan komen bij andere waarden (zoals spreektaal) wordt NL daar ook op gevalideerd en komt deze ook naar boven als zijnde een nederlandse plaats
Dat kan het probleem niet zijn want je gebruikt d2.property = 'land' AND d2.value = 'NL', dus spreektaal NL voldoet daar niet aan.
quote:
Is het mogelijk om de d2.property en d2.value uit 1 regel te halen? want nu wordt het uit meerdere rijen gehaald (bv 1e rij de property en 3e rij de value?)
d2.property = 'land' AND d2.value = 'NL' die staan dus op dezelfde regel.

Wat is eigenlijk de key van deze tabel, naam+property of naam+property+value?

[ Bericht 0% gewijzigd door SuperRembo op 01-12-2007 12:39:12 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54967457
1
2
3
4
5
6
CREATE TABLE `db1` (
  `naam` varchar(20) collate latin1_general_ci NOT NULL,
  `property` varchar(20) collate latin1_general_ci NOT NULL,
  `value` varchar(255) collate latin1_general_ci NOT NULL
  PRIMARY KEY  (`naam`,`property`,`value`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

Dit is de tabel in kwestie ;)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54968790
Ok, dan kunnen er per naam dus meerdere regels met property = 'land' zijn.

1
2
3
4
5
SELECT naam, Count(*) n
FROM db1
WHERE property = 'land'
GROUP BY naam
HAVING Count(*) > 1


Als deze query resultaten oplevert dan ligt daar je probleem: meerdere landen per persoon.

[ Bericht 0% gewijzigd door SuperRembo op 01-12-2007 16:17:52 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54968926
idd 13 resultaten wat erg irritant zeg
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54969683
Hallo

ik zoek het volgende.. maar kan het niet vinden..

Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten

dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..

bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..

de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
  zaterdag 1 december 2007 @ 18:29:32 #117
84926 WyriHaximus
Release the hounds smithers!
pi_54971984
quote:
Op zaterdag 1 december 2007 16:35 schreef Schepseltje het volgende:
Hallo

ik zoek het volgende.. maar kan het niet vinden..

Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten

dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..

bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..

de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
Wat nou als je er per secconde door heen loopt en steeds als je een grens (dag/maand) over gaat stel je een tellertje bij?
phluphy for president!
pi_54972356
quote:
Op zaterdag 1 december 2007 18:29 schreef WyriHaximus het volgende:

[..]

Wat nou als je er per secconde door heen loopt en steeds als je een grens (dag/maand) over gaat stel je een tellertje bij?
ja maar hoeveel seconden heeft een maand? februari heeft er minder dan december
pi_54972882
quote:
Op zaterdag 1 december 2007 18:47 schreef Schepseltje het volgende:

[..]

ja maar hoeveel seconden heeft een maand? februari heeft er minder dan december
Dat hoef je niet te weten, je zet de startdatum om naar een timestamp, telt er 1 bij op en zet de timestamp weer om naar een datum. Hier zijn functies voor in php. En dit doe je net zo lang tot de timestamp groter of gelijk is als de timestamp van de einddatum. Elke keer check je of de dag-, maand- of het jaargetal is veranderd tov de vorige datum en dit hou je bij.

Overigens is per seconde door de range loopen wel erg inefficient, je kan beter per 23*60*60 - 1 secondes loopen - een dag is nl nooit korter dan 23 uur en dus zal er nooit meer dan 1 dag verschil zijn.
pi_54974460
Ik heb het nu zo gedaan.. lijkt te werken

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
<?php
function datediff($date1,$date2)
{
    
$timediff =intval$date1-$date2 ); 
    if (
$timediff<0) { $timediff $timediff * -1$t=$date1$date1=$date2$date2=$t; } // als het verschil negatief is, maak het positief

    
$years 0;
    
$months 0;
    
$days=intval($timediff/86400); $remain=$timediff%86400;
    
$hours=intval($remain/3600); $remain=$remain%3600;
    
$mins=intval($remain/60);
    
$secs=$remain%60;
    
    for (;;)
    {
        
$no_of_days_in_month=date("t",mktime(0,0,0,date("m",$date1),0,date("Y",$date1))); // dagen in de maand
        
if ($months>11) { $months 0$years++;  }
        if (
$no_of_days_in_month<=$days
        {        
            
$days=$days-$no_of_days_in_month;
            
$date1 $date1 $no_of_days_in_month*86400;
            
$months++;
        }
        else { break; }
    }

    if (
$years>0)     { $output .= "$years jaar, "; }
    if (
$months>0)     { if ($months==1)     { $output .= "1 maand, "; } else     { $output .= "$months maanden, "; } }
    if (
$days>0)     { if ($days==1)     { $output .= "1 dag, "; } else         { $output .= "$days dagen, "; } }    
    if (
$hours>0)     { if ($hours==1)     { $output .= "1 uur, "; } else         { $output .= "$hours uren, "; } }
    if (
$mins>0)     { if ($mins==1)     { $output .= "1 minuut, "; } else     { $output .= "$mins minuten, "; } }    
    if (
$secs>0)    { if ($secs==1)     { $output .= "1 seconde, "; } else     { $output .= "$secs seconden, "; } }        
    
    return 
substr($output,0,-2);
}
?>


[ Bericht 8% gewijzigd door Schepseltje op 02-12-2007 00:20:57 ]
  zaterdag 1 december 2007 @ 20:16:54 #121
84926 WyriHaximus
Release the hounds smithers!
pi_54974521
quote:
Op zaterdag 1 december 2007 19:11 schreef Farenji het volgende:

[..]

Dat hoef je niet te weten, je zet de startdatum om naar een timestamp, telt er 1 bij op en zet de timestamp weer om naar een datum. Hier zijn functies voor in php. En dit doe je net zo lang tot de timestamp groter of gelijk is als de timestamp van de einddatum. Elke keer check je of de dag-, maand- of het jaargetal is veranderd tov de vorige datum en dit hou je bij.

Overigens is per seconde door de range loopen wel erg inefficient, je kan beter per 23*60*60 - 1 secondes loopen - een dag is nl nooit korter dan 23 uur en dus zal er nooit meer dan 1 dag verschil zijn.
Precies, en als je het op de dag af weet is het laatste stukkie een makkie .Ben lekker wakker vandaag .
phluphy for president!
pi_54976845
quote:
Op zaterdag 1 december 2007 16:35 schreef Schepseltje het volgende:
Hallo

ik zoek het volgende.. maar kan het niet vinden..

Ik heb 2 datums, die wil ik van elkaar aftrekken zodat je kunt zien hoeveel jaren, maanden, weken, dagen, uren, minuten en seconden er tussenzitten

dit zou heel simpel zijn wanneer elke maand exact 30 dagen had, maar aangezien het nogal een verschil maakt vanaf welke datum je begint te rekenen, is dit nogal een lastige opgave..

bestaat hier een kant en klare functie voor? ik heb er verschillende geprobeerd, maar geen enkele lijkt goed te werken..

de nerds op tweakers lijken er na 5 pagina's ook niet uit te komen..
Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
  zaterdag 1 december 2007 @ 21:54:40 #123
84926 WyriHaximus
Release the hounds smithers!
pi_54977245
quote:
Op zaterdag 1 december 2007 21:40 schreef Light het volgende:

[..]

Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
Als je zoals hij zegt er van uit gaat dat er 30 dagen in een maand zitten en 365 dagen in een jaar is dat een makkie. Alleen wil je dit precies doen dan word het in eens een stuk moeilijker, en dat is nou net wat hij wil .
phluphy for president!
pi_54977418
quote:
Op zaterdag 1 december 2007 21:40 schreef Light het volgende:

[..]

Als je die data in timestamps hebt dan kun je die toch gewoon van elkaar aftrekken? Dan heb je het verschil tussen de data, in seconden. Da's wel om te rekenen naar minuten-uren-dagen, lijkt me
Tot dagen wel, maar hij wil het verder omrekenen naar maanden en jaren. Zie ook 't GoT topic.

Als je het verschil in jaren, maanden, dagen, uren etc wil hebben dan zal je bij de jaren moeten beginnen, daarna het aantal resterende maanden etc. Ik vraag me af of je het helemaal waterdicht kan krijgen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54977520
quote:
Op zaterdag 1 december 2007 22:01 schreef SuperRembo het volgende:

[..]

Tot dagen wel, maar hij wil het verder omrekenen naar maanden en jaren. Zie ook 't GoT topic.

Als je het verschil in jaren, maanden, dagen, uren etc wil hebben dan zal je bij de jaren moeten beginnen, daarna het aantal resterende maanden etc. Ik vraag me af of je het helemaal waterdicht kan krijgen.
ik zou zeggen probeer mijn code eens.. lijkt waterdicht

als ik voor begindatum 0 invul (01-01-1970) dan geeft ie

jaar: 37
maanden: 11
dagen: 0
uren: 22
minuten: 4
seconden: 50

als er ook maar 1 foutje in zit dan moet dat over een periode van 37 jaar wel opvallen
  zaterdag 1 december 2007 @ 22:09:17 #126
84926 WyriHaximus
Release the hounds smithers!
pi_54977609
quote:
Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:

[..]

ik zou zeggen probeer mijn code eens.. lijkt waterdicht

als ik voor begindatum 0 invul (01-01-1970) dan geeft ie

jaar: 37
maanden: 11
dagen: 0
uren: 22
minuten: 4
seconden: 50

als er ook maar 1 foutje in zit dan moet dat over een periode van 37 jaar wel opvallen
Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
phluphy for president!
pi_54977639
quote:
Op zaterdag 1 december 2007 22:09 schreef WyriHaximus het volgende:

[..]

Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagen
  zaterdag 1 december 2007 @ 22:15:01 #128
84926 WyriHaximus
Release the hounds smithers!
pi_54977742
quote:
Op zaterdag 1 december 2007 22:10 schreef Schepseltje het volgende:

[..]

nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagen
Mooi stukje code om ff te bewaren dus .
phluphy for president!
pi_54977762
quote:
Op zaterdag 1 december 2007 22:15 schreef WyriHaximus het volgende:

[..]

Mooi stukje code om ff te bewaren dus .
ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
  zaterdag 1 december 2007 @ 22:18:02 #130
84926 WyriHaximus
Release the hounds smithers!
pi_54977818
quote:
Op zaterdag 1 december 2007 22:15 schreef Schepseltje het volgende:

[..]

ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
Ja of wilt weten hoelang het duur voordat je kunt stoppen met werken of wanneer je 50 jaar getrouwt bent. Of what ever zijn zoveel dingen waar dit handig voor is .
phluphy for president!
pi_54978068
quote:
Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:
lijkt waterdicht
Wat ik daarmee bedoelde was een geval als dit:

02/02/2003 - 01/03/2004 is dat
1 jaar (02/02/2003 - 02/02/2004) + 28 dagen (02/02/2004 - 01/03/2004)
of
1 jaar (01/03/2003 - 01/03/2004) + 27 dagen (02/02/2003 - 01/03/2003)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54978408
quote:
Op zaterdag 1 december 2007 22:28 schreef SuperRembo het volgende:

[..]

Wat ik daarmee bedoelde was een geval als dit:

02/02/2003 - 01/03/2004 is dat
1 jaar (02/02/2003 - 02/02/2004) + 28 dagen (02/02/2004 - 01/03/2004)
of
1 jaar (01/03/2003 - 01/03/2004) + 27 dagen (02/02/2003 - 01/03/2003)
bij 02/02/2003 - 01/03/2004 zegt ie

jaar: 1
maanden: 0
dagen: 27
uren: 0
minuten: 0
seconden: 0
pi_54979280
ik heb hier een webdemo staan..

http://4aal.nl/datums.php

als iemand nog een fout ziet hoor ik het wel..
pi_54979918
quote:
Op zaterdag 1 december 2007 23:14 schreef Schepseltje het volgende:
als iemand nog een fout ziet hoor ik het wel..
Nou de oplossing met loop is ranzig/lomp. En de 'if ($months>11) { $months = 0; $years++; }' check zou na '$month++' moeten staan.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54980052
wat is er ranzig aan die loop? op php.net staat ie ongeveer ook zo

1
2
3
4
5
6
7
8
$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}


die volgorde van months maakt volgens mij niet uit voor het resultaat

-edit- ik zie trouwens wel dat de "tot" datum gaat tot 2057, ik gok dat dat hierdoor komt..

[ Bericht 6% gewijzigd door Schepseltje op 02-12-2007 00:18:49 ]
pi_54981357
Die loop is ranzig omdat als de datums 10 jaar uit elkaar liggen je minsten 8*12=48 keer voor niets de loop doorloopt en dus 48*3=144 keer date() voor niets gebruikt. Beetje jammer.

Ik zou 't zo aanpakken.

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
function datediff($date1, $date2)
{
   if ($date1 > $date2) return false;
   
   $year1 = date("Y", $date1);
   $month1 = date("n", $date1);
   $day1 = date("j", $date1);
   $year2 = date("Y", $date2);
   $month2 = date("n", $date2);
   $day2 = date("j", $date2);

   $years = $year2 - $year1;
   $months = $month2 - $month1;
   $days = $day2 - $day1;
   
   if ($days < 0)
   {
      --$months;
      $days += date("t", mktime(0, 0, 0, $month2 + 1, 0, $year2));
   }
   if ($months < 0)
   {
      --$years;
      $months += 12;
   }
   
   return array("years" => $years, "months" => $months, "days" => $days);
}

Misschien nog niet helemaal bug-vrij, maar ik denk dat 't een goede basis is voor een elegante oplossing. Er zit nog geen ondersteuning voor tijd in, maar die is er zo aan toe te voegen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zondag 2 december 2007 @ 00:47:08 #137
62215 qu63
..de tijd drinkt..
pi_54981546
datediff-script:
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
<?php
/*
Plugin Name: DateDiff
Version: 1.0
Plugin URI: http://maseko.com/project/wp-plugins/wp-datediff/ />Description: Calculate the difference between two dates like Microsoft Excel's datedif.
Author: maseko
Author URI:
http://maseko.com/ />

License information
Copyright 2005
Released under the GPL license
http://www.gnu.org/licenses/gpl.txt

    This file is a plugin for WordPress
    WordPress is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
*/

    
function datediff($start_date,$end_date="now",$unit="D")
        {
            
$unit = strtoupper($unit);
            
$start=strtotime($start_date);
            if (
$start === -1) {
                print(
"invalid start date");
            }
            
            
$end=strtotime($end_date);            
            if (
$end === -1) {
                print(
"invalid end date");
            }
            
            if (
$start > $end) {
                
$temp = $start;
                
$start = $end;
                
$end = $temp;
            }
            
            
$diff = $end-$start;
            
            
$day1 = date("j", $start);
            
$mon1 = date("n", $start);
            
$year1 = date("Y", $start);
            
$day2 = date("j", $end);
            
$mon2 = date("n", $end);
            
$year2 = date("Y", $end);
            
            switch(
$unit) {
                case
"D":
                    echo
intval($diff/(24*60*60));
                    break;
                case
"M":
                    if(
$day1>$day2) {
                        
$mdiff = (($year2-$year1)*12)+($mon2-$mon1-1);
                    } else {
                        
$mdiff = (($year2-$year1)*12)+($mon2-$mon1);
                    }
                    echo
$mdiff;
                    break;
                case
"Y":
                    if((
$mon1>$mon2) || (($mon1==$mon2) &amp;&amp; ($day1>$day2))){
                        
$ydiff = $year2-$year1-1;
                    } else {
                        
$ydiff = $year2-$year1;
                    }
                    echo
$ydiff;
                    break;
                case
"YM":
                    if(
$day1>$day2) {
                        if(
$mon1>=$mon2) {
                            
$ymdiff = 12+($mon2-$mon1-1);
                        } else {
                            
$ymdiff = $mon2-$mon1-1;
                        }
                    } else {
                        if(
$mon1>$mon2) {
                            
$ymdiff = 12+($mon2-$mon1);
                        } else {
                            
$ymdiff = $mon2-$mon1;
                        }
                    }
                    echo
$ymdiff;
                    break;
                case
"YD":
                    if((
$mon1>$mon2) || (($mon1==$mon2) &amp;&amp;($day1>$day2))) {
                        
$yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2-1))/(24*60*60));                        
                    } else {
                        
$yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2))/(24*60*60));
                    }
                    echo
$yddiff;
                    break;
                case
"MD":
                    if(
$day1>$day2) {
                        
$mddiff = intval(($end - mktime(0, 0, 0, $mon2-1, $day1, $year2))/(24*60*60));                        
                    } else {
                        
$mddiff = intval(($end - mktime(0, 0, 0, $mon2, $day1, $year2))/(24*60*60));
                    }
                    echo
$mddiff;
                    break;
                default:
                 print(
"{Datedif Error: Unrecognized \$unit parameter. Valid values are 'Y', 'M', 'D', 'YM'. Default is 'D'.}");
                
            }

        }
?>

op je website te gebruiken als
1
2
3
<?php
$now
= date("Y-m-d"); $td = "2006-9-24"; $tde = "2007-12-21"; echo " Over ";datediff("now","$tde","M");echo " maanden en ";datediff("now", "$tde", "MD");echo " dagen ben ik klaar! (ongeveer dan..)"
?>

ouyput is dan:
Over 0 maanden en 19 dagen ben ik klaar! (ongeveer dan..)
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_54981656
quote:
Op zondag 2 december 2007 00:38 schreef SuperRembo het volgende:
Die loop is ranzig omdat als de datums 10 jaar uit elkaar liggen je minsten 8*12=48 keer voor niets de loop doorloopt en dus 48*3=144 keer date() voor niets gebruikt. Beetje jammer.

Ik zou 't zo aanpakken.
[ code verwijderd ]

Misschien nog niet helemaal bug-vrij, maar ik denk dat 't een goede basis is voor een elegante oplossing. Er zit nog geen ondersteuning voor tijd in, maar die is er zo aan toe te voegen.
nee, elke loop is voor een maand, en bij elke maand moet hij opnieuw kijken hoeveel dagen die maand heeft
pi_55014687
Vraagje, of iemand hier een bestaande routine voor weet.

Stel je hebt een grote lap tekst met spaties en tekens. Nu wil ik graag dat iedere regel wordt gecontrolleerd op het aantal spaties en stel alle regels beginnen minimaal 4 spaties vanaf links dan wil ik deze spaties verwijderen.

Hopelijk begrijpt iemand mij
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 3 december 2007 @ 16:20:08 #140
107951 JortK
Immer kwaliteitsposts
pi_55015093
quote:
Op maandag 3 december 2007 15:58 schreef Chandler het volgende:
Vraagje, of iemand hier een bestaande routine voor weet.

Stel je hebt een grote lap tekst met spaties en tekens. Nu wil ik graag dat iedere regel wordt gecontrolleerd op het aantal spaties en stel alle regels beginnen minimaal 4 spaties vanaf links dan wil ik deze spaties verwijderen.

Hopelijk begrijpt iemand mij :P
1
2
3
<?php
ltrim
()
?>


Of trim() :?
pi_55015785
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_55015912
quote:
Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
1
2
3
<?php
printf
('%2f'$bedrag);
?>
  maandag 3 december 2007 @ 17:04:42 #143
107951 JortK
Immer kwaliteitsposts
pi_55016032
quote:
Op maandag 3 december 2007 16:53 schreef DaFrenk het volgende:
Grmbl.. hoe krijg ik PHP zover dat hij geldbedragen als "7.50" schrijft en niet als "7.5"? Dus dat hij wel die 0 toevoegt?
number_format();
pi_55016078
Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_55016217
Ow, die van mij was niet helemaal goed
1
2
3
4
5
6
7
8
<?php
$money1
= 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted will output "123.10"
?>


[ Bericht 69% gewijzigd door Light op 03-12-2007 20:46:01 (Tag fix) ]
  maandag 3 december 2007 @ 17:16:20 #146
107951 JortK
Immer kwaliteitsposts
pi_55016255
quote:
Op maandag 3 december 2007 17:07 schreef DaFrenk het volgende:
Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
Probeer een van de twee eens
  maandag 3 december 2007 @ 17:19:15 #147
84926 WyriHaximus
Release the hounds smithers!
pi_55016312
quote:
Op maandag 3 december 2007 17:16 schreef JortK het volgende:

[..]

Probeer een van de twee eens
http://nl2.php.net/number_format werkt het makkelijkst ja
phluphy for president!
pi_55016362
number_format() is in mijn geval het handigst! Bedankt allebei!
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
  maandag 3 december 2007 @ 18:45:50 #149
529 twi
Het lichtje is uit...
pi_55017968
Hoe noemen jullie de wat gedetailleerdere cms-pagina's eigenlijk? En bouwen jullie alle functionaliteit in 1 bestand?

Ik ben bezig om het wiel opnieuw uit te vinden door een template voor een nieuwssysteem te maken welke ik in de toekomst eenvoudig in een site kan bouwen wanneer een klant het wil, en m'n cms related bestandsnamen wil ik zo duidelijk mogelijk krijgen.

1
2
3
4
5
6
7
8
9
news.item.insert.php
news.item.edit.php
news.item.delete.php

news.category.insert.php
news.category.edit.php
news.category.delete.php

etc.

Maar misschien iis het wel netter om dit met behulp van switch cases te doen waardoor je per item maar 1 bestand hebt:
1
2
news.item.php
news.category.php

Maar dan zul je voor sommige cms-functionaliteiten wel enorm grote bestanden krijgen.

Is er literatuur of zijn er bepaalde richtlijnen en/of aangrijpingspunten hierover?
pi_55020651
Ik zet elke class in een eigen bestand. Als je het op de eerste manier doet (per functie een bestand) krijg je veel te veel versnippering, naast de methodes insert, edit en delete zal je wsch veel meer functies hebben en dan zit je voor je het weet met 80 miljoen bestanden. Een bestand met alle methodes en properties van een class bij elkaar is veel praktischer, grote bestanden zijn geen probleem als je een goede IDE hebt.
  maandag 3 december 2007 @ 21:26:52 #151
136730 PiRANiA
All thinking men are atheists.
pi_55021178
ik snap eigenlijk nog steeds niet wat classes zijn, wat ze doen en waar ze goed voor zijn...

ik heb ze in 3 jaar nog nooit gebruikt iig...

wie legt het me uit?
  maandag 3 december 2007 @ 21:32:12 #152
107951 JortK
Immer kwaliteitsposts
pi_55021261
quote:
Op maandag 3 december 2007 21:26 schreef PiRANiA het volgende:
ik snap eigenlijk nog steeds niet wat classes zijn, wat ze doen en waar ze goed voor zijn...

ik heb ze in 3 jaar nog nooit gebruikt iig...

wie legt het me uit?
http://nl2.php.net/class is een hele goede om mee te beginnen
  maandag 3 december 2007 @ 21:35:35 #153
84926 WyriHaximus
Release the hounds smithers!
pi_55021343
quote:
Op maandag 3 december 2007 21:32 schreef JortK het volgende:

[..]

http://nl2.php.net/class is een hele goede om mee te beginnen
Daarnaast zijn deze ook erg handig:
http://nl3.php.net/oop (Voor PHP4)
http://nl3.php.net/oop5 (Voor PHP5)
phluphy for president!
  maandag 3 december 2007 @ 23:47:01 #154
529 twi
Het lichtje is uit...
pi_55024427
Ik denk dat ik me daar maar eens flink in ga verdiepen, want dat aanklooien wat ik nu doe werkt wel, maar is gewoon veel te omslachtig inderdaad.
pi_55027632
Ik ben ook pas laat met OOP begonnen in PHP, omdat ik het ook nooit echt nodig had. Pas wanneer ik met ASP/VB.NET ging werken en dus meer object-oriënted ging werken had ik er pas de interesse voor. Kan in ieder geval een hoop werk schelen als je veelgebruikte functies bij elkaar in een class stopt en die bij elk(e) website/project kunt gebruiken. En natuurlijk om een beetje met de tijd mee te gaan.
pi_55032265
quote:
Op maandag 3 december 2007 16:20 schreef JortK het volgende:

[..]
[ code verwijderd ]

Of trim() :?
Ik doelde eingelijk meer op een functie dat van het volgende voorbeeld

1
2
3
4
5
6
7
8
9
10
        $this->language = array("ad"    => "Andorra",
                                "ae"    => "United Arab Emirates",
                                "af"    => "Afghanistan",
                                "ag"    => "Antigua and Barbuda",
                                "ai"    => "Anguilla",
                                "al"    => "Albania",
                                "am"    => "Armenia",
                                "an"    => "Netherlands Antilles",
                                "ao"    => "Angola",
                                "aq"    => "Antarctica",


dit maakt

1
2
3
4
5
6
7
8
9
10
$this->language = array("ad"    => "Andorra",
                        "ae"    => "United Arab Emirates",
                        "af"    => "Afghanistan",
                        "ag"    => "Antigua and Barbuda",
                        "ai"    => "Anguilla",
                        "al"    => "Albania",
                        "am"    => "Armenia",
                        "an"    => "Netherlands Antilles",
                        "ao"    => "Angola",
                        "aq"    => "Antarctica",


Zie het verschil in spaties ;)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55035500
Het makkelijkste is om een bestand te openen en dan regel voor regel in te lezen en te evalueren. Tel het aantal spatie-karakters aan het begin van de regel en verwijder deze indien nodig. Schrijf vervolgens de output terug naar dezelfde regel. Ik neem tenminste aan dat het gaat om een bestand via php automatisch te verwerken en niet in een editor o.i.d.? Er zijn zat editors waar je dat met wat simpele shortcuts kunt doen.
Everything is possible, the impossible just takes longer.
pi_55036901
Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
Hoe kan ik dit oplossen?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  dinsdag 4 december 2007 @ 16:04:03 #159
107951 JortK
Immer kwaliteitsposts
pi_55036926
quote:
Op dinsdag 4 december 2007 16:02 schreef markiemark het volgende:
Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
Hoe kan ik dit oplossen?
htmlentities?
pi_55036997
quote:
Op dinsdag 4 december 2007 16:04 schreef JortK het volgende:

[..]

htmlentities?
moet daar dan nog iets achter? Zie http://nl2.php.net/manual/en/function.htmlentities.php hier dat er de nodige aanvullingen kunnen zijn..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  dinsdag 4 december 2007 @ 16:07:53 #161
107951 JortK
Immer kwaliteitsposts
pi_55037018
quote:
Op dinsdag 4 december 2007 16:06 schreef markiemark het volgende:

[..]

moet daar dan nog iets achter? Zie http://nl2.php.net/manual/en/function.htmlentities.php hier dat er de nodige aanvullingen kunnen zijn..
Probeer eerst maar gewoon eens

1
2
3
<?php
htmlentities
($string);
?>
pi_55037058
quote:
Op dinsdag 4 december 2007 16:07 schreef JortK het volgende:

[..]

Probeer eerst maar gewoon eens
[ code verwijderd ]
Er zit ook html in de database.. Die wordt dan ook omgezet naar tekst.. en das niet de bedoeling..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_55038052
Je HTML pagina ook als UTF-8 coderen helpt niet?
pi_55044457
Tnx Aquaatje, ik zal even een routine schrijven.

Iets anders. Voor mijn statistieken script sla ik nu continue de 'zoekwoorden' appart op, is dit handig of is het handiger om gewoon de zoek zinnen op te slaan?

Anyone?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55044651
Ligt er een beetje aan wat je vervolgens met die zoekwoorden wil gaan doen. Wil je kijken wel woord afzonderlijk het meeste voor komt, dan kun je ze apart opslaan. Maar wil je ook relaties tussen zoekwoorden weten, dan moet je weer andere dingen bijhouden.
pi_55045056
quote:
Op dinsdag 4 december 2007 16:02 schreef markiemark het volgende:
Hooii lieve vrienden! Heb in mijn mysql database een aantal teksten staan. Deze zijn in vershchillende talen. Het probleem is dat deze de pure teksten zijn dus inclusief alle haakjes en streepjes, niet omgezet naar &amp;amp;amp;..; code. Als ik deze weergeef in mijn browser komen er in Firefox blokjes met vraagtekentjes te staan en in internet explorer kleine vierkantjes. Hoe kan ik dit oplossen. De codering in de database is utf-8- unicode.
Hoe kan ik dit oplossen?
Als je met utf-8 wil werken moet *alles* utf-8 zijn, niet alleen je database. Dus zorgen dat je pagina ook in utf-8 is (meta content-type tag goed zetten en vooral ook zorgen dat utf-8 als content-type in de page headers wordt meegestuurd) en in php zorgen dat de mbstring extentie is geinstalleerd en alleen de utf-8 veilige functies gebruiken. Alle standaard string functies zoals strlen etc raken in de war van utf-8 en geven verkeerde resultaten als je niet expliciet instelt dat de utf-8 versie gebruikt moet worden, dus bijv door mb_strlen te gebruiken ipv strlen.
pi_55052921
quote:
Op dinsdag 4 december 2007 21:48 schreef Farenji het volgende:

[..]

Als je met utf-8 wil werken moet *alles* utf-8 zijn, niet alleen je database. Dus zorgen dat je pagina ook in utf-8 is (meta content-type tag goed zetten en vooral ook zorgen dat utf-8 als content-type in de page headers wordt meegestuurd) en in php zorgen dat de mbstring extentie is geinstalleerd en alleen de utf-8 veilige functies gebruiken. Alle standaard string functies zoals strlen etc raken in de war van utf-8 en geven verkeerde resultaten als je niet expliciet instelt dat de utf-8 versie gebruikt moet worden, dus bijv door mb_strlen te gebruiken ipv strlen.
Dat is dus eigenlijk niet te doen.. met htmlentities() werkt het ook niet omdat dan de html code ook wordt omgezet.. hoe kan ik er voor zorgen dat de tekens wel om worden gezet, maar de html niet?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  woensdag 5 december 2007 @ 11:30:29 #168
107951 JortK
Immer kwaliteitsposts
pi_55053497
quote:
Op woensdag 5 december 2007 11:03 schreef markiemark het volgende:

[..]

Dat is dus eigenlijk niet te doen.. met htmlentities() werkt het ook niet omdat dan de html code ook wordt omgezet.. hoe kan ik er voor zorgen dat de tekens wel om worden gezet, maar de html niet?
Dat wordt volgens mij een lastig verhaal
pi_55053893
Gooi anders eens alles om naar ISO-8859-1 / ISO-8859-15, ik heb deze altijd aangehouden en nooit problemen gehad m.b.t. speciale karakters.
pi_55054629
quote:
Op dinsdag 4 december 2007 21:32 schreef HuHu het volgende:
Ligt er een beetje aan wat je vervolgens met die zoekwoorden wil gaan doen. Wil je kijken wel woord afzonderlijk het meeste voor komt, dan kun je ze apart opslaan. Maar wil je ook relaties tussen zoekwoorden weten, dan moet je weer andere dingen bijhouden.
Tja, dat is en blijft de vraag hé.

Maar zou jij relaties leggen? of juist niet?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  woensdag 5 december 2007 @ 12:45:52 #171
107951 JortK
Immer kwaliteitsposts
pi_55055313
quote:
Op woensdag 5 december 2007 12:15 schreef Chandler het volgende:

[..]

Tja, dat is en blijft de vraag hé.

Maar zou jij relaties leggen? of juist niet?
Ik ben altijd ervoor om je database relationeel te houden.

Zo heb je later ook de mogelijkheid om makkelijker zaken 1:n te maken zonder te veel te hoeven kloten
pi_55056418
quote:
Op dinsdag 4 december 2007 21:21 schreef Chandler het volgende:
Tnx Aquaatje, ik zal even een routine schrijven.
En hier istie dan, als iemand er nog nut voor ziet

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
<?php
    
function checkSpaces($in)
    {
        
$inNew explode("\n"$in);
        
        
$inItems count($inNew);
        
$inMin   1000;
        
        for (
$x 0$x $inItems$x++)
        {
            for (
$y 0$y strlen($inNew[$x]); $y++)
            {
                if (
substr($inNew[$x], $y1) != " ")
                {
                    
$inMin $y;
                    break;
                }
            }
        }
        
        return 
$inMin;
    }
    
    function 
removeSpaces($in$remove)
    {
        
$inNew explode("\n"$in);

        
$inItems count($inNew);
        
        for (
$x 0$x $inItems$x++)
        {
            
$inNew[$x] = substr($inNew[$x], $removestrlen($inNew[$x]) - $remove);
        }
        
        return 
implode("\n"$inNew);
    }
    


$str "    hello world
    moi
       hoi
         lol
            test
         test
       test
    tes"
;
    

<
h2>Original</h2>
<
pre>


echo 
checkSpaces($str);

echo 
"\r\n" $str;

</
pre>
<
h2>Altered</h2>
<
pre>

echo 
removeSpaces($strcheckSpaces($str));

</
pre>
?>


als het sneller kan wil ik dit ook wel horen

[ Bericht 42% gewijzigd door Chandler op 05-12-2007 13:58:44 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55057235
quote:
Op woensdag 5 december 2007 13:35 schreef Chandler het volgende:

[..]

En hier istie dan, als iemand er nog nut voor ziet
[ code verwijderd ]

als het sneller kan wil ik dit ook wel horen
Het kan in ieder geval ietsje korter . Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function ltrimSpaceColumns($in) {
    if(
preg_match_all('|^ +|m'$in$matches)) {
        
$min 0x7fffffff;
        foreach(
$matches[0] as $match) {
            if((
$newMin strlen($match)) < $min) {
                
$min $newMin;
            }
        }
        if(
$min 0) {
            
$in preg_replace('|^ {'.$min.'}|m'''$in);
        }
    }
    return 
$in;
}
?>

Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.

[ Bericht 27% gewijzigd door autocue op 05-12-2007 14:20:12 ]
pi_55066691
Een enorm simpele vraag...

Ik ben bezig een query op te bouwen zodat ik een tekstueele representatie krijg van de laatste 5 acties van elke tabel / tabellengroep. Een voorbeeld:

1
2
3
4
5
6
7
8
9
10
11
SELECT CONCAT('New client: ',c.Name) AS Description, c.DateAdded AS Date
FROM client AS c
WHERE c.DateAdded != 0
ORDER BY c.DateAdded DESC
LIMIT ".$max." 

SELECT CONCAT('Updated client: ',c.Name) AS Description, c.DateUpdated AS Date
FROM client AS c
WHERE c.DateUpdated != 0
ORDER BY c.DateUpdated DESC
LIMIT ".$max." 


Hoe krijg ik dit in PHP mogelijk? Ik wil dus alle 15 queries in één keer runnen en alle records in hetzelfde resultset krijgen.

Ik kan natuurlijk in een loop gaan werken, maar ik vind het het mooist om zo veel als mogelijk in de query te doen, en dat in één keer in een array te stoppen. Of kan dit niet?
pi_55068642
Maak er 1 query van:

1
2
3
4
5
6
7
8
SELECT 
CONCAT('New client: ',c1.Name) AS DescriptionNew, c1.DateAdded,
CONCAT('Updated client: ',c2.Name) AS DescriptionUpdated, c2.DateUpdated,
CONCAT('Bladiebla client: ',c3.Name) AS DescriptionBladiebla, c3.DateBladiebla
FROM client AS c1, client AS c2, client AS c3
WHERE c1.DateAdded != 0 AND c2.DateUpdated != 0 AND c3.DateBladiebla != 0
ORDER BY c.DateAdded DESC, c2.DateUpdated DESC, c3.DateBladiebla DESC
LIMIT $max
pi_55068783
Dat is mogelijk, echter zijn het vijftien queries, met ieder weer één a twéé joins. Dat word te veel rotzooi, nog minder mooi dan alle queries in een array en ze langs te gaan.
pi_55069000
quote:
Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:
Een enorm simpele vraag...
Zoiets?

1
2
3
4
5
SELECT c.Name, c.DateAdded, c.DateUpdated
FROM client AS c
WHERE c.DateAdded != 0 OR c.DateUpdated != 0
ORDER BY (CASE c.DateUpdated WHEN 0 THEN c.DateAdded ELSE c.DateAdded END) DESC
LIMIT ".$max." 


Warom zijn die datum niet gewoon NULL als er geen datum in staat? (Dan kan je ook gewoon IFNULL gebruiken in plaats van die CASE).
Zijn er ook clients die niet toegevoegd zijn (DateAdded = 0)? :?
Is het niet handiger om de DateUpdated bij het toevoegen gelijk te maken aan DateAdded? (Dat sorteert makkelijker en sneller)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55069097
quote:
Op woensdag 5 december 2007 23:25 schreef SuperRembo het volgende:

[..]

Zoiets?
[ code verwijderd ]

Warom zijn die datum niet gewoon NULL als er geen datum in staat? (Dan kan je ook gewoon IFNULL gebruiken in plaats van die CASE).
Zijn er ook clients die niet toegevoegd zijn (DateAdded = 0)?
Is het niet handiger om de DateUpdated bij het toevoegen gelijk te maken aan DateAdded? (Dat sorteert makkelijker en sneller)
Er zijn clients zonder aanmaakdatum, dit is uit een oude systeemmigratie. Om deze uit het logboek te vermijden staat er deze CASE bij.

DateUpdated en DateAdded zijn twee verschillende eigenschappen, en wil ik ook zo in het logboek terug zien. Added voor het toevoegen van het record, updated voor het wijzigen van het record. Wanneer ik deze samen voeg kan ik niet én de laatste vijf toegevoegde clients én de laatste vijf gewijzigde clients tonen. Correct me if I'm wrong.
pi_55069120
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
pi_55069886
quote:
Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
Dan moet je gewoon een union / union all gebruiken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  donderdag 6 december 2007 @ 00:14:46 #181
37634 wobbel
Da WoBBeL King
pi_55069938
Zucht, ik krijg de laatste tijd steeds een 75 jarige man in de winkel die allerlei dingen vraagt over PHP ... werk in een computer winkel, ben geen PHP helpdesk

Kan ik hem niet naar dit topic doorverwijzen?

Hoeft ie bij ons ook de balie niet meer onder te kwijlen, wat ie nu al 2x heeft gedaan
pi_55069956
quote:
Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
quote:
Op donderdag 6 december 2007 00:12 schreef SuperRembo het volgende:

[..]

Dan moet je gewoon een union / union all gebruiken.
Top! Union was exact wat ik zocht. Dank u.

En ja, in de resultset gebruik ik altijd dezelfde kolomnamen: Description en Date.
pi_55070207
quote:
Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:

Ik kan natuurlijk in een loop gaan werken, maar ik vind het het mooist om zo veel als mogelijk in de query te doen, en dat in één keer in een array te stoppen. Of kan dit niet?
Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.

Hoe je bij 15 queries komt is me niet helemaal duidelijk.
pi_55070364
quote:
Op donderdag 6 december 2007 00:31 schreef Light het volgende:

[..]

Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.

Hoe je bij 15 queries komt is me niet helemaal duidelijk.
Het totaalproduct, mocht dat het duidelijker maken. Het product van drie (in de applicatie vijftien) verschillende queries:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
+-----------------------------------+------------+
| Description                       | Date       |
+-----------------------------------+------------+
| Added client x to company y       | 05-12-2007 |
| Added client a to company y       | 04-12-2007 |
| Added client d to company y       | 03-12-2007 |
| Added client c to company y       | 02-12-2007 |
| Added client b to company z       | 02-12-2007 |
| Added company y                   | 01-12-2007 |
| Added company ...                 | 30-10-2007 |
| Added company ...                 | 30-10-2007 |
| Added company ...                 | 11-07-2007 |
| Added company ...                 | 05-03-2007 |
| Changed information on company y  | 02-12-2007 |
+-----------------------------------+------------+


Dus de laatste vijf van elke soort actie. Met de union kan ik het nu eventueel alles door elkaar gooien en op de kolom Date sorteren, al heb ik dat liever niet.

Dit is overigens puur als extra zodat de eindgebruiker bij een foutieve invoer kan kijken waar hij de klant per ongeluk aan toegevoegd heeft. (Nogmaals: Als voorbeeld, dit is namelijk wel afgehandeld in de applicatie zelf).
pi_55073869
Misschien een domme vraag :

Ik wil met een query een soort van rapport opbouwen met gegevens die in een formulier zijn ingevuld. Nu is het zo dat als er een optie niet geselecteerd wordt deze niet in de query moet worden meegenomen. Dit is de query:

1
2
3
4
<?php
$query 
mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE YEAR(datum) = YEAR('$jaar') AND geslacht = '$geslacht'
AND nationaliteit = '$nationaliteit' AND YEAR(geboortedatum) = YEAR('$geboortedatum')"
);
?>


dus als bijv. geslacht niet is ingevuld moet de query dus alle geslachten uit de database selecteren. Er komen nog meer opties in , dus het liefst heb ik alles in 1 query.
pi_55073970
1
2
3
4
5
6
7
8
9
<?php
if(isset($year)){
   
$query_where.=" AND year(datum)='".mysql_real_escape_string($year)."'";
}
if(isset(
$geslacht)){
   
$query_where.=" AND geslacht='".mysql_real_escape_string($geslacht)."'";
}
$query=mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE bla=bla".$query_where);
?>


[ Bericht 26% gewijzigd door Tuvai.net op 06-12-2007 14:03:25 ]
pi_55074068
pi_55074202
pi_55076204
quote:
Op woensdag 5 december 2007 14:13 schreef autocue het volgende:

[..]

Het kan in ieder geval ietsje korter . Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
[ code verwijderd ]

Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
Klopt, die van mij had nog iets beter gekund
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 6 december 2007 @ 13:04:12 #190
84926 WyriHaximus
Release the hounds smithers!
pi_55076604
quote:
Op donderdag 6 december 2007 11:03 schreef Farenji het volgende:
[ link | afbeelding ]
die is en blijft goed !
phluphy for president!
pi_55077405
quote:
Op donderdag 6 december 2007 10:58 schreef Tuvai.net het volgende:

[ code verwijderd ]
bedankt
pi_55085666
quote:
Op woensdag 5 december 2007 14:13 schreef autocue het volgende:

[..]

Het kan in ieder geval ietsje korter :P. Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
[ code verwijderd ]

Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je code

(voorbeeld)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$str = "    hello world
    moi
       hoi
         lol
            test
         test
       test
    tes

    hello world
    moi
       hoi
         lol
            test
         test
       test
    tes";


Nu zie je opeens een 'lege' regel.. die moet je dus overslaan? maar hoe kan ik die afvangen? :D

";
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55086375
Matchen op een dubbele \n, dus \n\n.
pi_55086587
quote:
Op donderdag 6 december 2007 20:47 schreef HuHu het volgende:
Matchen op een dubbele \n, dus \n\n.
Wat dan als er alleen een spatie op een regel staat, dan matcht ie al niet meer maar het is wel een lege regel.

Gewoon per regel testen met de regexp /^\s*\n$/
pi_55089642
quote:
Op woensdag 5 december 2007 11:30 schreef JortK het volgende:

[..]

Dat wordt volgens mij een lastig verhaal
Ik heb uit mijn css een regeltje bovenaan weggehaald waar iets over utf-8 stond.. Dat heb ik er uit gehaald. Nu zie ik geen problemen meer.

Het rare is dat hij hem soms wel goed weer geeft, en soms met rare vraagtekentjes (FF) of blokjes (IE). Er veranderd ondertussen niks in de database of in de html..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_55091998
quote:
Op donderdag 6 december 2007 20:17 schreef Chandler het volgende:

[..]

Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je code

(voorbeeld)
[ code verwijderd ]

Nu zie je opeens een 'lege' regel.. die moet je dus overslaan? maar hoe kan ik die afvangen?

";
Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function ltrimSpaceColumns($in) {
    if(
preg_match_all('|^( *)\S|m'$in$matches)) {
        
$min 0x7fffffff;
        while((
$pair each($matches[1])) && $min 0) {
            if((
$newMin strlen($pair[1])) < $min) {
                
$min $newMin;
            }
        }
        if(
$min 0) {
            
$in preg_replace('|^ {'.$min.'}|m'''$in);
        }
    }
    return 
$in;
}
?>
pi_55094681
quote:
Op vrijdag 7 december 2007 00:41 schreef autocue het volgende:

[..]

Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .
[ code verwijderd ]
Werkt idd helemaal perfect, nu heb ik nog 1 andere vraag.

Voor een site van mij wil ik scripts toevoegen en deze net zoals op FOK met code highlight aan gebruikers laten zien. Echter copy en plak ik ook wel eens functies waarbij dus geen <?php en ?> voor en na staan. Deze wil ik dus graag toevoegen maar dat gaat steeds fout m.b.t. een controle.

Nu vraag ik niet om code; maar meer om het idee, hoe kan ik het beste checken of deze aan het begin/end staan.
$start = "<?php";
$end = "?>";

Nu doe ik substr($str, 0, strlen($start)) en controlleer het met $start (!=) en doe het zelfde met end, maar dan op het eind. Echter krijg ik toch steeds een dubbele <?php etc als ik de code opsla!

Anyone?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 7 december 2007 @ 09:47:02 #198
159635 Spike1506
NullPointerException
pi_55095176
* Spike1506 mompelt iets over regular-expressions.
pi_55096187
* Chandler verstopt zich, snapt amper een bal van regex...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55096770
quote:
Op vrijdag 7 december 2007 10:37 schreef Chandler het volgende:
* Chandler verstopt zich, snapt amper een bal van regex...
Daar zou ik dan maar eens wat aan doen, een programmeur kan niet zonder.
Er zijn zat tutorials te vinden.
  vrijdag 7 december 2007 @ 11:49:26 #201
107951 JortK
Immer kwaliteitsposts
pi_55097846
quote:
Op vrijdag 7 december 2007 11:05 schreef Farenji het volgende:

[..]

Daar zou ik dan maar eens wat aan doen, een programmeur kan niet zonder.
Er zijn zat tutorials te vinden.
Post eens wat goede dan
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')