Dat bedoel ikquote:
ja die strings in de eerste output die ik gaf klopte niet, maar de timestamps blijven hetzelfde en de volgorde ervan snap ik nog steeds niet helemaal. toen ik een unit test schreef ging ik er van uit dat amsterdam in het midden zou zitten qua timestamp voor "today", maar dat klopt dus nietquote:Op woensdag 22 oktober 2014 21:01 schreef Light het volgende:
[..]
Nee. Om te beginnen kloppen die strings niet. En het probleem met "today" is dat je niet weet welke dat je krijgt. In Australië is 23 oktober al begonnen, dus krijg je die datum als je "today" gebruikt. In de andere gebieden is dat niet het geval en krijg je 22 oktober.
int(1413950400)
2014-10-22 00:00:00-0400
int(1413928800)
2014-10-22 00:00:00+0200
int(1413982800)
2014-10-23 00:00:00+1100
Eigenlijk zoek je voor Sydney deze tijd:
int(1413896400)
2014-10-22 00:00:00+1100
Light gaf het al aan: timestamps gaan van UTC uit (tijdzone 0).quote:Op woensdag 22 oktober 2014 21:27 schreef wipes66 het volgende:
[..]
ja die strings in de eerste output die ik gaf klopte niet, maar de timestamps blijven hetzelfde en de volgorde ervan snap ik nog steeds niet helemaal. toen ik een unit test schreef ging ik er van uit dat amsterdam in het midden zou zitten qua timestamp voor "today", maar dat klopt dus niet
1 2 3 | 2014-10-22T04:00:00+00:00 New York 2014-10-21T22:00:00+00:00 Amsterdam 2014-10-22T13:00:00+00:00 Sydney |
Nee, Sydney is de kleinste, dan Nederland, en New York is de grootste. De reden dat het mis lijkt te gaan voor Sydney is dat het daar inmiddels 07:18 is op 23 oktober waar Nederland en New York nog in 22 oktober leven.quote:Op woensdag 22 oktober 2014 22:03 schreef Aether het volgende:
[..]
Light gaf het al aan: timestamps gaan van UTC uit (tijdzone 0).
Misschien dat het duidelijker is als UTC:
[ code verwijderd ]
Door zomertijd geldt voor Nederland tijdzone +02 t.o.v. UTC. Als het middernacht is, is het 22 uur 's avonds de vorige dag in UTC (tweede regel).
New York loopt 4 uur achter t.o.v. UTC. Als het daar middernacht is, is het 4 uur 's ochtends UTC.
Sydney loopt 11 uur voor op UTC. Als het daar middernacht is, is het 24 - 11 = 13 uur 's middags UTC (omdat het op het moment van meten al een dag later is in Australië).
Vanuit UTC gezien is Nederland de kleinste timestamp, daarna New York en dan Sydney.
Amsterdam zit in het midden als je het over dezelfde dag hebt. Maar 'today' is niet voor alle tijdzones hetzelfde. Als je het over een uur weer probeert, is de timestamp van Sydney voor 'today' wel kleiner dan die van Amsterdam voor 'today'.quote:Op woensdag 22 oktober 2014 21:27 schreef wipes66 het volgende:
[..]
ja die strings in de eerste output die ik gaf klopte niet, maar de timestamps blijven hetzelfde en de volgorde ervan snap ik nog steeds niet helemaal. toen ik een unit test schreef ging ik er van uit dat amsterdam in het midden zou zitten qua timestamp voor "today", maar dat klopt dus niet
En zowaar geschiedde:quote:Op woensdag 22 oktober 2014 23:04 schreef Light het volgende:
[..]
Amsterdam zit in het midden als je het over dezelfde dag hebt. Maar 'today' is niet voor alle tijdzones hetzelfde. Als je het over een uur weer probeert, is de timestamp van Sydney voor 'today' wel kleiner dan die van Amsterdam voor 'today'.
1 2 3 | string(31) "Thu, 23 Oct 2014 00:00:00 -0400" int(1414036800) string(31) "Thu, 23 Oct 2014 00:00:00 +0200" int(1414015200) string(31) "Thu, 23 Oct 2014 00:00:00 +1100" int(1413982800) |
Wat wil je eigenlijk bereiken, dit lijkt namelijk op een unittest van DateTime zelf..quote:Op woensdag 22 oktober 2014 19:45 schreef wipes66 het volgende:
heeft iemand verstand van timezones? ik probeer "today 00:00" om te zetten in een timestamp, maar wel afhankelijk van een tijdzone (via DateTime). in de unittest vergelijk ik new-york, amsterdam en die van sydney. maar die van amsterdam blijkt lager te zijn dan die van new-york?
een class testen, die inderdaad niet veel meer dan datetime gebruikt. maar goed, het komt wel vaker voor dat je dingen test die gebruik maken van iets dat op zichzelf ook al getest wordt tochquote:Op donderdag 23 oktober 2014 18:43 schreef slacker_nl het volgende:
[..]
Wat wil je eigenlijk bereiken, dit lijkt namelijk op een unittest van DateTime zelf..
Over het algemeen maak je dan gebruik van mocks. Die kun je namelijk configureren zodat ze precies doen wat je wilt en je niet afhankelijk bent van de interne werking van die class.quote:Op donderdag 23 oktober 2014 19:03 schreef wipes66 het volgende:
[..]
een class testen, die inderdaad niet veel meer dan datetime gebruikt. maar goed, het komt wel vaker voor dat je dingen test die gebruik maken van iets dat op zichzelf ook al getest wordt toch
Zoiets? http://sourceforge.net/projects/phpocr/quote:Op zaterdag 25 oktober 2014 17:53 schreef xaban06 het volgende:
Iemand bekend met text uitlezen uit foto's?
Rekening houdend met:
- Je weet van te voren niet hoe groot de plaatje dus, kan altijd verschillend zijn.
- Je weet wel de opbouw van de text, is altijd <xx> karakters lang.
- Je weet de kleur van de tekst (zwart, maar zal uiteraard altijd een ander tint zwart zijn, want foto's).
- Je weet de achtergrondkleur van de tekst.
Zijn hier libraries voor?
Daarmee kan je tekst uit screenshots lezen, ik heb het echt over foto's. Geen screenshots oid.quote:Op zaterdag 25 oktober 2014 18:05 schreef bondage het volgende:
[..]
Zoiets? http://sourceforge.net/projects/phpocr/
Nee, voor dat soort specifieke gevallen zijn geen libraries. Wat je natuurlijk zou kunnen doen is het voorbewerken van de afbeelding en dan een standaard OCR oplossing gebruiken.quote:Op zaterdag 25 oktober 2014 17:53 schreef xaban06 het volgende:
Iemand bekend met text uitlezen uit foto's?
Rekening houdend met:
- Je weet van te voren niet hoe groot de plaatje dus, kan altijd verschillend zijn.
- Je weet wel de opbouw van de text, is altijd <xx> karakters lang.
- Je weet de kleur van de tekst (zwart, maar zal uiteraard altijd een ander tint zwart zijn, want foto's).
- Je weet de achtergrondkleur van de tekst.
Zijn hier libraries voor?
1 | mysql -h localhost -uUSERNAME --password="PASSWORD" -e "SET @variable_file=123" < ./testSqlMetParamenter.sql |
1 2 | use hub_test; INSERT INTO mut_pcdata_results ( filename, starttime ) VALUES ( @variable_file, NOW() ); |
1 | mysql -h localhost -uUSERNAME --password="PASSWORD" -e "SET @variable_file=123; source ./testSqlMetParamenter.sql" |
Ken je dit al? https://www.cs.rochester.edu/~ferguson/poker/ipp.htmlquote:Op vrijdag 31 oktober 2014 00:56 schreef TwenteFC het volgende:
Een aantal jaar geleden al eens geprobeerd om te maken, destijds niet gelukt.
Nu in een uurtje dit er uit gerammeld, morgen maar eens kijken naar de winnaars berekening. En zorgen dat je/er ingezet wordt.
[ afbeelding ]
Wanneer het af is zal ik de code wel op github gooien.
Kende deze nog niet nee, ziet er wel handig uit.quote:Op vrijdag 31 oktober 2014 08:46 schreef slacker_nl het volgende:
[..]
Ken je dit al? https://www.cs.rochester.edu/~ferguson/poker/ipp.html
1 | SELECT `provincie`, `brandstof`, `gewichtStart`, `tarief` FROM `wegenbelasting` WHERE `brandstof` = 'diesel' AND `gewichtstart` < '1370' |
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 | provincie brandstof gewichtstart tarief Drenthe Diesel 1 93 Drenthe Diesel 551 113 Drenthe Diesel 651 133 Drenthe Diesel 751 160 Drenthe Diesel 851 196 Drenthe Diesel 951 232 Drenthe Diesel 1051 268 Drenthe Diesel 1151 305 Drenthe Diesel 1251 341 **Drenthe Diesel 1351 377 Noord-Holland Diesel 1 90 Noord-Holland Diesel 551 109 Noord-Holland Diesel 651 129 Noord-Holland Diesel 751 154 Noord-Holland Diesel 851 189 Noord-Holland Diesel 951 223 Noord-Holland Diesel 1051 257 Noord-Holland Diesel 1151 290 Noord-Holland Diesel 1251 324 **Noord-Holland Diesel 1351 358 Utrecht Diesel 1 91 Utrecht Diesel 551 110 Utrecht Diesel 651 130 Utrecht Diesel 751 156 Utrecht Diesel 851 190 Utrecht Diesel 951 225 Utrecht Diesel 1051 259 Utrecht Diesel 1151 294 Utrecht Diesel 1251 328 **Utrecht Diesel 1351 363 |
1 2 3 | Drenthe Diesel 1 93 Noord-Holland Diesel 1 90 Utrecht Diesel 1 91 |
1 2 3 4 5 6 7 8 9 10 | SELECT `provincie`, `brandstof`, `gewichtStart`, `tarief` FROM `wegenbelasting` WHERE `brandstof` = 'diesel' AND `gewichtstart` = ( SELECT gewichtstart FROM wegenbelasting WHERE gewichtstart < 1370 AND brandstof = 'diesel' ORDER BY gewichtstart DESC LIMIT 1 ) |
1 2 3 4 5 6 | select gewicht from wegenbelasting where gewicht = ( select max(gewicht) from wegenbelasting where gewicht < 1370) |
Zit nu mobiel, kan niet testen, maar ik wil de resultaat van ieder provincie. Dus niet alleen de duurste provincie.quote:Op zaterdag 1 november 2014 21:31 schreef slacker_nl het volgende:
Simplified:
[ code verwijderd ]
Mogelijk zou je het met een join kunnen doen. Maar dat laat ik aan jou over.
Die van slacker_nl is denk ik beter:quote:Op zaterdag 1 november 2014 21:38 schreef xaban06 het volgende:
[..]
Deze zou wel eens kunnen werken. Thanks!
1 2 3 4 5 6 7 8 9 | SELECT `provincie`, `brandstof`, `gewichtStart`, `tarief` FROM `wegenbelasting` WHERE `brandstof` = 'diesel' AND `gewichtstart` = ( SELECT MAX(gewichtstart) FROM wegenbelasting WHERE gewichtstart < 1370 AND brandstof = 'diesel' ) |
Eigenlijk wil je dit doen:quote:Op zaterdag 1 november 2014 21:38 schreef xaban06 het volgende:
[..]
Zit nu mobiel, kan niet testen, maar ik wil de resultaat van ieder provincie. Dus niet alleen de duurste provincie.
quote:Op zaterdag 1 november 2014 21:46 schreef Rockfire het volgende:
[..]
Die van slacker_nl is denk ik beter:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class voorbeeld { public function test() { try { echo "lala"; } // Echoët evt. foutmelding: catch(Exception $e) { echo "Functie test kon niet uitgevoerd worden: ". $e->getMessage(). "\n"; } } // Einde van scope test } |
throw gooit een exception naar de eerstvolgende errorhandler (een catch statement of een globale errorhandler). Zolang een exception niet gegooid wordt, zal er niks gevangen worden. Veel php function hebben de 'throw' ingebouwd. Mocht echo 'blah' een exception tegenkomen,creert deze een Exception() en throwt deze naar je catch statement. Jij hoeft dit niet expliciet te doen, tenzij je zelf de exception maakt:quote:Op zondag 9 november 2014 22:36 schreef Robuustheid het volgende:
Een vraag:
[ code verwijderd ]
Bij de exception ontbreekt de throw. Dan vraag ik mij af of de exception ook de string kan weergeven?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php class voorbeeld { public function test() { try { $exc = new Exception("lala wordt gewoon uitgevoerd, want deze exception wordt niet gegooid");//doet niks dus! echo "lala"; //wacht effe, hier gaat iets fout throw new Exception("klopt niet"); } // Echoët evt. foutmelding: catch(Exception $e) { echo "Functie test kon niet uitgevoerd worden: ". $e->getMessage(). "\n"; } } // Einde van scope test } ?> |
1 2 3 4 5 | function AutoloadVoorbeeld($voorbeeld) { $callback = __DIR__.'/includes/php/'. $voorbeeld.'.php'; require_once($voorbeeld); } spl_autoload_register('AutoloadVoorbeeld'); |
1 2 3 4 | function AutoloadVariable($variable) { $variable = new $variable; } spl_autoload_register('AutoloadVariable'); |
Niet echt. Als je probeert te schrijven naar een variabele die niet bestaat, wordt de variabele aangemaakt. Als je een niet-bestaande variabele wilt lezen, wordt een E_NOTICE melding getriggerd (maar dat is afhankelijk van je error_reporting() instellingen). Als zo'n melding komt, kun je dat nog wel als nette melding naar de gebruiker tonen maar heb je geen kans meer om gewoon verder te gaan.quote:Op maandag 10 november 2014 12:55 schreef Robuustheid het volgende:
Ah, dat verklaart! Dank.
Zijn er evt. nog alternatieven, om een variable volgens bepaalde methode te declareren indien deze nog niet gedeclareerd is?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE TABLE `test` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Val1` varchar(255) NOT NULL, `Val2` varchar(255) NOT NULL, `Updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`Val1`), KEY `ID` (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Gegevens worden uitgevoerd voor tabel `test` -- INSERT INTO `test` (`ID`, `Val1`, `Val2`, `Updated`) VALUES (1, 'a', '29191', '2014-11-12 19:39:31'); |
1 2 3 | $sql = "INSERT INTO test (Val1, Val2) VALUES ('a','a') ON DUPLICATE KEY UPDATE Val2 = '".rand()."'"; $query = mysqli_query($con, $sql); echo mysqli_affected_rows($con); |
1 2 3 | $sql = "UPDATE test SET Val2 = '".rand()."' WHERE ID=1"; $query = mysqli_query($con, $sql); echo mysqli_affected_rows($con); |
Ah, de comments had ik niet bekeken. Thanks!quote:Op woensdag 12 november 2014 19:51 schreef mstx het volgende:
On duplicate key update geeft 2 terug als een waarde is geupdate, zie manual.
http://php.net/manual/en/mysqli.affected-rows.php
1e comment
1 2 3 4 | <?php $sql = "UPDATE test SET val1='a', val2='b', val3='c', val4='c' (etc) WHERE ID=0"; mysqli_query($con, $sql); ?> |
Tip: Maak de id-kolom unsigned. Dan kun je er 2 keer zoveel records in kwijt (een auto-increment levert altijd positieve getallen op). Niet dat ik verwacht dat je in de buurt van de grens van een signed kolom komt, maar tochquote:
Ik denk niet dat ik boven de 2147483647 id's uitkom jaquote:Op woensdag 12 november 2014 23:10 schreef Light het volgende:
[..]
Tip: Maak de id-kolom unsigned. Dan kun je er 2 keer zoveel records in kwijt (een auto-increment levert altijd positieve getallen op). Niet dat ik verwacht dat je in de buurt van de grens van een signed kolom komt, maar toch
Je zou het ID veld misschien ook wel compleet kunnen verwijderen.quote:Op woensdag 12 november 2014 23:23 schreef qu63 het volgende:
[..]
Ik denk niet dat ik boven de 2147483647 id's uitkom ja
Teller staat nu op 10.733 en zal niet veel meer stijgen
In dit voorbeeld wel jaquote:Op donderdag 13 november 2014 13:28 schreef TwenteFC het volgende:
[..]
Je zou het ID veld misschien ook wel compleet kunnen verwijderen.
quote:Op woensdag 12 november 2014 22:57 schreef qu63 het volgende:
Hoe kan ik beste achterhalen welke van de onderstaande kolommen een nieuwe waarde hebben gekregen door deze query?
[ code verwijderd ]
De wijzigingen kunnen alle kolommen beslaan, of juist geen. En alles er tussenin.
quote:Op woensdag 12 november 2014 22:57 schreef qu63 het volgende:
Hoe kan ik beste achterhalen welke van de onderstaande kolommen een nieuwe waarde hebben gekregen door deze query?
[ code verwijderd ]
De wijzigingen kunnen alle kolommen beslaan, of juist geen. En alles er tussenin.
1 | SELECT `val1` != 'a' AS val1_changed, `val2` != 'b' AS val2_changed |
En deze uitvoeren voor de UPDATE neem ik aan?quote:
Dan ga ik daar even mee puzzelenquote:
quote:
1 2 3 4 5 | <?php $sql = "SELECT `Val1` != 'a' AS Val1_changed, `Val2` != 'a' AS Val2_changed, `Val3` != 'b' AS Val3_changed, `Val4` != 'a' AS Val4_changed, `Val5` != 'a' AS Val5_changed, `Val6` != '' AS Val6_changed FROM `test` WHERE `ID`='1'" $result = mysqli_query($con, $sql); $test = mysqli_fetch_all($result); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Array ( [0] => Array ( [0] => 0 [1] => 0 [2] => 1 [3] => 0 [4] => 0 [5] => 1 ) ) |
Heel beperkt icm Logstash en Kibana.quote:Op vrijdag 14 november 2014 18:27 schreef TwenteFC het volgende:
Heeft iemand hier toevallig ervaring met Elasticsearch?
Dan kan jij misschien mijn vraag beantwoorden;quote:Op vrijdag 14 november 2014 18:33 schreef Monolith het volgende:
[..]
Heel beperkt icm Logstash en Kibana.
Dit is inderdaad exact wat ik wil, thx.quote:Op vrijdag 14 november 2014 18:44 schreef Monolith het volgende:
Je zou ook kunnen kijken naar faceted search in SOLR. Volgens mij is dat zo ongeveer wat je wilt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?xml version="1.0" encoding="UTF-8"?> <mobile_orderdetail_ack xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <messagebody> <subscription> <products> <bundleproduct> <bundleproductid>114</bundleproductid> <bundleproductname>Managed Mobile Blue 1GB</bundleproductname> <startdate>2014-07-07</startdate> </bundleproduct> <bundleproduct> <bundleproductid>74</bundleproductid> <bundleproductname>Data Pack 1000 (Blue)</bundleproductname> <startdate>2014-07-07</startdate> </bundleproduct> <bundleproduct> <bundleproductid>46</bundleproductid> <bundleproductname>SMS Pack Unlimited</bundleproductname> <startdate>2014-07-07</startdate> </bundleproduct> </products> </subscription> </messagebody> </mobile_orderdetail_ack> |
1 2 3 4 5 6 7 8 9 10 | <?php $xml = new SimpleXMLElement ( $bericht ); foreach ( $xml->messagebody->subscription->products as $products ) { print_r ( $products ); } ?> |
quote:
1 2 3 4 5 6 7 8 9 10 | <?php foreach ( $xml->messagebody->subscription->products->bundleproduct as $bundleproducts ) { $products[] = get_object_vars ( $bundleproducts ); } print_r ( $products ); ?> |
1 2 3 4 5 | <?php $variables = array( 'Foo' => 'Bar', 'Baz' => 'Test' ); $json = new JsonModel( $variables ); return $json; ?> |
Gebruik de json view helper: http://framework.zend.com(...)ew.helpers.json.htmlquote:Op zondag 16 november 2014 16:13 schreef Pakspul het volgende:
Kan iemand mij uitleggen waarom ik een view bestand nodig heb wanneer ik JSON output genereer via JsonModel in Zend Framework 2? Ik heb een array en die gooi op eruit, de view voegt totaal niets toe
Gelukkig kan ik ook geen voorbeelden vinden hoe het wel moet. Overal zeggen ze: "gebruik dit en je bent klaar".
[ code verwijderd ]
Dit werkt niet! Nouja, het werkt wel. Hij toont de layout niet, maar de view mag ook optieven en hij moet mij Json string tonen.
1 2 3 | <?php $nextdate = strtotime(date("d-m-Y", strtotime("first ".$airday." of ".$date[0]." ".$date[1]))." ".$airtime." ".$timezone); ?> |
Veiligheid?quote:Op vrijdag 28 november 2014 15:55 schreef KomtTijd... het volgende:
Waarom zou je dat uberhaupt willen?
Het is wel mogelijk, maar dan moet je denk een veel te ingewikkelde regex schrijvenquote:Op vrijdag 28 november 2014 15:36 schreef boskameel het volgende:
Wat zouden de makkelijkste manier zijn wanneer je een website hebt met daarin 1000'en querys die nog met mysq_query opgemaakt zijn en je wilt naar pdo overgaan? Is hier een oplossing voor of ontkom je er niet aan alles te herschrijven?
Als je applicatie niet veilig is moet je het lek fixxen, niet rucksichtsloss je database driver vervangen. En functies worden júíst deprecated (ipv verwijderd) zodat bestaande applicaties niet aangepast hoeven worden.quote:
Als je overgaat op PDO moet je je queries ook parameteriseren. Althans, niet per se, maar als je dat niet doet heeft het écht geen enkele zin. En eigenlijk gewoon (zo veel mogelijk) OO gaan werken. Overgaan op PDO is dus veel ingrijpender dan alleen maar een andere database-connectie.quote:[..]
Het is wel mogelijk, maar dan moet je denk een veel te ingewikkelde regex schrijven
Zul je toch handmatig moeten doen.
Maar die oude mysql-functies worden wel degelijk verwijderd toch?quote:Op vrijdag 28 november 2014 18:00 schreef KomtTijd... het volgende:
[..]
Als je applicatie niet veilig is moet je het lek fixxen, niet rucksichtsloss je database driver vervangen. En functies worden júíst deprecated (ipv verwijderd) zodat bestaande applicaties niet aangepast hoeven worden.
Is het niet al weg in 5.6?quote:Op vrijdag 28 november 2014 21:50 schreef robin007bond het volgende:
[..]
Maar die oude mysql-functies worden wel degelijk verwijderd toch?
Dan is het toch niet deprecated meer maar echt weg? Kan me voorstellen dat je dan als bedrijf wilt switchen van mysql* naar PDO.quote:
Als het daar om gaat kun je gewoon alle mysql_* functies vervangen door mysqli_*.quote:Op vrijdag 28 november 2014 21:50 schreef robin007bond het volgende:
[..]
Maar die oude mysql-functies worden wel degelijk verwijderd toch?
Dat kan ook ja, maar ik kan me voorstellen dat mensen het dan gelijk helemaal goed willen doen.quote:Op vrijdag 28 november 2014 22:39 schreef mstx het volgende:
[..]
Als het daar om gaat kun je gewoon alle mysql_* functies vervangen door mysqli_*.
Onze klanten in ieder geval niet. Als ze kunnen kiezen tussen het vervangen door mysqli functies in 5 minuten of alle queries ombouwen naar pdo met parameters voor tientallen uren werk weet ik wel wat ze kiezen, want niemand ziet het verschil.quote:Op vrijdag 28 november 2014 22:39 schreef robin007bond het volgende:
[..]
Dat kan ook ja, maar ik kan me voorstellen dat mensen het dan gelijk helemaal goed willen doen.
quote:Op vrijdag 28 november 2014 22:41 schreef mstx het volgende:
[..]
Onze klanten in ieder geval niet. Als ze kunnen kiezen tussen het vervangen door mysqli functies in 5 minuten of alle queries ombouwen naar pdo met parameters voor tientallen uren werk weet ik wel wat ze kiezen, want niemand ziet het verschil.
Erm... Nee. Echt niemand gaat betalen voor het ombouwen van een applicatie die uiteindelijk precies hetzelfde kan als daarvoor.quote:Op vrijdag 28 november 2014 22:39 schreef robin007bond het volgende:
[..]
Dat kan ook ja, maar ik kan me voorstellen dat mensen het dan gelijk helemaal goed willen doen.
Je moest eens weten wat voor gedrochten er bestaan. Code die compleet onveilig is vanwege luiheid, tijdsgebrek, etc.quote:Op vrijdag 28 november 2014 23:35 schreef Monolith het volgende:
1000'en keren dergelijke functies gebruiken klinkt vooral als een heel erg slecht ontworpen applicatie.
Ik ben ermee bekend hoor. Doe zelf de laatste jaren gelukkig niets meer met PHP, maar ik weet wat voor een ellende daarmee geproduceerd wordt.quote:Op zaterdag 29 november 2014 01:50 schreef totalvamp het volgende:
[..]
Je moest eens weten wat voor gedrochten er bestaan. Code die compleet onveilig is vanwege luiheid, tijdsgebrek, etc.
Zeker met code die al verouderd is heb je vaak problemen of met slecht gebouwde CMS systemen (joomla).
Omdat er nog veel oude tutorials en dergelijke op internet circuleren denk ik.quote:Op zaterdag 29 november 2014 12:07 schreef slacker_nl het volgende:
Worden jullie PHP'ers niet gek van die comtinue discussie over PDO vs mysql*_-functies? Ik verbaas me echt continue dat er zoveel over gesproken moet worden. Gebruik PDO, 10 jaar geleden was dat het devies en nog steeds heb je idioten die het niet gebruiken. Waarom?
Goed punt inderdaad.quote:Op zaterdag 29 november 2014 12:09 schreef robin007bond het volgende:
[..]
Omdat er nog veel oude tutorials en dergelijke op internet circuleren denk ik.
Daarbij is PHP ook echt de taal bij uitstek waar veel mensen gewoon een beetje mee experimenteren. Ik heb het idee dat weinig mensen echt een serieus boek over PHP lezen.quote:
Dat is geen argument imo. Of... misschien ook wel. Ze hadden dus veeeeeeel eerder die mysql*_ meuk moeten deprecaten en verwijderen.quote:Op zaterdag 29 november 2014 12:09 schreef robin007bond het volgende:
[..]
Omdat er nog veel oude tutorials en dergelijke op internet circuleren denk ik.
Mee eens.quote:Op zaterdag 29 november 2014 12:22 schreef slacker_nl het volgende:
[..]
Dat is geen argument imo. Of... misschien ook wel. Ze hadden dus veeeeeeel eerder die mysql*_ meuk moeten deprecaten en verwijderen.
PDO heeft een iets hogere leercirve. Mysql_* is lekker makkelijk.quote:Op zaterdag 29 november 2014 12:07 schreef slacker_nl het volgende:
Worden jullie PHP'ers niet gek van die comtinue discussie over PDO vs mysql*_-functies? Ik verbaas me echt continue dat er zoveel over gesproken moet worden. Gebruik PDO, 10 jaar geleden was dat het devies en nog steeds heb je idioten die het niet gebruiken. Waarom?
Eigenlijk wel ja.quote:Op zaterdag 29 november 2014 12:27 schreef Monolith het volgende:
Probleem is dat de grootste kracht van PHP ook gelijk de grootste zwakte is, praktisch iedere idioot kan ermee aan de slag.
Hogere leercurve? Explain.quote:Op zaterdag 29 november 2014 12:29 schreef d4v1d het volgende:
[..]
PDO heeft een iets hogere leercirve. Mysql_* is lekker makkelijk.
Zelf vind ik PDO echt heel makkelijk in gebruik. Ik kan het me echt niet voorstellen dat mensen daar moeite mee hebben.quote:
Prepared statements en shit. En OO en classes begreep ik echt nog niet in het begin (toen ik nog mysql_* gebruikte)quote:
Ik word er niet gek van, want ik heb niks te maken met wat anderen doenquote:Op zaterdag 29 november 2014 12:07 schreef slacker_nl het volgende:
Worden jullie PHP'ers niet gek van die comtinue discussie over PDO vs mysql*_-functies? Ik verbaas me echt continue dat er zoveel over gesproken moet worden. Gebruik PDO, 10 jaar geleden was dat het devies en nog steeds heb je idioten die het niet gebruiken. Waarom?
Kwestie van vraag en aanbod. Als je iets kan dat weinig anderen kunnen, kun je een hoger salaris vragen. Scripten in PHP is niet een voorbeeld van zoietsquote:Op zaterdag 29 november 2014 12:52 schreef robin007bond het volgende:
Opvallend trouwens.
PHP-programmeurs verdienen gemiddeld minder:
http://tweakers.net/revie(...)erdienen-icters.html
Wellicht ja.quote:Op zaterdag 29 november 2014 13:10 schreef Tijn het volgende:
[..]
Kwestie van vraag en aanbod. Als je iets kan dat weinig anderen kunnen, kun je een hoger salaris vragen. Scripten in PHP is niet een voorbeeld van zoiets
"if it ain't broken, don't fix it" versus "if you stand still, you fall behind".quote:Op zaterdag 29 november 2014 15:03 schreef KomtTijd... het volgende:
Persoonlijk vind ik PDO ook makkelijker dan de oude database functies, en ik zou ook iedereen aanraden alleen nog pdo te gebruiken als een ORM class geen optie is.
Maar dat betekent niet dat je goedwerkende applicaties moet gaan ombouwen puur voor The sake of it. If it aint broken, don't fix it!
Ja geleidelijk inbrengen idd. En dan kom je op een gegeven moment op een punt dat je die laatste paar functies ook maar gaat refactoren. Maar dat is iets anders dan een hele applicatie omschrijven puur omdat het kan.quote:Op zaterdag 29 november 2014 15:07 schreef papernote het volgende:
[..]
"if it ain't broken, don't fix it" versus "if you stand still, you fall behind".
Persoonlijk ben ik vóór actief onderhoud aan applicaties, ook al zijn ze niet "broken". Updaten en het geleidelijk inbrengen van nieuwe technieken hoort daar bij, naar mijn mening.
Dat denk ik ook ja. Maar je hebt met PHP natuurlijk wel veel van die veredelde ammateurs (zoals ondergetekendequote:Op zaterdag 29 november 2014 13:12 schreef robin007bond het volgende:
[..]
Wellicht ja.
Ik denk dat mensen die echt heel goed met bepaalde frameworks kunnen werken en echt goed OOP in PHP kunnen programmeren wel redelijk gelijklopen.
Punt is natuurlijk wel dat het toepassingsgebied relatief beperkt is. Je zult ook niet bepaald veel PHP-mensen tegenkomen die zich bezighouden net zaken als Enterprise architecture e.d.quote:Op zaterdag 29 november 2014 13:12 schreef robin007bond het volgende:
[..]
Wellicht ja.
Ik denk dat mensen die echt heel goed met bepaalde frameworks kunnen werken en echt goed OOP in PHP kunnen programmeren wel redelijk gelijklopen.
quote:Op zaterdag 29 november 2014 20:01 schreef totalvamp het volgende:
Owja nog iets leuks, mijn baas weigert php code op linux servers te draaien, omdat hij niet weet hoe hij deze moet instellen...
Nu constant problemen met rechten en bullshit.
Dat krijg je als een niet technisch persoon je baas is xDquote:Op zaterdag 29 november 2014 20:04 schreef Monolith het volgende:
Ik weet niet of ik daar heel hard om moet lachen of juist huilen.
Hier wordt je nog vredrietiger van:quote:
Hebben mijn collega's al jaren daarvoor gedaan, maar hij luistert nietquote:Op zaterdag 29 november 2014 20:36 schreef papernote het volgende:
Je baas moet zich, als niet-technisch persoon, daar niet mee bemoeien. En jij moet de ballen hebben om dat tegen 'm te zeggen.
Dan is hij geen baas, maar een schijt-irritante bemoeial die ontslagen moet worden. Een goede baas weet wanneer hij z'n bek moet houden. Zeker als er personeel met meer kennis rondloopt.quote:Op zaterdag 29 november 2014 20:38 schreef totalvamp het volgende:
[..]
Hebben mijn collega's al jaren daarvoor gedaan, maar hij luistert niet
Ik werk er pas 2 maanden xD
Ga maar vast leren in .net te programmeren.quote:Op zaterdag 29 november 2014 20:38 schreef totalvamp het volgende:
[..]
Hebben mijn collega's al jaren daarvoor gedaan, maar hij luistert niet
Ik werk er pas 2 maanden xD
Als je kunt programmeren, dan is de taal irrelevant.quote:Op zaterdag 29 november 2014 20:40 schreef bondage het volgende:
[..]
Ga maar vast leren in .net te programmeren.
Andere namen voor functies etc. Moet je toch ff leren.quote:Op zaterdag 29 november 2014 20:41 schreef papernote het volgende:
[..]
Als je kunt programmeren, dan is de taal irrelevant.
Het is zijn bedrijf, maar volgende week gaan we sowieso ff praten over wat dingen die niet echt kosten efficient zijn.quote:Op zaterdag 29 november 2014 20:40 schreef papernote het volgende:
[..]
Dan is hij geen baas, maar een schijt-irritante bemoeial die ontslagen moet worden. Een goede baas weet wanneer hij z'n bek moet houden. Zeker als er personeel met meer kennis rondloopt.
Maar hij is zeker zo'n baas die denkt alles zelf beter te weten en z'n werknemers meer als uitvoerende slaven ziet, dan als mensen die ook zelfstandig iets kunnen?
Ik zou maar vast uitkijken naar een nieuwe plek.
Daar zit er ook 1 vanquote:Op zaterdag 29 november 2014 20:40 schreef bondage het volgende:
[..]
Ga maar vast leren in .net te programmeren.
Nouja ik vind serverbeheer niet erg om te doen, maar het moet gewoon goed werken.quote:Op zaterdag 29 november 2014 20:41 schreef KomtTijd... het volgende:
Daar zou je je zelfs als programmeur niet mee bezig hoeven houden. Regel een managed server als er geen server beheerder is.
Dat is de grap natuurlijkquote:Op zaterdag 29 november 2014 20:44 schreef totalvamp het volgende:
[..]
Daar zit er ook 1 vanDie doet alleen maar .net, ik wil er niet aan beginnen omdat ik een hekel aan microsoft servers hebn.
Als je enkel PHP kent gaan zaken als threading en concurrency je nog wel tegenvallen hoor.quote:Op zaterdag 29 november 2014 20:41 schreef papernote het volgende:
[..]
Als je kunt programmeren, dan is de taal irrelevant.
Ik ook niet, maar dan moet je er wel de tijd voor hebben/krijgen om er ook echt wat aan te doen zo af en toe. Kortom ik ben blij dat wij dat inmiddels allemaal uitbesteed hebben ondanks dat het wel eens lastig is dat je niet FF snel iets kunt installeren ofzo...quote:Op zaterdag 29 november 2014 20:44 schreef totalvamp het volgende:
[..]
Nouja ik vind serverbeheer niet erg om te doen, maar het moet gewoon goed werken.
Dan kun je dus niet programmeren.quote:Op zaterdag 29 november 2014 20:48 schreef Monolith het volgende:
[..]
Als je enkel PHP kent gaan zaken als threading en concurrency je nog wel tegenvallen hoor.
quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
Prolog, Lisp, cobol kun je ook gewoon met enkel imperatieve ervaring?quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
Denk dat het weinig zegt over hoe goed iemand kan programmeren. Het is maar net wat je gewend bent.quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
Ahww dat valt bij jou toch reuze mee?quote:Op zaterdag 29 november 2014 17:51 schreef KomtTijd... het volgende:
[..]
Dat denk ik ook ja. Maar je hebt met PHP natuurlijk wel veel van die veredelde ammateurs (zoals ondergetekende) die het gemiddelde omlaag halen.
quote:
Een goede opleiding bevat alle programmeerparadigma's. Een goede programmeur kent alle paradigma's, al zal door ervaring en gebruik het ene er wat beter in zitten dan het andere.quote:Op zaterdag 29 november 2014 20:52 schreef Monolith het volgende:
[..]
Prolog, Lisp, cobol kun je ook gewoon met enkel imperatieve ervaring?
.net is een framework, geen taal.quote:Op zaterdag 29 november 2014 21:05 schreef totalvamp het volgende:
Ik snap ook niet wat het voordeel van .net over andere talen zou moeten zijn...
Dat gaat dan over iemand met een goede opleiding. In principe kan iemand een prima programmeur zijn zonder formele opleiding. Bovendien raak je tijdens een opleiding echt nog maar de basis aan van veel zaken en leer je veel dingen pas in de praktijk. Simpelweg roepen dat een goede programmeur alles kan is was te kort door de bocht.quote:Op zaterdag 29 november 2014 21:07 schreef papernote het volgende:
[..]
[..]
Een goede opleiding bevat alle programmeerparadigma's. Een goede programmeur kent alle paradigma's, al zal door ervaring en gebruik het ene er wat beter in zitten dan het andere.
Maar iemand die zich "programmeur" noemt, maar nooit verder is gekomen dan in z'n vrije tijd wat html rondslepen in visuele editor van Frontpage zal daar inderdaad moeite mee hebben.
Ik heb zelf ook nog nooit een opleiding ervoor gedaan, sterker nog die was er gewoon niet.quote:Op zaterdag 29 november 2014 21:11 schreef Monolith het volgende:
[..]
Dat gaat dan over iemand met een goede opleiding. In principe kan iemand een prima programmeur zijn zonder formele opleiding. Bovendien raak je tijdens een opleiding echt nog maar de basis aan van veel zaken en leer je veel dingen pas in de praktijk. Simpelweg roepen dat een goede programmeur alles kan is was te kort door de bocht.
Wanneer kan je dan wel programmeren? Als je maar beheerst wat je nodig hebt voor je taak is t goed, toch? http://www.quora.com/How-(...)er/George-Gonzalez-5quote:Op zaterdag 29 november 2014 20:50 schreef papernote het volgende:
[..]
Dan kun je dus niet programmeren.
precies .. of het efficiënt, structureel en veilig is, om maar wat dingen te noemen, maakt dan ook niet uitquote:Op zaterdag 29 november 2014 21:56 schreef qu63 het volgende:
[..]
Wanneer kan je dan wel programmeren? Als je maar beheerst wat je nodig hebt voor je taak is t goed, toch? http://www.quora.com/How-(...)er/George-Gonzalez-5
Kom op KomtTijd. Je doet in heel DIG alsof je overal verstand van hebt...quote:Op vrijdag 28 november 2014 18:00 schreef KomtTijd... het volgende:
[..]
Als je applicatie niet veilig is moet je het lek fixxen, niet rucksichtsloss je database driver vervangen. En functies worden júíst deprecated (ipv verwijderd) zodat bestaande applicaties niet aangepast hoeven worden.
de mensen die nog echt PHP/MySQL hebben geleerd, zouden met PDO geen moeite moeten hebben. Vind het er allemaal juist makkelijker op geworden. Echter, doordat veel mensen zich een bepaald framework eigen maken en zich vervolgens tot PHP Programmeur bekronen, zijn er steeds minder mensen die nog standaard PHP en queries kunnen schrijven. Dat hebben we tijd terug gezien bij ons op het werk toen we een nieuwe developer zochten.quote:Op zaterdag 29 november 2014 12:32 schreef robin007bond het volgende:
[..]
Zelf vind ik PDO echt heel makkelijk in gebruik. Ik kan het me echt niet voorstellen dat mensen daar moeite mee hebben.
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.quote:Op zaterdag 29 november 2014 20:48 schreef KomtTijd... het volgende:
[..]
Ik ook niet, maar dan moet je er wel de tijd voor hebben/krijgen om er ook echt wat aan te doen zo af en toe. Kortom ik ben blij dat wij dat inmiddels allemaal uitbesteed hebben ondanks dat het wel eens lastig is dat je niet FF snel iets kunt installeren ofzo...
Dat viel voor mij onder beheersenquote:Op zondag 30 november 2014 06:02 schreef remi1986 het volgende:
[..]
precies .. of het efficiënt, structureel en veilig is, om maar wat dingen te noemen, maakt dan ook niet uit
Sorry, maar dat is echt volstrekte kolder. Het is veel makkelijker om een gespecialiseerde externe partij te hebben met 24/7 ondersteuning, uptime garantie middels SLA's, enzovoort.quote:Op zondag 30 november 2014 07:13 schreef remi1986 het volgende:
[..]
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.
En serverbeheer is helemaal niet moeilijk, en al helemaal niet als het allemaal goed gedocumenteerd is. Toen ik begon bij het bedrijf waar ik nu werk, kreeg ik een aparte pc en werd mij verplicht Gentoo te gaan leren en te gaan stoeien met dingen waar je dagelijks mee te maken kan krijgen.
We hebben weleens gehad dat de MySQL replica helemaal de mist in ging. Dan is het heerlijk als je dat zelf binnen een paar minuten hebt opgelost i.p.v. maar hopen dat die andere partij het doet.
Wij schieten gewoon een ticket in bij TRUE en het is sneller opgelost dan ik kan uitzoeken wat er allemaal precies mis is.quote:Op zondag 30 november 2014 07:13 schreef remi1986 het volgende:
[..]
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.
En serverbeheer is helemaal niet moeilijk, en al helemaal niet als het allemaal goed gedocumenteerd is. Toen ik begon bij het bedrijf waar ik nu werk, kreeg ik een aparte pc en werd mij verplicht Gentoo te gaan leren en te gaan stoeien met dingen waar je dagelijks mee te maken kan krijgen.
We hebben weleens gehad dat de MySQL replica helemaal de mist in ging. Dan is het heerlijk als je dat zelf binnen een paar minuten hebt opgelost i.p.v. maar hopen dat die andere partij het doet.
Wij willen niet dat onze klanten de dupe worden van fouten van een derde partij. Onze klanten zijn afhankelijk van het systeem, anders kunnen die de dag naar huis. En als je zelf de expertise in huis hebt, waarom dan uitbesteden.quote:Op zondag 30 november 2014 15:55 schreef TwenteFC het volgende:
[..]
Wij schieten gewoon een ticket in bij TRUE en het is sneller opgelost dan ik kan uitzoeken wat er allemaal precies mis is.
Als je een partij hebt met professionals die dit 24/7 doen, dan moet je zelf niet gaan lopen aan kloten.
Monitoren jullie ook alles zelf dan? Wanneer er 4 uur s`nachts iets mis gaat.quote:Op zondag 30 november 2014 16:06 schreef remi1986 het volgende:
[..]
Wij willen niet dat onze klanten de dupe worden van fouten van een derde partij. Onze klanten zijn afhankelijk van het systeem, anders kunnen die de dag naar huis. En als je zelf de expertise in huis hebt, waarom dan uitbesteden.
En daarbij, vind ik het wel leuk om zo nu en dan met wat nieuwe dingen bezig te zijn. Hele dag code kloppen is ook niet alles
Wij monitoren inderdaad alles zelf. Tijdje terug nog om 01:30 in het datacenter gestaan. We kwamen er remote niet meer in. Die server was helemaal gecrashed, dus moesten we er heenquote:Op zondag 30 november 2014 16:15 schreef TwenteFC het volgende:
[..]
Monitoren jullie ook alles zelf dan? Wanneer er 4 uur s`nachts iets mis gaat.
En hoelang duurde het voordat jullie ter plaatse waren?quote:Op zondag 30 november 2014 16:22 schreef remi1986 het volgende:
[..]
Wij monitoren inderdaad alles zelf. Tijdje terug nog om 01:30 in het datacenter gestaan. We kwamen er remote niet meer in. Die server was helemaal gecrashed, dus moesten we er heen
20 min, half uurtje misschien? We hebben trouwens ook een Master-Slave systeem. Als er één server het begeeft, neemt de andere het over (die servers staan in weer een ander datacenter). De klant zou er dan ook helemaal niets van gemerkt hebben, want het verkeer werd al automatisch doorgeleid naar die andere server.quote:Op zondag 30 november 2014 16:23 schreef TwenteFC het volgende:
[..]
En hoelang duurde het voordat jullie ter plaatse waren?
Dat is niet zo, er zijn meerdere voorbeelden van functies die meerdere versies deprecated geweest zijn of nog steeds zijn. Ook de mysql_ functies die sinds 5.5 deprecated zijn, zitten er in 5.6 nog steeds in. Daarbij, zeker als je maatwerk producten draait, is het helemaal niet gek om gewoon een oudere PHP versie te blijven draaien als dat beter uitkomt.quote:Op zondag 30 november 2014 06:55 schreef remi1986 het volgende:
[..]
Kom op KomtTijd. Je doet in heel DIG alsof je overal verstand van hebt...
Deprecated betekent dat de functie in een volgende versie er niet meer is (ja verwijderd ja). Heb je een groot probleem als je alles met mysql_ hebt gemaakt en je host opeens aankondigt over te gaan op MySQL 5.5. Ik weet ook dat dit niet van de één op de andere dag gebeurt, maar vroeg of laat upgraden ze allemaal. Dan ben je dus te laat.
Zoals ik al zei, dat werkt alleen als je daar de capaciteiten toe hebt. Heel veel ontwikkelaars zullen zich niet met serverbeheer kunnen, willen of mogen bemoeien en lang niet alle softwareproducenten hebben een aparte server beheerder in dienst. En dan ben je echt beter af met een managed server van een hosting partner dan dat je zelf ergens een vergeten bak in een stoffige berging gooit waar nooit iemand naar omkijkt.quote:Op zondag 30 november 2014 07:13 schreef remi1986 het volgende:
[..]
als je servers tot de belangrijkste onderdelen van je bedrijf behoren en je klanten afhankelijk zijn daarvan, neem je jezelf gewoon niet serieus als je dat zelf niet in beheer hebt. Als er een server uitligt, moet je vervolgens gaan wachten tot die andere partij het oplost. Zelf ff inloggen via SSH en een restart doen is paar seconden werk.
En serverbeheer is helemaal niet moeilijk, en al helemaal niet als het allemaal goed gedocumenteerd is. Toen ik begon bij het bedrijf waar ik nu werk, kreeg ik een aparte pc en werd mij verplicht Gentoo te gaan leren en te gaan stoeien met dingen waar je dagelijks mee te maken kan krijgen.
We hebben weleens gehad dat de MySQL replica helemaal de mist in ging. Dan is het heerlijk als je dat zelf binnen een paar minuten hebt opgelost i.p.v. maar hopen dat die andere partij het doet.
quote:Op zondag 30 november 2014 21:00 schreef KomtTijd... het volgende:
[..]
dan dat je zelf ergens een vergeten bak in een stoffige berging gooit waar nooit iemand naar omkijkt.
Lijkt me dat je dat in je code wilt oplossen en niet in de DB. In de DB blijven ID's (normaliter) gewoon uniek.quote:Op maandag 1 december 2014 17:14 schreef Nattekat het volgende:
Ik ben een site aan het maken waarbij het de bedoeling is om iedere keer als de zoveelste rij erbij komt de eerste rij te verwijderen. Nou is dit al werkend gekregen, maar ik kom er maar niet uit hoe ik de IDs weer opnieuw kan rangschrikken, want nu begint de eerste rij met 2 ipv 1.
Is er een manier om dit voor elkaar te krijgen?
Definieer rangschikken. Je kunt natuurlijk vrij eenvoudig gewoon "UPDATE table SET id=id-1" doen na het verwijderen van de eerste en toevoegen van de nieuwe rij, maar doorgaans is het niet zo bijster handig om op een dergelijke manier met IDs te gaan lopen klooien.quote:Op maandag 1 december 2014 17:14 schreef Nattekat het volgende:
Ik ben een site aan het maken waarbij het de bedoeling is om iedere keer als de zoveelste rij erbij komt de eerste rij te verwijderen. Nou is dit al werkend gekregen, maar ik kom er maar niet uit hoe ik de IDs weer opnieuw kan rangschrikken, want nu begint de eerste rij met 2 ipv 1.
Is er een manier om dit voor elkaar te krijgen?
Was ik al bang voor.quote:Op maandag 1 december 2014 17:18 schreef KomtTijd... het volgende:
[..]
Lijkt me dat je dat in je code wilt oplossen en niet in de DB. In de DB blijven ID's (normaliter) gewoon uniek.
Je wilt dus gewoon 'de eerste 100' hebben?quote:Op maandag 1 december 2014 17:21 schreef Nattekat het volgende:
[..]
Was ik al bang voor.
Heb wel wat gelezen over het herschrikken, maar niks gevonden dat werkt.
Om het simpel te houden was het idee een enkele query te hebben om ipv id 2 tot 101 id 1 tot 100 te hebben, dat wil ik ook bereiken.
En een ORDER BY ID voor het geval dat niet de default is.quote:Op maandag 1 december 2014 17:24 schreef KomtTijd... het volgende:
als je gewoon een query maakt met LIMIT(0,100), dan heb je dat toch?
quote:Op maandag 1 december 2014 17:24 schreef Monolith het volgende:
[..]
Je wilt dus gewoon 'de eerste 100' hebben?
Het probleem daarmee is dat er dan onnodige gegevens behouden blijven, en dat is niet wat ik wil bereiken.quote:Op maandag 1 december 2014 17:24 schreef KomtTijd... het volgende:
als je gewoon een query maakt met LIMIT(0,100), dan heb je dat toch?
Welke onnodige gegevens blijven er behouden?quote:Op maandag 1 december 2014 17:27 schreef Nattekat het volgende:
[..]
[..]
Het probleem daarmee is dat er dan onnodige gegevens behouden blijven, en dat is niet wat ik wil bereiken.
Inderdaad.quote:Op maandag 1 december 2014 17:28 schreef KomtTijd... het volgende:
Ik ben altijd groot voorstander van het zoveel mogelijk bewaren van (onnodige) gegevens. Waarom weggooien als je er geen last van hebt.
quote:Op maandag 1 december 2014 17:14 schreef KomtTijd... het volgende:
Goftedomme zeg. Moet ineens hals over kop wat klussen aan een oude applicatie (die er over een paar maanden hopelijk uit gaat), blijkt gewoon 3 kwart van de tabellen geen enkele index te hebben. Goh, dus daarom duren de queries een halve seconde
Je data kun je super makkelijk selecteren met query's, dus de hoeveelheid maakt niet zoveel uit.quote:Op maandag 1 december 2014 18:11 schreef Nattekat het volgende:
Denk dat ik die makkelijke oplossing van het niet verwijderen maar neem.
Voor mijn gevoel staat dat juist slordig, maar ik ben dan nog niet erg into de php/mysql.
Gewoon softdeleten, heeft bij mij vaak ook de voorkeur boven verwijderen.quote:Op maandag 1 december 2014 18:11 schreef Nattekat het volgende:
Denk dat ik die makkelijke oplossing van het niet verwijderen maar neem.
Voor mijn gevoel staat dat juist slordig, maar ik ben dan nog niet erg into de php/mysql.
Dat wel ja. Gelukkig loop ik nog tegen genoeg andere problemen aan om dat weer te compenserenquote:Op maandag 1 december 2014 18:09 schreef TwenteFC het volgende:
[..]Ik ben altijd wel blij als het zo iets banaals is, klik klik klik, klaar.
Het is ook niet de bedoeling dat je dagelijks via database-management tools in de database gaat kijken of je data er niet slordig uit ziet. Databases zijn er niet om er netjes uit te zien, daar heb je je queries voor.quote:Op maandag 1 december 2014 18:11 schreef Nattekat het volgende:
Denk dat ik die makkelijke oplossing van het niet verwijderen maar neem.
Voor mijn gevoel staat dat juist slordig, maar ik ben dan nog niet erg into de php/mysql.
Nou ja, het kan natuurlijk wel degelijk voor traagheid zorgen wanneer overbodige data niet wordt opgeruimd.quote:Op maandag 1 december 2014 18:19 schreef KomtTijd... het volgende:
[..]
Dat wel ja. Gelukkig loop ik nog tegen genoeg andere problemen aan om dat weer te compenseren
[..]
Het is ook niet de bedoeling dat je dagelijks via database-management tools in de database gaat kijken of je data er niet slordig uit ziet. Databases zijn er niet om er netjes uit te zien, daar heb je je queries voor.
Dit moet ik mijn baas ook nog wel eens uitleggen![]()
Gewoon MySQL workbench?quote:Op dinsdag 9 december 2014 15:20 schreef KomtTijd... het volgende:
Wat is nou een relaxte databasetool voor als je PHPMyAdmin zat begint te raken?
Webbased of linux, en een beetje eenvoudig en overzichtelijk. Heb wel eens wat met HeidiSql maar die vond ik ook irritant (en lelijk).
Alleen jammer dat het zo'n vreselijk trage en buggy applicatie is. Vind Sequel Pro ook wel fijn werkenquote:
Ik doe zelf eigenlijk erg weinig DBA werk de laatste jaren, zeker op SQL gebied. Hooguit wat met RoboMongo en dergelijke.quote:Op dinsdag 9 december 2014 16:31 schreef robin007bond het volgende:
[..]
Hier heeft het de bijnaam MySQL CrashBench gekregen.![]()
Kun je wel mooie ERD's in maken.
Waarom ben je phpmyadmin zat dan?quote:Op dinsdag 9 december 2014 16:58 schreef KomtTijd... het volgende:
Ik hoef niets ingewikkelds, moet gewoon af en toe kunnen zien wat er in de database gebeurt als ik mijn code uitvoer. Of wat testrecords verwijderen ofzo.
Op zich is PhpStorm prima, maar het zit zó ongelooflijk vol met allerhande glitches... pfft je wordt er gewoon moe van.
Leuk dat je PHPStorm wegstreept, je kan in PHPStorm je database sources toevoegen en dan heb je daar ook een autocomplete op.quote:Op dinsdag 9 december 2014 16:58 schreef KomtTijd... het volgende:
Ik hoef niets ingewikkelds, moet gewoon af en toe kunnen zien wat er in de database gebeurt als ik mijn code uitvoer. Of wat testrecords verwijderen ofzo.
Op zich is PhpStormPhpMyAdmin prima, maar het zit zó ongelooflijk vol met allerhande glitches... pfft je wordt er gewoon moe van.
1 2 3 4 5 6 7 8 9 | <?php $dirname = "fotoalbum/fotoalbum/*/"; $images = glob($dirname."*.JPG"); foreach($images as $image) { if ($image == 0) { echo '<img src="'.$image.'" />'; } } ?> |
Je checkt niet op index.quote:Op maandag 29 december 2014 21:58 schreef MrNiles het volgende:
ik wil graag uit verschillende folders 1 image halen
heb nu dit, maar dan krijg ik toch alle foto's te zien
met toevoegen van => $value kom ik er ook niet aan uit
Hie kan ik dit het beste oplossen?
[ code verwijderd ]
Value is de index. Je wil altijd alleen de eerste index hebben, dus moet je value checken op 0.quote:Op maandag 29 december 2014 22:09 schreef MrNiles het volgende:
[..]
[ code verwijderd ]
iets in deze richting?
quote:Op maandag 29 december 2014 22:10 schreef Scorpie het volgende:
[..]
Value is de index. Je wil altijd alleen de eerste index hebben, dus moet je value checken op 0.
1 2 3 4 5 6 7 8 9 10 | <?php dan zou ik verwachten zoiets $dirname = "fotoalbum/fotoalbum/*/"; $images = glob($dirname."*.JPG"); foreach($images as $image => $value) { if ($value == 0) { echo '<img src="'.$image.'" />'; } } ?> |
1 2 3 4 | <?php if ($image == 0) { echo '<img src="'.$value.'" />'; ?> |
bijna een snelle edit gedaan...heb ik dus gedaanquote:Op maandag 29 december 2014 22:22 schreef Monolith het volgende:
value => image in plaats van andersom.
dan moet je eerst een readdir doen van de root map, door de mappen loopen en per map de afbeeldingen ophalen en de eerste tonen.quote:Op maandag 29 december 2014 22:23 schreef MrNiles het volgende:
[..]
bijna een snelle edit gedaan...heb ik dus gedaan
maar dan krijg ik alleen de eerste foto van de eerste folder
Die had ik al eens geprobeerd, maar dan krijg ik een loop van foto1 uit folder1, geen andere foldersquote:
Zeker waarquote:Laat TS ff lekker kutten met arrays, anders snapt hij het nooit
https://github.com/fzaninotto/Fakerquote:Op maandag 12 januari 2015 11:44 schreef Aether het volgende:
Voor als iemand testgegevens nodig heeft:
http://www.generatedata.com/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | CREATE TABLE IF NOT EXISTS `videos` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `site_id` int(10) unsigned NOT NULL, `video_id` varchar(64) NOT NULL, `tags` varchar(255) NOT NULL, `uploaddate` datetime NOT NULL, `title` varchar(255) NOT NULL, `description` text NOT NULL, `thumbnail` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, `embed` varchar(255) NOT NULL, `seconds` int(10) unsigned NOT NULL, `lastview` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `ratingcount` int(10) unsigned NOT NULL, `ratingtotal` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `site_id` (`site_id`), FULLTEXT KEY `tags` (`tags`), FULLTEXT KEY `title` (`title`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7217117 ; |
1 2 | SELECT COUNT( 1 ) FROM (SELECT * FROM `videos` WHERE `tags` LIKE '%home%') t |
Ik heb zelf slechte ervaringen met zoeken in grote tabellen, zowel MyISAM als InnoDB.quote:Op donderdag 15 januari 2015 10:14 schreef Chandler het volgende:
Korte vraag mbt zoeken op grote tabellen.
Voor een vriend mag ik een importeer scriptje schrijven voor het importeren van ruim 7 miljoen videos met oa de volgende gegevens titel, tags, duur
Nu heb ik al een scriptje geschreven die dit alles importeert in een database tabel waarbij ik titel, tags als fulltext indexeer en wil apart daarvan de duur (lengte van het filmpje) ook nog gaan indexeren (zodat de gebruiker daar ook op kan zoeken)
Nu heb ik net een query uitgevoerd op deze tabel en dat duurde echt erg lang
Tabel: 7,217,116 MyISAM latin1_swedish_ci 4,8 GiB
[ code verwijderd ]
Nu duurt de volgende query:
[ code verwijderd ]
erg lang (zo'n 10 seconden).
Met limit 0,30 duurt deze query 0.0240 secs
Is er een mogelijkheid om deze query sneller te maken? eventueel tags in een apart tabel?
quote:Op donderdag 15 januari 2015 13:17 schreef Monolith het volgende:
Zoals echter al aangegeven kun je beter een search platform gebruiken als SOLR, ElasticSearch, Sphinx, etcetera.
Je kunt het iets beter krijgen door geen subquery te gebruiken:quote:Op donderdag 15 januari 2015 10:14 schreef Chandler het volgende:
Nu duurt de volgende query:
[ code verwijderd ]
erg lang (zo'n 10 seconden).
Met limit 0,30 duurt deze query 0.0240 secs
Is er een mogelijkheid om deze query sneller te maken? eventueel tags in een apart tabel?
1 | SELECT COUNT( * ) FROM `videos` WHERE `tags` LIKE '%home%' |
Da's zeker een optie die het overwegen waard is, helemaal omdat het over redelijk grote datasets gaat.quote:Op donderdag 15 januari 2015 13:17 schreef Monolith het volgende:
Zoals echter al aangegeven kun je beter een search platform gebruiken als SOLR, ElasticSearch, Sphinx, etcetera.
Die tags in een aparte tabel opslaan is alvast een stap, mits je de indexes goed zet en gebruikt.quote:Op vrijdag 16 januari 2015 08:05 schreef Chandler het volgende:
Klopt Light!
Echter heeft de hosting waar dit straks moet gaan draaien blijkbaar geen zoekplatformen of de mogelijkheid daarvoor, ik ga eerst eens spelen met tags en kijken hoe ik daar het meeste uit kan halen. Eventueel het tijdelijk opslaan van data sets... zodat hergebruik stukken sneller gaat...
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |