Nou!quote:Op dinsdag 20 februari 2007 08:14 schreef Swetsenegger het volgende:
Tering wat veel PHP topics
Zal waarschijnlijk niet aan ons liggenquote:Op dinsdag 20 februari 2007 08:14 schreef Swetsenegger het volgende:
Tering wat veel PHP topics
1 |
trek hem eerst door een regexp waarbij je alle whitespace karakters vervang door 1 enkele spatie (of een puntkomma of een andere mooie delimiter)quote:Op dinsdag 20 februari 2007 10:53 schreef Geqxon het volgende:
Ik heb weer een leuke
[ code verwijderd ]
Hoe ga ik van deze string alle stukken los eruit halen? Ik heb een explode gepakt met als delimiter een "t", echter kreeg ik als resultaat... dat er niks ge-explode was. Als delimiter een " " pakken (een tab gecopy/paste) zorgde ervoor dat er slechts delen werden ge-explode.
Het formaat:Het begint met een getal dat eindigd op een punt , dan een tab. Daarna twee cijfers, gescheiden door een dash, en als het tweede getal uit 1 digit bestaat zit er nog een spatie tussen De productie-code, is altijd aan één stuk, en vaak van verschillende lengtes. Een datum, die ik overigens ook in $linedate heb zitten, en makkelijker eruit te halen is Een html-code, met een anchor erin. Ook dit is consistent.
quote z'n post en kijk naar zijn "t"quote:Op dinsdag 20 februari 2007 10:53 schreef GI het volgende:
exploden op "t"parser doet raar ik wou zeggen exploden op slasht
Ik heb hard gegoogled, en hard nagedacht, en het enige wat ik vond was een pagina waar ik voor moest betalen. Kun je mij misschien een klein beetje op weg helpen, dan kan ik de rest denk ik zelf welquote:Op dinsdag 20 februari 2007 11:02 schreef Swetsenegger het volgende:
[..]
trek hem eerst door een regexp waarbij je alle whitespace karakters vervang door 1 enkele spatie (of een puntkomma of een andere mooie delimiter)
1 2 3 4 | $lineitems = preg_split ("/s+/", $line); echo "tt<td>". print_r($lineitems) . "</td>n"; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ( [0] => [1] => 91. [2] => 5-11 [3] => 5ACX06 [4] => 18 [5] => Feb [6] => 07 [7] => <a [8] => target="_blank" [9] => href="http://www.tv.com/family-guy/the-tan-aquatic-with-steve-zissou/episode/904191/summary.html">The [10] => Tan [11] => Aquatic [12] => with [13] => Steve [14] => Zissou</a> [15] => ) |
1 2 3 4 | $lineitems = preg_split ("/t/", $line); echo "tt<td>". print_r($lineitems) . "</td>n"; ?> |
1 2 3 4 5 | ( [0] => 91. 5-11 5ACX06 18 Feb 07 <a target="_blank" href="http://www.tv.com/family-guy/the-tan-aquatic-with-steve-zissou/episode/904191/summary.html">The Tan Aquatic with Steve Zissou</a> ) |
dan is het inderdaad niet door tabs gescheiden.quote:Op dinsdag 20 februari 2007 11:35 schreef Geqxon het volgende:
Aannemend dat daar een backslash voor de t hoort, krijg ik deze mooie output:
[ code verwijderd ]
Aangezien ik alleen de het "5-11" deel nodig heb, zat ik ook even te kijken naar een regex die kijkt naar wat tussen de whitespace en de - zit ,en wat tussen de - en de whitespace.
1 2 3 4 5 6 | $line = preg_replace('/[<>]/', ' ', $line); # < en > zijn irritant :) $line = preg_replace('/(^s+|s*$)/', '', $line); # Remove left over white space chars.. $line = preg_split('/s+/', $line); print_r($line); ?> |
Regexps zijn leuke dingen, maar een regexp gebruiken voor iets als een simpele trim() is een behoorlijke over-kill.quote:Op dinsdag 20 februari 2007 13:59 schreef slakkie het volgende:
Ik zou het zo gedaan hebben, beetje meer perl georienteerd.
[ code verwijderd ]
Ik kom van perl, wij kennen de trim functie niet. Zie hier.quote:Op dinsdag 20 februari 2007 17:49 schreef SuperRembo het volgende:
[..]
Regexps zijn leuke dingen, maar een regexp gebruiken voor iets als een simpele trim() is een behoorlijke over-kill.
integreer maar naar onze standaarden of we halen rita erbijquote:Op dinsdag 20 februari 2007 20:10 schreef slakkie het volgende:
[..]
Ik kom van perl, wij kennen de trim functie niet. Zie hier.
http://en.wikipedia.org/wiki/Trim_(programming)#Perl
Wij doen het zo
Ik denk dat je een denkfout maak. Leg eens uit waarom je 2 maal hetzelfde script wil includen?quote:Op dinsdag 20 februari 2007 22:07 schreef PekkeMan het volgende:
ah ik zie dat er ook een speciaal topic is voor php problemen
ik had al een topic aangemaakt: php bestand dubbel-includen probleempje
maar ik blijf nog steeds met het probleem zitten.
ik wil op eenzelfde pagina 2 keer hetzelfde script includen, maar dat wil niet, ook niet met include_once. Hij maakt de pagina niet af op de regel waar de 2e include staat.
iemand een oplossing?
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 | // bestand waar de berichten in komen te staan $file = "reactie.txt"; // maximaal aantal berichten wat bewaard wordt $max = 25; // escapefunctie function s($val) { $val = nl2br(htmlspecialchars($val)); return get_magic_quotes_gpc() ? stripslashes($val) : $val; } // kijken of het bestand reactie.txt al bestaat if(file_exists($file)) { // zo ja, includen include ($file); } else { // zo niet, maak dan de array $messages bekend $messages = array(); } // kijken of er wel berichten zijn... if(count($messages) > 0) { echo "<a href="xxxxx/reacties.php' target='_blank'>". count($messages) ." reactie(s)</a>"; } else { echo "<a href='xxxxxx/reacties.php' target='_blank'>Geen reacties!</a>"; exit; } ?> |
Ja, dat komt door jouquote:Op dinsdag 20 februari 2007 08:14 schreef Swetsenegger het volgende:
Tering wat veel PHP topics
Dat lijkt misschien overzichtelijk, maar als je met 50 artikelen aan komt dan is het dat niet meer.quote:Op dinsdag 20 februari 2007 23:34 schreef PekkeMan het volgende:
bij elk artikel wil ik dit (reactie)scriptje plaatsen. Het script laat zien hoeveel reacties er zijn. Deze heb ik dan weer opgeslagen onder verschilledne mappen map01, 02 etc. per artikel01, artikel02, 1 map met reactiescript en database in de vorm van txt bestand. (wel erg omslachtig, maar ik kan geen betere en voor mij overzichtelijke reactiescripts vinden)
overzichtelijk
artikel01.php - map01 (met daarin database, reactiescript, script dat laat zien op artikel01.php hoeveel reacties er zijn(deze include ik))
artikel012php - map02 (met daarin database, reactiescript, script dat laat zien op artikel02.php hoeveel reacties er zijn(deze include ik))
Aan het script kan ik zo niets vreemds zien. Of ik kijk er gewoon overheen, dat kan ook.quote:en de geincludeerde files zijn precies hetzelfde verder. Script hieronder. Ik begin te vermoeden dat t script dit misschien tegenhoudt, maar waarom, geen idee![]()
[ code verwijderd ]
Ja hoor, kijk maar eens op http://nl2.php.net/manual/en/security.magicquotes.disabling.phpquote:Op woensdag 21 februari 2007 15:26 schreef Tijn het volgende:
Ik ben een website aan het maken op een webhost waar magic quotes aanstaat. Behoorlijk irritant, al m'n POST-data enzo heeft nu allemaal rare slashes erin, zonder dat ik daarop zit te wachten.
Ik kan wel constant m'n data door een stripslahes() halen, maar is er misschien een manier om magic quotes gewoon uit te zetten voor mijn website?
Bedanktquote:Op woensdag 21 februari 2007 15:39 schreef Light het volgende:
[..]
Ja hoor, kijk maar eens op http://nl2.php.net/manual/en/security.magicquotes.disabling.php
1 2 3 | preg_replace("#[/*](.*?)[/*]#", "<li>\2</li>", $tekst); ?> |
nee hij wil alles tussenquote:Op woensdag 21 februari 2007 22:12 schreef Geqxon het volgende:
Wat is het resultaat dat je bereiken wilt? Backslash-twee ?
Deze zoektquote:Op woensdag 21 februari 2007 22:03 schreef super-muffin het volgende:
Waarom word dit niet gevonden in mijn preg_replace?
Dat moet \1 zijn.quote:Op woensdag 21 februari 2007 22:12 schreef Geqxon het volgende:
Wat is het resultaat dat je bereiken wilt? Backslash-twee ?
ik heb de functie op php.net wat aangepast. Hie komen prachtige thumbs uitquote:Op woensdag 21 februari 2007 22:17 schreef gieling het volgende:
Hoi, ik verklein met een script een afbeelding d.m.v. o.a. de imagecopyresampled-functie. Alleen is het probleem dat de thumbnail wat vaag wordt t.o.v. het origineel. Komt dit door het verkleinen van de foto of door het (verkeerd gebruik?) van de bovengenoemde functie?
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 | function resize_photo($new_name,$new_width,$new_height,$filename){ // Content type header('Content-type: image/jpeg'); // nieuwe resolutie bepalen list($width_orig, $height_orig) = getimagesize($filename); if(empty($new_height)){ $new_height = round(($new_width / $width_orig) * $height_orig); }elseif(empty($new_width)){ $new_width = round(($new_height / $height_orig) * $width_orig); }elseif ($new_width && ($width_orig < $height_orig)) { $new_width = ($new_height / $height_orig) * $width_orig; }else{ $new_height = ($new_width / $width_orig) * $height_orig; } // Resample $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig); // Output imagejpeg($image_p, $new_name, 80); imagedestroy($image); return array($new_width,$new_height); } ?> |
Verbaast me dat ze vaag worden. Ligt natuurlijk ook aan het origineel. En in de volgende regel is die 80 de compressie he. als je die op 100 zet zal de kwaliteit beter wordenquote:Op woensdag 21 februari 2007 22:38 schreef gieling het volgende:
Mm - tnx! Maar krijg in principe hetzelfde resultaat dus denk dat het door het verkleinen komt! Tnx iig ^O^
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if($_SERVER['REQUEST_METHOD'] == 'GET') { $result0 = "SELECT * FROM link WHERE MATCH(trefwoorden,beschrijving,titel) AGAINST('+$trefwoord*' IN BOOLEAN MODE) ORDER BY rank DESC"; $query0 = mysql_query($result0) or die("Er is iets fout gegaan!"); $resultaten0 = mysql_num_rows($query0); $pages=intval($resultaten0/$count); $result = "SELECT * FROM link WHERE MATCH(trefwoorden,beschrijving,titel) AGAINST('+$trefwoord*' IN BOOLEAN MODE) ORDER BY rank DESC LIMIT $page,$count"; $query = mysql_query($result) or die("Er is iets fout gegaan!"); mysql_close(); ?> |
Het is wel eens eerder aangekaart in deze reeks dat de resample-functie van GD een minder scherp resultaat oplevert dan wat bijvoorbeeld Photoshop doet met z'n bicubic algoritme.quote:Op donderdag 22 februari 2007 09:47 schreef Swetsenegger het volgende:
[..]
Verbaast me dat ze vaag worden.
http://dev.mysql.com/doc/refman/5.0/en/replace.htmlquote:Op donderdag 22 februari 2007 13:49 schreef Geqxon het volgende:
Ik hou het kort: Is het mogelijk binnen 1 query een item binnen mijn MySQL database te verwijderen en te inserten, en is dat volgens de ongeschreven regels 'netjes'?
Ja, dat kan met UPDATEquote:Op donderdag 22 februari 2007 13:49 schreef Geqxon het volgende:
Ik hou het kort: Is het mogelijk binnen 1 query een item binnen mijn MySQL database te verwijderen en te inserten, en is dat volgens de ongeschreven regels 'netjes'?
Dat is een mooie, enige puntje is dat hij het niet altijd moet replacen. Op het moment voert hij eerst een DELETE query uit, waarbij er enkele unieke eigenschappen moeten matchen (ik werk dus helaas niet op ID). Daarna een Insert, met dezelfde unieke eigenschappen, en nog enkele andere gegevens.quote:Op donderdag 22 februari 2007 14:08 schreef GI het volgende:
[..]
http://dev.mysql.com/doc/refman/5.0/en/replace.html
waarom wil je dit in 1 query doen? Voordat het qua performance wat uitmaakt moet je het wel heel veel records updatenquote:Op donderdag 22 februari 2007 14:18 schreef Geqxon het volgende:
[..]
Dat is een mooie, enige puntje is dat hij het niet altijd moet replacen. Op het moment voert hij eerst een DELETE query uit, waarbij er enkele unieke eigenschappen moeten matchen (ik werk dus helaas niet op ID). Daarna een Insert, met dezelfde unieke eigenschappen, en nog enkele andere gegevens.
hoe wordt de XML ingelezen?quote:Op donderdag 22 februari 2007 16:58 schreef Tiemie het volgende:
nu wil ik deze xml opnieuw inladen maar als ik dan document.flash_movie.Play(); doe laad ie dezelfde waarden in, als ik op F5 druk is het wel aangepast.
Schoonheidsperfectiequote:Op donderdag 22 februari 2007 23:32 schreef Xcalibur het volgende:
[..]
waarom wil je dit in 1 query doen? Voordat het qua performance wat uitmaakt moet je het wel heel veel records updaten
Gewoon een query maken die als extra eis meeneemt dat de data niet ouder dan 24 uur mag zijn. Als je de datum in een DATETIME of een Unix Timestamp (unsigned int) opslaat dan moet dat lukken.quote:Op vrijdag 23 februari 2007 00:12 schreef Geqxon het volgende:
Het gaat bij mij om een cache-script. Om het script uit te leggen:Eerst kijken of de gezochte data in de database bestaat, en kijken hoe recent deze data is. Als de data gevonden is, en jonger dan 24 uur is >>> Laden Als de data niet gevonden is, of ouder dan 24 uur >>> Uit een exterene website laden, de delete query gevolgd door de insert query om de vers opgehaalde data in de database te stoppen.
Werkt prima, maar imho wil ik het net ietsjes strakker hebben. Vandaar. Maar ik zie al een optie, namelijk de check om te kijken of de data uberhaupt wel bestaat (mysql_num_rows), gaat goed komen.
dan heb je wel een extra query nodig om de data ouder dan 24 uur op te zoeken en weg te gooien...quote:Op vrijdag 23 februari 2007 08:37 schreef Light het volgende:
Gewoon een query maken die als extra eis meeneemt dat de data niet ouder dan 24 uur mag zijn. Als je de datum in een DATETIME of een Unix Timestamp (unsigned int) opslaat dan moet dat lukken.
Draai die 'opschoonquery' 1 keer per dag ofzo zou ik zeggen. Dat maakt het allemaal een stuk eenvoudiger denk ik.quote:Op vrijdag 23 februari 2007 09:11 schreef Xcalibur het volgende:
[..]
dan heb je wel een extra query nodig om de data ouder dan 24 uur op te zoeken en weg te gooien...
Tenzij je die niet weggooit natuurlijk
1 2 3 | " WHERE Expires > " . time() . " ?> |
quote:Op vrijdag 23 februari 2007 10:08 schreef Geqxon het volgende:
Omdat "time()" de huidige waarde in de vorm van een UNIX timestamp presenteert. Het veld "Expires" is dan ook een doodsimpele integer van 11 tekens lang, in plaats van het imho bloated MySQL date format.
Afhankelijk van hoe je je CMS in elkaar hebt gezet kun je ervoor kiezen om twee opeenvolgende line breaks om te toveren in een nieuwe paragraaf? Dan moet je natuurlijk wel de paragrafen tekst goed bepalen, omdat je daar de <p>...</p> omheen moet zettenquote:Op vrijdag 23 februari 2007 10:56 schreef super-muffin het volgende:
Ik ben bezig met een soort van CMS, maar het lukt me niet om paragrafen netjes te krijgen. Ik kan wel nl2br gebruiken, maar ik heb liever dat er van zelf paragrafen worden gemaakt van de nieuwe lijnen zonder zelf html of ubb in te voeren.
Ieder zijn ding. Ik werk liever gewoon met timestamps als integers, universeel. Pas bij het tonen in de browser zet ik het in DD-MM-YYYY formaat.quote:Op vrijdag 23 februari 2007 11:06 schreef Swetsenegger het volgende:
[..]
Goh er zitten ook - in je database veld... wat bloated. En je kan er ongeveer 1000 keer handiger mee uit de voeten.
Een integer van 11 tekens lang?quote:Op vrijdag 23 februari 2007 10:08 schreef Geqxon het volgende:
Het veld "Expires" is dan ook een doodsimpele integer van 11 tekens lang
Niet eens, MySQL slaat tijd en datum intern ook op aan de hand van timestamps. Op het moment dat je een SELECT doet of de waarden vergelijkt aan de hand van zo'n datum/tijd dan zet MySQL de boel automagisch om naar een bepaalde representatie.quote:Op vrijdag 23 februari 2007 11:06 schreef Swetsenegger het volgende:
[..]
Goh er zitten ook - in je database veld... wat bloated. En je kan er ongeveer 1000 keer handiger mee uit de voeten.
Laat eens wat code zien? Dan weten we ook meteen hoe je je cookies probeert op te slaan. Er is niet zoiets als het activeren van cookies in PHP, aangezien het in feite een HTTP-header is.quote:Op vrijdag 23 februari 2007 19:01 schreef Wiehoe het volgende:
Nu moet ik ineens voor school bezig met PHP een aantal oprdachten maken waaronder de basis van cookies. Wanneer ik een script maak met een cookie er in, en het in xampp laad gebeurd er niets. Weet iemand toevallig of cookies aangezet moeten worden in xampp ofzo?
Ik heb zelf mijn internet explorer al ingesteld dat er een prompt komt wanneer een cookie opgeslagen zou moeten worden. Maar hij prompt ook niet.
1 2 3 4 5 6 7 | $count++; setcookie('count', $count); error_reporting(E_ALL); echo($count); ?> |
Allereerst zul je de superglobal $_COOKIE['count'] moeten gebruiken om de cookie op te vragen. Verder is het slim om een expire time op te geven in setcookie, zoiets als dit:quote:Op vrijdag 23 februari 2007 19:54 schreef Wiehoe het volgende:
[ code verwijderd ]
Dit moet dus oplopen volgens zo'n php boek.
1 2 3 4 5 6 7 | $count = $_COOKIE['count'] + 1; setcookie('count', $count, time() + 3600); error_reporting(E_ALL); echo $_COOKIE['count']; ?> |
Daarom ben ik ook absoluut geen fan van boeken om een taal te leren, zeker niet als de taal zelf in constante ontwikkeling is.quote:Op vrijdag 23 februari 2007 20:02 schreef Wiehoe het volgende:
Ik vind het overigens maar raar dat het dan in zo'n boek helemaal verkeerd staat beschreven.
nog een reden om gewoon datetime te gebruiken.quote:Op vrijdag 23 februari 2007 17:52 schreef JeRa het volgende:
[..]
Niet eens, MySQL slaat tijd en datum intern ook op aan de hand van timestamps. Op het moment dat je een SELECT doet of de waarden vergelijkt aan de hand van zo'n datum/tijd dan zet MySQL de boel automagisch om naar een bepaalde representatie.
Niets méér, wel makkelijker met de datesub functie van mysql en dergelijke.quote:Verder ben ik benieuwd naar wat jij denkt meer te kunnen met een DATETIME / TIMESTAMP veld dan met een eigen timestamp die pas in de frontend voor presentatie wordt omgezet?
Is het niet zo dat met INT(11) ik elke keer 11 tekens aan geheugen reserveer?quote:Op vrijdag 23 februari 2007 17:50 schreef JeRa het volgende:
[..]
Een integer van 11 tekens lang?
Een INT(11) betekent niets anders dan dat je een integer veld hebt die bij een geactiveerde optie ZEROFILL een getal weergeeft dat wordt geprepad met nullen totdat het 11 nummers bevat. Zonder die optie betekent die 11 helemaal niéts.
Daarom is het ook zo dat ik het persoonlijk fijner vind. Zo maakt phpMyAdmin bv. er weer "03 December 2007" van, moet ik het bij query's weer omzetten met MYSQL_DATEFORMAT (oid) enz. enz. Ik moet bekennen dat ik er al lang niet mee gewerkt hebt, dus ik kan niet concreet zijn met mijn voorbeelden.quote:Op vrijdag 23 februari 2007 17:52 schreef JeRa het volgende:
[..]
Niet eens, MySQL slaat tijd en datum intern ook op aan de hand van timestamps. Op het moment dat je een SELECT doet of de waarden vergelijkt aan de hand van zo'n datum/tijd dan zet MySQL de boel automagisch om naar een bepaalde representatie.
Verder ben ik benieuwd naar wat jij denkt meer te kunnen met een DATETIME / TIMESTAMP veld dan met een eigen timestamp die pas in de frontend voor presentatie wordt omgezet?
Nadeel is wel dat MySQL (vaak overbodige) informatie opslaat zoals milliseconden en timezones en dus meer schijfruimte nodig heeft om iets op te slaan wat je waarschijnlijk nooit nodig zult hebben. Als je veel om performance geeft en je ontzettend veel records hebt (miljoenen in mijn geval) wil je de DATETIME toch echt vermijdenquote:Op vrijdag 23 februari 2007 20:53 schreef Swetsenegger het volgende:
[..]
nog een reden om gewoon datetime te gebruiken.
Dat is relatief, het ligt er maar net aan waar je de bewerkingen doet. Ik vind het persoonlijk veel gemakkelijker om alle tijdsberekeningen met unix epoch timestamps in PHP te doen en MySQL de resultaten daarvan te voeren in plaats van date/time strings aan MySQL door te geven. 90% van de dingen die ik zo doe gaan gemakkelijker (en ook duidelijker in de code) door timestamps te gebruiken, en voor die overige 10% gebruik ik timestamp -> datetime conversies in MySQL (dezelfde die MySQL impliciet toch al zou gebruiken als je DATETIME gebruikt)quote:[..]
Niets méér, wel makkelijker met de datesub functie van mysql en dergelijke.
Bij lange na niet, een signed of unsigned integer in MySQL neemt gewoon 4 bytes in beslagquote:Op vrijdag 23 februari 2007 20:56 schreef Geqxon het volgende:
[..]
Is het niet zo dat met INT(11) ik elke keer 11 tekens aan geheugen reserveer?
Ik ben ook iemand van presentatie in de presentatielaag en niet in de opslaglaag, dus ik zou ook voor de timestamps gaan. Een RDBMS zie ik als een handig systeem om snel informatie aan elkaar te koppelen, maar wat ik vervolgens met die informatie doe laat ik toch echt aan de presentatielaag overquote:[..]
Daarom is het ook zo dat ik het persoonlijk fijner vind. Zo maakt phpMyAdmin bv. er weer "03 December 2007" van, moet ik het bij query's weer omzetten met MYSQL_DATEFORMAT (oid) enz. enz. Ik moet bekennen dat ik er al lang niet mee gewerkt hebt, dus ik kan niet concreet zijn met mijn voorbeelden.
Ik heb er in het verleden redelijk wat last van gehad, vandaar dat ik het nu weer gewoon met integers doe, en het pas in de frontend omzet. Zo kan ik er ook makkelijk mee rekenen
Wat mij van Oracle SQL bij staat, is dat als ik een Varchar2(30) in mijn database heb, dat hij dan altijd 30 tekens aan geheugen inneemt, ongeacht wat er in staat. Daarom is het juist zo belangrijk dat je kijkt welke data in je database komt, en hoe groot dat normaliter is. Maar dat is zo te horen dus niet met MySQL integersquote:Op vrijdag 23 februari 2007 21:02 schreef JeRa het volgende:
[..]
Bij lange na niet, een signed of unsigned integer in MySQL neemt gewoon 4 bytes in beslagdie 11 is alléén voor ZEROFILL, that's it.
Daar gaat iets helemaal foutquote:Op vrijdag 23 februari 2007 21:07 schreef Geqxon het volgende:
[..]
Wat mij van Oracle SQL bij staat, is dat als ik een Varchar2(30) in mijn database heb, dat hij dan altijd 30 tekens aan geheugen inneemt, ongeacht wat er in staat. Daarom is het juist zo belangrijk dat je kijkt welke data in je database komt, en hoe groot dat normaliter is. Maar dat is zo te horen dus niet met integers
Lees de TT nog eens JeRa vooral na de blokhakenquote:Op vrijdag 23 februari 2007 21:00 schreef JeRa het volgende:
[..]
Nadeel is wel dat MySQL (vaak overbodige) informatie opslaat zoals milliseconden en timezones en dus meer schijfruimte nodig heeft om iets op te slaan wat je waarschijnlijk nooit nodig zult hebben. Als je veel om performance geeft en je ontzettend veel records hebt (miljoenen in mijn geval) wil je de DATETIME toch echt vermijden
Voordat ik wist dat mysql van die handige datum functies had deed ik ook zo ingewikkeldquote:Dat is relatief, het ligt er maar net aan waar je de bewerkingen doet. Ik vind het persoonlijk veel gemakkelijker om alle tijdsberekeningen met unix epoch timestamps in PHP te doen en MySQL de resultaten daarvan te voeren in plaats van date/time strings aan MySQL door te geven. 90% van de dingen die ik zo doe gaan gemakkelijker (en ook duidelijker in de code) door timestamps te gebruiken, en voor die overige 10% gebruik ik timestamp -> datetime conversies in MySQL (dezelfde die MySQL impliciet toch al zou gebruiken als je DATETIME gebruikt)
Waarom laat je MySQL niet meteen alle HTML genereren?quote:Op vrijdag 23 februari 2007 21:17 schreef Swetsenegger het volgende:
[..]
Lees de TT nog eens JeRa vooral na de blokhaken
[..]
Voordat ik wist dat mysql van die handige datum functies had deed ik ook zo ingewikkeld
kom kom... beetje nuanceren mag wel. De datum functies van mysql zijn gewoon verdomd handig voor wat de gemiddelde hobby-ist er mee doet.quote:Op vrijdag 23 februari 2007 21:20 schreef JeRa het volgende:
[..]
Waarom laat je MySQL niet meteen alle HTML genereren?
De functies die PHP biedt leveren ook een scala aan mogelijkheden, de vraag is waarom je de datum/tijd representatie in de opslaglaag al wilt hebben en niet pas bij de presentatie. Enerzijds valt er wat voor te zeggen voor het type data (je gebruikt een veld met een bepaald type om data met een bepaald type op te slaan) maar anderzijds is het voor veel dummies een stuk gemakkelijker om simpelweg te vergelijken tussen secondes aangezien ontzettend veel elementen in PHP dit ook vereisenquote:Op vrijdag 23 februari 2007 21:23 schreef Swetsenegger het volgende:
[..]
kom kom... beetje nuanceren mag wel. De datum functies van mysql zijn gewoon verdomd handig voor wat de gemiddelde hobby-ist er mee doet.
Ik gebruik het tot op heden alleen om zaken van een dag geleden (of een week of een maand) uit de database te trekken. dan is datesub gewoon verdomd handig. Ik hoef niet eerst in php de tijd te definieren voordat ik iets uit mijn db trek.quote:Op vrijdag 23 februari 2007 21:30 schreef JeRa het volgende:
[..]
De functies die PHP biedt leveren ook een scala aan mogelijkheden, de vraag is waarom je de datum/tijd representatie in de opslaglaag al wilt hebben en niet pas bij de presentatie. Enerzijds valt er wat voor te zeggen voor het type data (je gebruikt een veld met een bepaald type om data met een bepaald type op te slaan) maar anderzijds is het voor veel dummies een stuk gemakkelijker om simpelweg te vergelijken tussen secondes aangezien ontzettend veel elementen in PHP dit ook vereisen
Nee, in plaats daarvan definiëer je 'm in de opslaglaag. Ik zie geen verschil.quote:Op vrijdag 23 februari 2007 21:35 schreef Swetsenegger het volgende:
[..]
Ik gebruik het tot op heden alleen om zaken van een dag geleden (of een week of een maand) uit de database te trekken. dan is datesub gewoon verdomd handig. Ik hoef niet eerst in php de tijd te definieren voordat ik iets uit mijn db trek.
Het bespaart me moeite want met een timestamp moet ik nadenken enquote:Op vrijdag 23 februari 2007 21:46 schreef JeRa het volgende:
[..]
Nee, in plaats daarvan definiëer je 'm in de opslaglaag. Ik zie geen verschil.
Niet... dat gekut met tijd in php is gewoon ranzig.quote:Op vrijdag 23 februari 2007 21:57 schreef Geqxon het volgende:
Nu we toch over timestamps aan het miepen zijn
[ code verwijderd ]
Het resultaat? De timestamp van vandaag, exact op 00:00:00. Ik vind het enorm ranzige code, en vroeg mij af hoe ik dat netter ga krijgen?
strtotime('00:00') ofzo?quote:Op vrijdag 23 februari 2007 21:57 schreef Geqxon het volgende:
Nu we toch over timestamps aan het miepen zijn
[ code verwijderd ]
Het resultaat? De timestamp van vandaag, exact op 00:00:00. Ik vind het enorm ranzige code, en vroeg mij af hoe ik dat netter ga krijgen?
Gelukkig hebben we ook negatieve timestampsquote:Op vrijdag 23 februari 2007 21:59 schreef Swetsenegger het volgende:
[..]
Het bespaart me moeite want met een timestamp moet ik nadenken en
WHERE thedate<=DATE_SUB(NOW(), INTERVAL 1 DAY)
is gewoon easy en gemakkelijk en helder leesbaar enzo. Dat snap ik over een jaar nogAl dat gereken met microsecondes heb ik als voormalig uurwerkmaker een pleurishekel.
Ik bedoel, het hele idee van microtime is om te huilen natuurlijk. Het aantal microseconden verstreken sinds 1 januari 1970? Welke bosmongool heeft dat verzonnen? Hou dan in godesnaam gewoon de algemeen geaccepteerde epoch aan van 01-01-0000.
Nee, javascript is daar lekker inquote:Op vrijdag 23 februari 2007 22:00 schreef Swetsenegger het volgende:
[..]
Niet... dat gekut met tijd in php is gewoon ranzig.
Ehm, waarom begin je opeens over microtime? time() is voldoende hoorquote:Op vrijdag 23 februari 2007 21:59 schreef Swetsenegger het volgende:
[..]
Het bespaart me moeite want met een timestamp moet ik nadenken en
WHERE thedate<=DATE_SUB(NOW(), INTERVAL 1 DAY)
is gewoon easy en gemakkelijk en helder leesbaar enzo. Dat snap ik over een jaar nogAl dat gereken met microsecondes heb ik als voormalig uurwerkmaker een pleurishekel.
Ik bedoel, het hele idee van microtime is om te huilen natuurlijk. Het aantal microseconden verstreken sinds 1 januari 1970? Welke bosmongool heeft dat verzonnen? Hou dan in godesnaam gewoon de algemeen geaccepteerde epoch aan van 01-01-0000.
Ik ruik een tweede milenium bug... en dat is waarom mijn opa altijd zei: DD-MM-YYYY !quote:Note: If the number of the year is specified in a two digit format, the values between 0-69 are mapped to 2000-2069 and 70-100 to 1970-2000.
Nog steeds gezeikquote:Op vrijdag 23 februari 2007 22:13 schreef JeRa het volgende:
[..]
Ehm, waarom begin je opeens over microtime? time() is voldoende hooren het refereert natuurlijk naar de standaard Unix times, die vooral op unix-like systemen wordt gebruikt.
Ontzettend handig als je relatief wilt werken, bijvoorbeeld wilt weten hoeveel tijd er tussen twee data zit. Als je dat wilt doen met DATETIME moet je eerst allerlei vage conversiefuncties gaan gebruikenquote:
SELECT unix_timestamp(date1) -quote:Op vrijdag 23 februari 2007 22:18 schreef JeRa het volgende:
[..]
Ontzettend handig als je relatief wilt werken, bijvoorbeeld wilt weten hoeveel tijd er tussen twee data zit. Als je dat wilt doen met DATETIME moet je eerst allerlei vage conversiefuncties gaan gebruiken
1 2 3 | str_replace("<%$tag%>" , $data , $this->output); } |
1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |