Wat voor oud brak mormel gebruik je als server dat je geen nesting kunt toepassen? o|Oquote:Op vrijdag 30 november 2007 13:24 schreef Chandler het volgende:
Ik kan helaas geen select in een query gebruiken *(geen query in queries)*
1 2 3 | FROM gegevens a LEFT JOIN gegevens b ON a.titel = b.titel WHERE a.naam = 'land' AND a.gegeven = 'NL' AND b.naam = 'stad' |
Hmm... ik gebruik feitelijk niet de $_POST array, maar een opgeschoonde array, maar het idee is goedquote: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.
Opzet is inderdaad goed, maar krijg ook brussel ed steden terugquote: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?
Het is mogelijk dat je niet nederlandse steden terug krijgt als je titel bij meerdere landen hoort.quote:Op vrijdag 30 november 2007 20:59 schreef Chandler het volgende:
[..]
Opzet is inderdaad goed, maar krijg ook brussel ed steden terugstom database opzet
waar ik helaas niets aan kan veranderen
Maar tnx, ik ga het maar even omslachtig doen met 2 queries!
Haal die Group By er eens uit?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 resultatenwat doe ik fout?
Zekers, er werken meer dan 100 sites met deze database structuur!quote:Op zaterdag 1 december 2007 09:29 schreef Farenji het volgende:
Is de data in de db wel ok?
Nee, ik had het niet getest.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
1 2 3 4 5 6 | FROM database d1 INNER JOIN database d2 ON d2.naam = d1.naam WHERE d1.property = 'stad' AND d2.property = 'land' AND d2.value = 'NL' |
Dat kan het probleem niet zijn want je gebruikt d2.property = 'land' AND d2.value = 'NL', dus spreektaal NL voldoet daar niet aan.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
d2.property = 'land' AND d2.value = 'NL' die staan dus op dezelfde regel.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?)
1 2 3 4 5 6 | `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; |
1 2 3 4 5 | FROM db1 WHERE property = 'land' GROUP BY naam HAVING Count(*) > 1 |
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?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..
ja maar hoeveel seconden heeft een maand? februari heeft er minder dan decemberquote: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?
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.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
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 | 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); } ?> |
Precies, en als je het op de dag af weet is het laatste stukkie een makkiequote: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.
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 mequote: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 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 wilquote: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.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
ik zou zeggen probeer mijn code eens.. lijkt waterdichtquote: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.
Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?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
nee want hij berekent voor elke maand het aantal dagen gebaseerd op maand en jaar, dus in dat geval rekent hij voor februari 29 dagenquote:Op zaterdag 1 december 2007 22:09 schreef WyriHaximus het volgende:
[..]
Geeft het geen problemen als je met schrikkeljaren aan de gang gaat?
Mooi stukje code om ff te bewaren dusquote: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
ja leuk als je bv iemands exacte leeftijd wil berekenen ofzoquote:Op zaterdag 1 december 2007 22:15 schreef WyriHaximus het volgende:
[..]
Mooi stukje code om ff te bewaren dus.
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 isquote:Op zaterdag 1 december 2007 22:15 schreef Schepseltje het volgende:
[..]
ja leuk als je bv iemands exacte leeftijd wil berekenen ofzo
Wat ik daarmee bedoelde was een geval als dit:quote:Op zaterdag 1 december 2007 22:06 schreef Schepseltje het volgende:
lijkt waterdicht
bij 02/02/2003 - 01/03/2004 zegt iequote: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)
Nou de oplossing met loop is ranzig/lomp. En de 'if ($months>11) { $months = 0; $years++; }' check zou na '$month++' moeten staan.quote:Op zaterdag 1 december 2007 23:14 schreef Schepseltje het volgende:
als iemand nog een fout ziet hoor ik het wel..
1 2 3 4 5 6 7 8 | for (; ; ) { if ($i > 10) { break; } echo $i; $i++; } |
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 | { 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); } |
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 | /* 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) && ($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) &&($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'.}"); } } ?> |
1 2 3 | $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..)" ?> |
nee, elke loop is voor een maand, en bij elke maand moet hij opnieuw kijken hoeveel dagen die maand heeftquote: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.
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 | ltrim() ?> |
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 | printf('%2f', $bedrag); ?> |
number_format();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 4 5 6 7 8 | $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" ?> |
Probeer een van de twee eensquote:Op maandag 3 december 2007 17:07 schreef DaFrenk het volgende:
Oké! Bedankt.. welke van de twee moet ik nu gebruiken?
1 2 3 4 5 6 7 8 9 | news.item.edit.php news.item.delete.php news.category.insert.php news.category.edit.php news.category.delete.php etc. |
1 2 | news.category.php |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |