Crutch | vrijdag 18 mei 2012 @ 12:28 | |||||||
Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt Zie ook: • PHP Dataverwerking • Officiële PHP website • PHP Documentatie • MySQL Reference Manual • Yet Another PHP Faq • PHP Cheat Sheet • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc Tutorials: • W3Schools PHP • W3Schools SQL | ||||||||
Light | vrijdag 18 mei 2012 @ 12:48 | |||||||
DateTime gaat dat gewoon snappen, daar hoef je niets moeilijks voor te doen. | ||||||||
xaban06 | vrijdag 18 mei 2012 @ 13:50 | |||||||
Is dat niet vanaf PHP 5.3.0? Tenminste een boel functies ervan. Ik draai 5.2.x | ||||||||
Light | vrijdag 18 mei 2012 @ 13:55 | |||||||
Bijna alles werkt vanaf 5.2.0, volgens mij alleen DateTime::diff() niet. Maar die heb je niet nodig in dit geval | ||||||||
xaban06 | zaterdag 19 mei 2012 @ 08:16 | |||||||
Cool!
Unixtime 'nu+30 minuten' doe ik met:
Vervolgens vergelijk ik of $date3 valt tussen $now en $future:
Ik ben totaal noob met tijd/data. Dus het zal vast wel makkelijk/sneller/beter kunnen. Of doe ik het toch correct? [ Bericht 14% gewijzigd door xaban06 op 19-05-2012 08:23:03 ] | ||||||||
raptorix | zaterdag 19 mei 2012 @ 08:39 | |||||||
Geen idee, maar weet wel dat ik blij ben met datetime functies in .net | ||||||||
Light | zaterdag 19 mei 2012 @ 09:02 | |||||||
Je kunt ook DateTime objecten met elkaar vergelijken
Ik heb hier geen PHP 5.2 om te testen of het daar ook werkt. Ik vermoed van wel | ||||||||
xaban06 | zaterdag 19 mei 2012 @ 09:58 | |||||||
Ik zie dat dat ook werkt, thanks! had je ook eerder mee kunnen komen, had ik het gelijk al | ||||||||
xaban06 | zaterdag 19 mei 2012 @ 18:05 | |||||||
Het volgende werkt niet:
Foutmelding:
Hoe moet het wel? | ||||||||
Scorpie | zaterdag 19 mei 2012 @ 20:02 | |||||||
Jouw code werkt bij mij gewoon:
Geeft als output:
| ||||||||
xaban06 | zaterdag 19 mei 2012 @ 21:39 | |||||||
Pff, wat doe ik dan verkeerd
| ||||||||
Devv | zaterdag 19 mei 2012 @ 22:00 | |||||||
Probeer eens print_r() in plaats van echo(). | ||||||||
Scorpie | zaterdag 19 mei 2012 @ 22:01 | |||||||
Doe eens print_r ipv echo. | ||||||||
xaban06 | zaterdag 19 mei 2012 @ 22:04 | |||||||
DateTime Object ( ) | ||||||||
xaban06 | zondag 20 mei 2012 @ 14:44 | |||||||
output:
Ik moet het volgens mij dus omzetten naar een string, echter is dat wel mogelijk en is dat wel juist? | ||||||||
Dalando | zondag 20 mei 2012 @ 16:41 | |||||||
Je kan niet de class weergeven, je moet aangeven dat je het wil weergeven in de class, en in DateTime is dat format:
| ||||||||
xaban06 | zondag 20 mei 2012 @ 16:56 | |||||||
Klopt, had het al opgelost, thanks voor je post! | ||||||||
Schepseltje | zondag 20 mei 2012 @ 21:19 | |||||||
Ik heb het eindelijk voor elkaar dat ik wildcards kan gebruiken voor mijn wamp-server Als ik in de browser typ "mijnproject.local" krijg ik d:\projects\mijnproject te zien Dus zonder httpd.conf en de host file aan te passen... heb het voor elkaar gekregen met deze en deze tip. | ||||||||
boem-dikkie | zondag 20 mei 2012 @ 21:39 | |||||||
Kun je die files niet aanpassen met Windows? Heb op OSX gewoon een paar regeltjes toegevoegd en website.dev e.d. werkt nu prima. | ||||||||
Schepseltje | zondag 20 mei 2012 @ 21:54 | |||||||
Ja kan, net als elke keer een nieuwe virtualhost toevoegen, maar het wordt al snel vervelend om dat bij elk project te doen.. en bij een format ben je weer al je instellingen kwijt.. nu werkt het automatisch zonder nadenken, ik creeer een app of ik doe een git clone, en gelijk doet ie het onder z'n eigen subdomein [ Bericht 2% gewijzigd door Schepseltje op 20-05-2012 22:05:15 ] | ||||||||
boem-dikkie | maandag 21 mei 2012 @ 11:08 | |||||||
Hebben jullie tips voor een multiple file upload? Script van Uploadify werkt bijzonder brak. Ik wil eigenlijk dat de gebruiker met 1 uploadvenster meerdere files kan selecteren en dat deze in een /uploads/ map komen en met hun naam in de database. | ||||||||
xaban06 | maandag 21 mei 2012 @ 11:33 | |||||||
Is makkelijk zelf te maken, probleem is een upload/progress bar. Heb jij misschien tips voor kant en klare systemen? Hoeft geen multiple files te ondersteunen. | ||||||||
boem-dikkie | maandag 21 mei 2012 @ 11:51 | |||||||
Hoe moet ik dat 'makkelijk' zelf maken dan? Met een loop elke file die geselecteerd wordt in de database plempen en naar de goede map zetten? | ||||||||
Scorpie | maandag 21 mei 2012 @ 11:59 | |||||||
plupload.com | ||||||||
ursel | maandag 21 mei 2012 @ 12:01 | |||||||
Ik wou hem net posten. http://www.plupload.com/example_all_runtimes.php | ||||||||
Schepseltje | maandag 21 mei 2012 @ 12:48 | |||||||
Ik vind uploadify erg fijn werken.. alleen in IE is ie brak | ||||||||
boem-dikkie | maandag 21 mei 2012 @ 13:24 | |||||||
Ik heb een mySQL query in mijn upload.php en die pakt hij helemaal niet... hij echo't ook niks maar hij upload alles wel netjes naar /uploads/. Geen idee waarom die query niet werkt. Heb ook ge'echo't en ge'alert' bij dat stukje code en dat laat hij ook niet zien. Terwijl hij overduidelijk wél dat stukje code uitvoert. | ||||||||
Schepseltje | maandag 21 mei 2012 @ 14:49 | |||||||
Kan komen omdat ie de fallback gebruikt waardoor het niet via ajax gaat maar via een standaard iframe. Bij het uploaden via een iframe komen de files binnen via $_FILES ipv $_POST.. De laatste keer heb ik het zo gedaan
[ Bericht 24% gewijzigd door Schepseltje op 21-05-2012 14:57:43 ] | ||||||||
Cue_ | woensdag 23 mei 2012 @ 10:46 | |||||||
Ik wil in een SQL query een select doen van een veld, maar daarvan wil ik de laatste teken weghalen. Wat in PHP dus een substr($veld, 0,-1) zou zijn, werkt niet in SQL. De waardes in de kolom hebben ook geen vaste lengte, dus daar kan ik ook niets mee doen. Iemand een idee? | ||||||||
Scorpie | woensdag 23 mei 2012 @ 10:47 | |||||||
LETTERLIJK de eerste hint bij google "SQL substring": http://www.1keydata.com/sql/sql-substring.html | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 10:50 | |||||||
via SUBSTR( http://dev.mysql.com/doc/refman/5.5/en/string-functions.html | ||||||||
Cue_ | woensdag 23 mei 2012 @ 10:50 | |||||||
Die had ik gezien jah Maar dan zit ik dus met het feit dat een -1 niet werkt om de laatste cijfer weg te halen En ik niet kan opgeven wat de lengte is. omdat deze variabel is | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 10:51 | |||||||
daar is ook een functie voor om die op te vragen. | ||||||||
Scorpie | woensdag 23 mei 2012 @ 10:52 | |||||||
Dan haal je het resultaat op en haal je er met substr() in PHP 1 vanaf? Waarom wil je dat uberhaupt in SQL oplossen? Klinkt alsof je weer zit te kloten met je datamodel meid. Wil je toch doorgaan dan kan je http://www.1keydata.com/sql/sql-length.html gebruiken. | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 10:53 | |||||||
Voor de variabele lengte gebruik je dan CHAR_LENGTH | ||||||||
Cue_ | woensdag 23 mei 2012 @ 10:53 | |||||||
Volgens mij wordt dit hem dan select substr(id, 1, (length(id) -1)) from | ||||||||
Cue_ | woensdag 23 mei 2012 @ 10:54 | |||||||
Omdat ik even wat moet opschonen, een import functie van mij was wat verkeerd. | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 10:54 | |||||||
en dit. Zoiets doe je normaal niet via SQL. | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 10:54 | |||||||
ah dan is het een ander verhaal | ||||||||
Scorpie | woensdag 23 mei 2012 @ 10:57 | |||||||
Hoeveel records moet je opschonen? Laat me raden, er staat een spatie teveel achter elk ID? | ||||||||
Catch22- | woensdag 23 mei 2012 @ 10:58 | |||||||
als je uberhaupt een spatie in een ID veld kan krijgen is je database al niet lekker | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:00 | |||||||
Uhm er zitten nu bijna 3000 records in, maar denk een kwart ervan. Heb dubbele records met een ander id (laatste getal anders). Dus moet het even opschonen die nog niet zijn gekoppeld met andere data maar wel dubbel zijn. En even importfunctie veranderen natuurlijk Zeg maar van die leuke beginners importfoutjes. | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:02 | |||||||
En daarom is het principe OTAP uitgevonden. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:03 | |||||||
Het is ook niet goed genoeg getest. | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:04 | |||||||
Lekker dan, zit je met je zooitje. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:05 | |||||||
Ook eigen schuld. Maar daar leren we van | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:06 | |||||||
Wacht even, je test je eigen werk? | ||||||||
Catch22- | woensdag 23 mei 2012 @ 11:06 | |||||||
je hebt je tabel ook niet goed ingericht als zulke fouten kunnen ontstaan. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:07 | |||||||
Je test je werk tijdens het maken natuurlijk ook. En daar zitten wat verbeterpuntjes voor mij in. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:08 | |||||||
Klopt | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:08 | |||||||
Ja leuk, maar daarna moet het getest worden door een collega, en als je een OTAP straat hebt ook nog eens door een tester, en dan nog een keer op Acceptatie, voordat het uberhaupt op Productie komt. | ||||||||
Catch22- | woensdag 23 mei 2012 @ 11:09 | |||||||
ben jij net als RenRen- zo'n pruster die iets moet doen voor haar opleiding en er verder nooit wat mee gaat doen? | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:10 | |||||||
OTAP hebben we niet. Wel een collega die het vervolgens test. Maar hebben daar geen hele procedures voor ofzo. Tja en daar is dit niet in opgevallen. Zoals ik zeg, letten we de volgende keer weer op. | ||||||||
Catch22- | woensdag 23 mei 2012 @ 11:11 | |||||||
Je moet gewoon accurater en gestructureerder werken, dan voorkom je al een hoop fouten. | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:11 | |||||||
Zo kan je toch niet werken meid? | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:12 | |||||||
Nee, tis m'n werk, en ik probeer wel te verbeteren. Ben hier binnengekomen zonder gedegen kennis. En de begeleiding is altijd geweest van 'probeer maar wat uit', 'knip en plakwerk'.. En daar kan je mee redden, maar is niet wat ik wil. Dus begin binnenkort een cursus webdevolopment om op dat gebied wat meer basisstructuur op te doen. En mbt databases zal er ook zeker wel wat komen. | ||||||||
Catch22- | woensdag 23 mei 2012 @ 11:14 | |||||||
Ja dat snap ik wel, ik ben ook onopgeleid begonnen, dus je gaat mijn pad bewandelen. Alleen moet je gewoon duidelijk beredeneren wat je doet en wat er mis zou kunnen gaan. En een import doe je niet met 3000 tegelijk testen, je doet 1 of 10 rijen en dan kijk je of het goed gaat. | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:14 | |||||||
Loop anders maar even een maand of twee met mij mee. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:16 | |||||||
Klopt, ik moet ook meer structuur erin krijgen en gewoon eens wat beter nadenken ipv gewoon doen en maar zien. Dat leer ik juist van dit soort fouten. De manier van waarop ik dat getest heb was gewoon verkeerd. Simpel. Dus het was al in productie gegaan, vandaar dat de database nu wat voller zit. | ||||||||
Catch22- | woensdag 23 mei 2012 @ 11:17 | |||||||
"Een fout is pas een fout als je er niet van leert" | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:40 | |||||||
Maargoed nu we toch bezig zijn en er nog wel een goede oplossing moet komen.. Ik zit met het volgende. Ik krijg van een bedrijf data binnen mbt tankingen die er gedaan zijn. Nu moet dat bestand dus geimporteerd worden in een database. Probleem is alleen het volgende, ik krijg dubbele regels aangeboden:
Nu dacht ik dat opgelost te hebben, door zelf een ID samen te stellen van diverse velden die hem zo goed al uniek maken + een extra getal op t einde. Doordat het bovengenoemde bestand dagelijks wordt aangevuld met nieuwe tankingen, moet ik dus bij de import kijken of het record reeds bestaat. Nu is dus gebleken dat de volgorde van de records in dat bestand gewijzigd worden door die aanvulling. En dat extra getal in mijn ID dus niet werkt.. Hebben jullie nog geniale ingevingen waar ik wat mee kan? [ Bericht 34% gewijzigd door Cue_ op 23-05-2012 11:45:58 ] | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:42 | |||||||
Als ik dit soort zaken moet berekenen werk ik meestal met hash vergelijkingen. Dat wil zeggen; hash een record voordat je hem opslaat, sla de hash apart op en elke nieuwe record vergelijk je met de hashes die je apart hebt opgeslagen. Hash bestaat al? Record is duplicaat -> niks doen. | ||||||||
ursel | woensdag 23 mei 2012 @ 11:44 | |||||||
Daarnaast zou ik ook niet dit soort "persoonlijke" zaken op een forum zetten. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:46 | |||||||
Heb je een punt | ||||||||
ursel | woensdag 23 mei 2012 @ 11:48 | |||||||
Hier, heb jij er ook een . | ||||||||
Scorpie | woensdag 23 mei 2012 @ 11:48 | |||||||
| ||||||||
Cue_ | woensdag 23 mei 2012 @ 11:54 | |||||||
Ik zal hier eens induiken. | ||||||||
Pizzalucht | woensdag 23 mei 2012 @ 12:11 | |||||||
Inderdaad gewoon de kolommen die samen uniek moeten zijn combineren tot een hash en dan vergelijken. md5( $naam . '.' . $telefoonnummer ) Simpel zat, en het werkt | ||||||||
Cue_ | woensdag 23 mei 2012 @ 12:13 | |||||||
Maar de kolommen zelf zijn dus samengevoegd niet uniek | ||||||||
Scorpie | woensdag 23 mei 2012 @ 12:22 | |||||||
Hm? | ||||||||
Cue_ | woensdag 23 mei 2012 @ 12:25 | |||||||
Er kunnen twee/drie identieke regels in het bestand staan (ja snap ook niet waarom) . En moet ze dan ook alle twee hebben. Maar bij de volgende import, het aangevulde bestand, kom ik ze dus weer tegen, maar dan wil ik ze niet. Hmm, dus misschien met counts in de definitieve tabel gaan werken en een count in de importtabel.. en dat moet gelijk zijn aan elkaar? | ||||||||
Scorpie | woensdag 23 mei 2012 @ 12:30 | |||||||
Ik snap het niet. Je hebt een record die word in de database gezet bij een import actie. Dat is record A. Vervolgens bij een volgende import actie komt record A weer langs maar nu als record B. Je weet dat record B stiekem record A is, want je hebt alle eigenschappen van record A in een hash gestopt en die opgeslagen. Je vergelijkt de hash van record A met die van record B, en ze komen overeen. Op dat moment weet je dus dat record B stiekem record A is, en doe je niks. Ik snap niet helemaal wat je nu over wel/niet identieke regels bazelt, of over samenvoegen van dingen, of over counts van records. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 12:39 | |||||||
Ik heb een CSV bestand met data die ik van een bedrijf krijg. In dat bestand komt het voor dat er identieke regels in staan. Dus bijvoorbeeld regel 1: ab ; 43 ; ds ; 565 regel 2: ab ; 43 ; ds ; 565 regel 3: sz ; 43 ; ss ; 454 Hoe je de gegevens ook samenvoegt, je krijgt dus geen unieke ID Deze regels importeer ik in een tabel. alle drie de regels dus. een paar dagen later krijgen we een nieuw CSV bestand die bovenstaande drie regels bevat + extra data: Dus regel 1,2,3 + regel 4,5,6 De vraag is nu. Als ik dus dat CSV bestand, die t/m regel 6 bevat, importeer, ik zie dat regel 1 /tm 3 reeds aanwezig zijn in de tabel en dat ik dus alleen regel 4 t/m 6 daadwerkelijk naar de tabel moet schrijven. | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 12:53 | |||||||
Waarom parse je dat csv bestand dan niet eerst met PHP om dubbele regels eruit te halen? | ||||||||
Cue_ | woensdag 23 mei 2012 @ 12:53 | |||||||
Omdat ik die dubbele regels wel moet hebben. Dus in mijn voorbeeld heb ik regel 1 en 2 ook echt nodig. | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 12:55 | |||||||
/Gebruik gewoon een programma om beide CSV files naast elkaar te zetten om de verschillen te zien, dan kun je de oude data uit het nieuwe CSV bestand halen. Zo moeilijk is het niet | ||||||||
Cue_ | woensdag 23 mei 2012 @ 12:57 | |||||||
Dergelijke imports zal 2x in de week gedaan worden door computerleken. Die gaan dat soort dingen nog niet echt ernaast doen. | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 12:58 | |||||||
Dan parse je eerst de oude CSV samen met de nieuwe en strip je die data uit de nieuwe CSV en dat doe je dan importen. Kun je gewoon via PHP een leuk scriptje voor schrijven | ||||||||
Cue_ | woensdag 23 mei 2012 @ 13:11 | |||||||
Tnx, ga ik eens mee aan de slag | ||||||||
Scorpie | woensdag 23 mei 2012 @ 13:13 | |||||||
De data van regel 1 en regel 2 zijn identiek. Er is dus geen enkele reden om mijn oplossing niet te gebruiken. Edit; wat stefan zegt. Of je pakt het structureel aan en eist dat het CSV bestand dat wordt aangeleverd alleen nieuwe data bevat. | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 13:13 | |||||||
Tis dat mijn internet hier op school zo kut is. Ben een voorbeeld aant maken. | ||||||||
Cue_ | woensdag 23 mei 2012 @ 13:20 | |||||||
tnx | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 13:21 | |||||||
Mijn internet is hier zo waardeloos dat ik niks kan uploaden naar mijn server via FTP Klote nerds die aant gamen zijn | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 13:51 | |||||||
Simpele code om alle oude regels die overeen komen in de nieuwe CSV te verwijderen: Even heel snel gemaakt met snel internet alles. Je zou dit veel beter uit moeten werken in een professionele situatie:
[ Bericht 1% gewijzigd door stefanhaan op 23-05-2012 13:59:02 ] | ||||||||
GlowMouse | woensdag 23 mei 2012 @ 13:53 | |||||||
str_replace met een regexp? | ||||||||
stefanhaan | woensdag 23 mei 2012 @ 13:57 | |||||||
Whoops die hoorde er niet bij Typo alles | ||||||||
Schepseltje | donderdag 24 mei 2012 @ 12:23 | |||||||
Zijn hier nog Magento gurus? Ik probeer het volgende te bereiken, stel ik heb een product "Adidas Sneaker", deze staat zowel onder de categorie "Sale" als de categorie "Sneakers". Als je vanuit de categorie Sneakers op de schoen klikt wordt de url /sneakers/adidas-sneaker.html en als je vanuit Sale op de schoen klikt wordt de URL /sale/adidas-sneaker.html. (verder is de schoen altijd ook nog bereikbaar via /adidas-sneaker.html) Wat is de netste manier om Magento te vertellen dat elk product één hoofdcategorie heeft die moet terugkomen in de URL en breadcrumbs? Ik weet dat er zoiets bestaat als canonical URL, maar daarmee los je alleen het SEO-aspect op, de gebruiker ziet nog steeds verschillende categorieen in de URL en breadcrumbs. | ||||||||
KomtTijd... | donderdag 24 mei 2012 @ 15:07 | |||||||
Zijn hier mensen die ervaring hebben met CRM software? Ik werk sinds kort met VtigerCRM (een fork van SugarCRM), maar word hier af en toe een beetje droevig van... | ||||||||
Ofyles2 | donderdag 24 mei 2012 @ 15:12 | |||||||
Daar snijd je een punt aan. Ik beschouw webdevelopment net als radio-DJ worden. Het komt aan op fingerspitzengefühl en liefde voor het vak. Het maakt niet uit of je kan programmeren vanaf je 6e of 18e. | ||||||||
Ofyles2 | donderdag 24 mei 2012 @ 15:12 | |||||||
Geef ze aan zou ik zeggen. | ||||||||
cablegunmaster | donderdag 24 mei 2012 @ 15:17 | |||||||
Webdevelopment kan je ook applicaties maken zoals een eigen CMS of een uitgebreide webapplicatie. Hierin kan je zo klein / groot bezig gaan als je wil . Statisch of Dynamisch. | ||||||||
Civilian | donderdag 24 mei 2012 @ 15:47 | |||||||
Daarvoor zou je de functie getUrl() aan kunnen passen en zorgen dat je altijd de hoofdcategorie gebruikt. Mage_Catalog_Model_Product extenden en daarin de functie getUrl() plaatsen en dan de originele waarde manipuleren. | ||||||||
Schepseltje | vrijdag 25 mei 2012 @ 13:01 | |||||||
getUrl bestaat niet volgens mij, getProductUrl() wel, maar dat is geen standaardmethode maar een magic getter, in feite is het gewoon een attribuut. Ik heb het nu volgens de lelijke manier opgelost, een nieuw attribuut gemaakt bij elk product, en dan met een cronjob de juiste URL genereren en in dat attribuut zetten. Vervolgens getProductUrl() vervangen door m'n eigen helper functie.. | ||||||||
Schepseltje | vrijdag 25 mei 2012 @ 13:05 | |||||||
Ja ik ken hele grote bureaus die alleen maar Drupal doen.. op een kleine hack/instelling na komt er geen code bij kijken.. maargoed bij mij is de lol van drupal er wel een beetje af.. zodra je dingen wil doen die Drupal niet standaard ondersteund heb je een probleem.. . zelfde verhaal met wordpress/joomla/magento/etc Gewoon een degelijk framework bevalt me het beste, dan ben je tenminste echt iets aan het maken in plaats van een kant en klaar ding configureren.. | ||||||||
KomtTijd... | vrijdag 25 mei 2012 @ 13:07 | |||||||
Je kunt toch zelf modules maken? Nog altijd een stuk makkelijker dan een compleet eigen CMS maken. | ||||||||
Scorpie | vrijdag 25 mei 2012 @ 13:29 | |||||||
En minder kostbaar, wat klanten ook wel op prijs stellen. Letterlijk en figuurlijk. | ||||||||
Devv | vrijdag 25 mei 2012 @ 15:28 | |||||||
Microsoft Dynamics CRM. Werkt als een zonnetje. | ||||||||
Civilian | vrijdag 25 mei 2012 @ 15:57 | |||||||
Ja, het is een Magic getter. Maar die kan je heel makkelijk als functie in het productmodel zetten en dan behandelt hij het gewoon als een functie. Dat is ook het hele punt van die magic functie, dat is een soort van fallback wanneer er een functie wordt aangeroepen die niet bestaat. | ||||||||
Schepseltje | vrijdag 25 mei 2012 @ 16:40 | |||||||
Ah ok das nog wel te proberen | ||||||||
Pizzalucht | vrijdag 25 mei 2012 @ 17:04 | |||||||
Dat ligt meer aan ervaring. Met Drupal kan je eigenlijk alles aanpassen, als je weet hoe. De documentatie van Drupal is over het algemeen ook erg goed. Maar als je niet verder komt dan een module installeren, aanzetten en er dan achterkomen dat het niet precies is wat je zoekt, en dan stopt met proberen, dan is Drupal inderdaad niks voor je. Ik werk ook bij een bedrijf waar we bijna alleen maar Drupal doen, en het is veel meer dan alleen "een kleine hack/aanpassing". | ||||||||
cablegunmaster | vrijdag 25 mei 2012 @ 18:55 | |||||||
Ik vraag me af , ik zit nu heel erg in OO Php te verdiepen en nu is mij de vraag hoe ik het volgende idee moet uitvoeren, ik zit nu met een idee om al mijn Producten in klasses te maken zodat het makkelijker is om het uit te voeren / aan te passen. Kan een Object zichzelf vernietigen? , tweede vraag als ik een klasse heb genaamd $db en die wil ik overal gebruiken is Global $db; voldoende? of kan ik in de $db klasse iets doen zodat ik het niet perse in elke functie opnieuw hoef te definiëren.
Ik zat ook al met namespaces te kijken alleen dat is alleen als je php 5.3.0 en daarboven hebt.
Resultaat hoort "Test1Test2" uit te komen ongv. [ Bericht 17% gewijzigd door cablegunmaster op 25-05-2012 19:39:18 ] | ||||||||
Schepseltje | vrijdag 25 mei 2012 @ 20:10 | |||||||
Ja ik heb ook meerdere drupal sites gemaakt, en inderdaad je kunt het zo aanpassen als je wilt, net als elk opensource pakket, maar het is absoluut niet ideaal. De code is niet OOP en erg rommelig en inefficient (maar daarmee wel weer flexibel). Ik moest laatst een drupal site uitbreiden en in m'n template folder zat een waslijst aan view templates die allemaal weer losse stukjes content bevatten die werd aangesuurd door views. Oftewel een deel van je logica zit in de database (modules), een deel van je logica zit in templates (functies, config), een deel van je content zit in de database (nodes) en een deel van je content zit in templates (statische tekst). Verder zit er soms ook nog php code in je database om net iets verder te kunnen gaan dan er wordt aangeboden. Dan heb je nog de logica die nodig is om blocks/content op de juiste plaats te krijgen, dit is in het begin met taxonomy/context te doen, maar ook dit wordt een chaos als er meer pagina's, views, permissies, etc bijkomen... Ik zie het zo; een framework als Zend of Yii is als een verzameling bouwmaterialen (bakstenen, balken, gereedschap, etc) waarmee je zelf alles kan maken wat je wilt. Drupal is als een complete caravan waar je zo een prefab bed- of keukenblokje kan bijprikken. Maar wil je een extra verdieping of serre, dan heb je een probleem (het 'kan' wel, maar het is erg lelijk). [ Bericht 0% gewijzigd door Schepseltje op 25-05-2012 20:19:15 ] | ||||||||
Schepseltje | vrijdag 25 mei 2012 @ 20:26 | |||||||
Nee, waarom zou je dat willen? Dat zou kunnen maar het is niet hoe het hoort, een class moet zo zelfstandig mogelijk zijn. Je kunt OF de databasegegevens in de class zelf definieren (als je het alleen daar nodig hebt) OF je kunt de gegevens opgeven bij het oproepen van de class. Ik denk dat je het beste met een framework kan beginnen, dan wordt je gedwongen om op de juiste manier te werken en snap je het OOP concept veel sneller. | ||||||||
cablegunmaster | vrijdag 25 mei 2012 @ 21:16 | |||||||
Nieuwschierigheid . Ik probeer nu iets op te zetten in een soort van MVC model. Ik weet hoe het MVC model werkt, maar toch blijf ik verkennen wat kan en niet kan Volgens mij konden Exceptions namelijk ook al niet in PhP [ Bericht 5% gewijzigd door cablegunmaster op 25-05-2012 21:34:27 ] | ||||||||
Sitethief | vrijdag 25 mei 2012 @ 21:29 | |||||||
http://projecteuler.net/ Ben inmiddels al met probleem 3 bezig. best wel interessant om eens wat wiskunde met php te doen . | ||||||||
boem-dikkie | vrijdag 25 mei 2012 @ 21:58 | |||||||
Tof Sitethief, ook even kijken. Kan het trouwens aan een PHP server liggen hoe strtotime reageert? Als ik een strtotime functie gebruik als ik lokaal werk doet hij precies wat ik wil, namelijk gewoon de datum 25-05-2012 naar een unix timestamp converteren, als ik datzelfde doe op mijn webserver maakt hij er opeens 02-11-2030 van. | ||||||||
cablegunmaster | vrijdag 25 mei 2012 @ 22:02 | |||||||
Hoe echo je het? Want je kan de tijd instellen die op het huidige moment staat ingesteld. Probeer eens op beide server een simpele echo date uit te voeren en kijk of dat misgaat. of klopt. Vervolgens weet je hierdoor op welke tijd Je server staat. Of dit aan te passen is mogelijk. Maar ik weet niet zo snel waar. Kijk anders even hiernaar: [SOLVED] Php date function wrong time | ||||||||
boem-dikkie | vrijdag 25 mei 2012 @ 22:09 | |||||||
Ik gooi de userinput met de strtotime functie in de database. Dus de user zegt in een input veld: 25-05-2012 en met $datum = strtotime($datum); converteer ik het. Daarna het database riedeltje. Servertijd staat gewoon goed volgens mij, als ik time() echo geeft hij gewoon de datum van vandaag weer. | ||||||||
cablegunmaster | vrijdag 25 mei 2012 @ 22:36 | |||||||
Dan weet ik het even niet | ||||||||
Schepseltje | vrijdag 25 mei 2012 @ 23:28 | |||||||
http://php.net/manual/en/function.setlocale.php let erop dat je hem anders instelt op windows als bij linux | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 09:10 | |||||||
Al heb ik nog wel een beetje moeite om in OO-php te gaan denken. Komt wel goed | ||||||||
boem-dikkie | zaterdag 26 mei 2012 @ 10:23 | |||||||
Wat? | ||||||||
boem-dikkie | zaterdag 26 mei 2012 @ 10:24 | |||||||
Je checkt $id nu helemaal niet he? | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 10:29 | |||||||
Weet ik , tis een example Ik zat hiernaar te kijken maar vond het nog een klein beetje onhandig. http://www.websitemaken.be/index.php?page=show_item&id=316 En richting : http://www.phptutorial.be/global-variables.html om te kijken hoe ik het beste global variabelen kon gebruiken , lees heel veel over dat het onveilig is. [ Bericht 11% gewijzigd door cablegunmaster op 26-05-2012 10:35:32 ] | ||||||||
boem-dikkie | zaterdag 26 mei 2012 @ 10:56 | |||||||
Ben je al zo ver dat je MVC begrijpt? Anders raad ik de tutorial van Zend Framework aan, ook al ga je daar niks mee doen het is wel een goede manier om te begrijpen hoe een MVC model en OOP werkt in een 'echte' applicatie in plaats van een auto die rood is en kan rijden. | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 11:09 | |||||||
Ik snap OO programeren In Java beter dan in Php daar heb ik al een MVC model gebouwd. Hierbij zit ik nog te kijken of ik in Phpstorm* een eigen MVC kan opzetten. Zit niet zo denigrerend te doen Vragen die ik had waren: 1. Ik heb een DB klasse moet ik daarvoor bij elke classe , functie perse Global $db neerzetten? of is GLOBALS['db'] Daarvoor een betere oplossing? (Ik lees overal dat Globals "onveilig" of onhandig waren) Vanuit de gebruikers opinie. Weet nu niet of hier een waarheid in zit? 2. Als ik eenmaal bezig ben zat ik mijn structuur uit te denken, om een goede basis te creëren. met $_POST en afhandeling van $_GET. (filestructuur). 3. Hoe verwerk ik Smarty . (vermoedelijk met behulp van de View) Daar zat ik eerder naar te kijken. [ Bericht 8% gewijzigd door cablegunmaster op 26-05-2012 11:19:24 ] | ||||||||
boem-dikkie | zaterdag 26 mei 2012 @ 11:20 | |||||||
Probeer alleen maar te helpen hoor. | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 11:22 | |||||||
Ik dank je voor je hulp, als je vragen hebt stel ze. | ||||||||
Devv | zaterdag 26 mei 2012 @ 11:42 | |||||||
Ik zit niet zo in de PHP, maar vanuit een algemeen genomen perspectief kan ik zeggen dat er niets mis is met globale variabelen. Mits je het singleton principe in stand houdt. Dus alleen globaal declareren als je zeker weet dat er altijd maar één instantie zal zijn. | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 11:43 | |||||||
Duidelijk dat is ook het geval! | ||||||||
Light | zaterdag 26 mei 2012 @ 11:55 | |||||||
Wat is er anders aan MVC in Java dan in PHP? Het heeft als nadeel dat iedere method waar je "global $db;" gebruikt, potentieel je database instance kan veranderen door iets anders. Dan krijg je fouten die heel lastig te vinden zijn. Als je in je model een setter hebt voor de database, kun je daar valideren dat je echt een database object krijgt. En daarna heb je een reference naar het object, daar kan de rest van de wereld niet bij. Smarty (of een ander templating systeem) hoort in de view. | ||||||||
Light | zaterdag 26 mei 2012 @ 11:55 | |||||||
Ook interessant: | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 12:08 | |||||||
1. geen idee , gewoon nog niet mee gewerkt. 2. Dus eigenlijk in de controller Pseudo: Setdb($db) functie. if(get_class($db) == "db"); true false. en dan het toepassen. met Getdb(); in elke klasse ? | ||||||||
Ofyles2 | zaterdag 26 mei 2012 @ 12:12 | |||||||
Ik heb mezelf schromelijk overschat. Ik begrijp MVC niet goed genoeg, ik moet met een geheel nieuw plan komen. | ||||||||
Light | zaterdag 26 mei 2012 @ 12:19 | |||||||
De structuren zijn gewoon hetzelfde
| ||||||||
Devv | zaterdag 26 mei 2012 @ 12:20 | |||||||
Dat vind ik dus het grote nadeel van PHP, loose typing. | ||||||||
Light | zaterdag 26 mei 2012 @ 12:24 | |||||||
Da's een nadeel, ben ik met je eens. Maar 't is een eigenschap van de taal waar je dus gewoon mee moet werken (of je zoekt een andere taal op om mee te werken). | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 12:29 | |||||||
Java is daar weer makkelijker in , php is daar loosse in. , misschien ook de reden dat ik soms
Light veel van wat die spreker vertelt is eigenlijk best logisch. [ Bericht 15% gewijzigd door cablegunmaster op 26-05-2012 12:45:57 ] | ||||||||
Quir | zaterdag 26 mei 2012 @ 14:11 | |||||||
Iemand eerder meegemaakt dat fopen aangeroepen in een class destructor vervelend doet? | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 14:40 | |||||||
Leg eens uit wat was je idee? | ||||||||
Devv | zaterdag 26 mei 2012 @ 14:47 | |||||||
Misschien heb je hier iets aan: Bug #29167 fopen works differently in a constructor vs. a destructor. | ||||||||
Quir | zaterdag 26 mei 2012 @ 14:59 | |||||||
Ik vroeg het inderdaad zonder toelichting omdat ik dacht dat het een bug zou zijn. Had die pagina ook al gevonden, maar die is uit 2004/2007, dus ik hoopte dat het inmiddels wel gefixt zou zijn. Nog steeds gissen of dat de dwarsligger is of niet. Ik heb een cache functie die een kopie uit de cache doorsluist wanneer er een (niet-verlopen) beschikbaar is, zoniet, roept-ie ob_start() aan en set hij een variabele op True. In de destructor heb ik dan
die de volgende functie gebruikt
Wanneer ik het zo draai geeft hij de volgende melding
Maar wanneer ik cachePath en cacheName public maak en de aanroep copy paste naar onder m'n template doet 'ie het zonder te morren. | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 15:02 | |||||||
Ik wil het ook eens testen om te kijken of ik een test case kan maken met een simpele constructor en destructor | ||||||||
Quir | zaterdag 26 mei 2012 @ 15:07 | |||||||
Ik moet nu weg, maar zal er straks een in elkaar knutselen. | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 15:11 | |||||||
Ik lees als je unset($Object); gebruikt de destructor wordt aangeroepen. andere optie: register_shutdown_function("Object"); Nog een idee fopen in de constructor aanroepen en vervolgens fclose(); gebruiken in de destructor. of werkt fwrite niet in de destructor? Bron: http://stackoverflow.com/(...)er-shutdown-function [ Bericht 9% gewijzigd door cablegunmaster op 26-05-2012 15:26:44 ] | ||||||||
#ANONIEM | zaterdag 26 mei 2012 @ 16:13 | |||||||
Waarom zou je dit willen? Had even wat posts doorgelezen, maar snap niet je opzet. Als er bijv al een db class is aangeroepen kun je gewoon een nieuwe aanroepen. In php5 is het zo dat je dan al hem via referentie aanroept. Dus hetzelfde object. In een destructor __sleep() in dit geval, zet je bijv je afsluit acties neer. Globals zijn ook nergens voor nodig Je kan altijd nog een controller class maken waar je alles in beschikbaar maakt. Voorbeeldje (oude code):
[ Bericht 77% gewijzigd door #ANONIEM op 26-05-2012 16:29:58 ] | ||||||||
Scorpie | zaterdag 26 mei 2012 @ 16:24 | |||||||
MVC is taal onafhankelijk | ||||||||
cablegunmaster | zaterdag 26 mei 2012 @ 16:51 | |||||||
Ik ben bezig met een uitgebreide site om te bouwen daarom mijn terughoudenheid om alles goed te maken . (beetje onderzoek wat wel en niet kan ) [ Bericht 8% gewijzigd door cablegunmaster op 26-05-2012 18:07:46 ] | ||||||||
Light | zaterdag 26 mei 2012 @ 17:35 | |||||||
unset() zorgt er niet direct voor dat de destructor wordt aangeroepen. Dat gebeurt alleen als de garbage collector het object opruimt. En dat gebeurt alleen als geen referenties meer zijn naar het object, maar dan hoeft het nog niet meteen te gebeuren. | ||||||||
Quir | maandag 28 mei 2012 @ 23:21 | |||||||
Even een vluchtige herproductie. Was het helaas alweer vergeten, heb namelijk de destructor er uit gekieperd omdat ik op sommige plekken in m'n script exit() aanroep waar ik niet wil dat de destructor meegepakt wordt. En, een snelle test met bovenstand wijst uit dat met unset(object) de destructor wel degelijk aangeroepen wordt. | ||||||||
cablegunmaster | dinsdag 29 mei 2012 @ 14:27 | |||||||
Ik heb nog een vraag: Als ik een Controller klasse maak.
Hoe zorg ik ervoor dat hij luistert naar iets? Of moet ik in elke PHP de betreffende functies van de controller neerzetten?
[ Bericht 0% gewijzigd door cablegunmaster op 29-05-2012 14:45:35 ] | ||||||||
Scorpie | dinsdag 29 mei 2012 @ 14:30 | |||||||
Definieer 'luisteren'. | ||||||||
cablegunmaster | dinsdag 29 mei 2012 @ 14:44 | |||||||
Ik zit nu na te denken hoe ik de $_POST , $_GET afhandeling moet uitvoeren. Zal ik dan bij de controller klasse een lijst moeten maken van if $_POST en if $_GET? Die vervolgens het Object Controller aanroept? | ||||||||
Scorpie | dinsdag 29 mei 2012 @ 14:48 | |||||||
Je wil dus $_GET en $_POST acties koppelen aan je controller? Kijk eens naar een RequestDispatcher routine. | ||||||||
cablegunmaster | dinsdag 29 mei 2012 @ 14:53 | |||||||
Ik krijg nu heel veel ingewikkelde code in google als ik dit zoek. Wat ik eigenlijk wil is dat hij $_GET koppelt aan de controller. of een $_POST verzoek. het hoeft niet naar een andere pagina toe. Dit vind ik als ik op de request dispatcher zoek, beetje ingewikkeld. Ondanks de hoeveelheid documentatie snap ik niet wat ze met de klasse willen doen. Dit wil ik ongeveer bereiken dat de lijst met if($_POST) een stuk kleiner wordt. en afgehandeld wordt door de controller.
[ Bericht 15% gewijzigd door cablegunmaster op 29-05-2012 15:06:03 ] | ||||||||
Scorpie | dinsdag 29 mei 2012 @ 15:08 | |||||||
Een Request Dispatcher forward niet per se naar een pagina. Kan ook naar een Controller Actie. | ||||||||
cablegunmaster | dinsdag 29 mei 2012 @ 15:33 | |||||||
Ik ga dit eens proberen uit te vogelen . Mijn eerste voorbeeld is gelukt met een simpele titel functie . Nu de rest nog . Maar ik heb hoop en denk dat het goed komt Pur class klinkt leuk maar hij gaat in de veronderstelling dat de Constructor niet bestaat / niet aangeroepen is. Dus weer de prullenbak in / herschrijven . [ Bericht 27% gewijzigd door cablegunmaster op 29-05-2012 17:18:06 ] | ||||||||
wipes66 | dinsdag 29 mei 2012 @ 20:59 | |||||||
Globals en singelton heb ik altijd al erg onelegant gevonden. | ||||||||
Schepseltje | dinsdag 29 mei 2012 @ 22:10 | |||||||
Waarom een controller class schrijven als er zoveel frameworks zijn die al een werkende, elegante en geteste implementatie hebben? | ||||||||
cablegunmaster | dinsdag 29 mei 2012 @ 23:09 | |||||||
Zelf iets te maken ? | ||||||||
Scorpie | dinsdag 29 mei 2012 @ 23:12 | |||||||
Soms moet je dat niet willen. | ||||||||
cablegunmaster | dinsdag 29 mei 2012 @ 23:15 | |||||||
Waarom niet? Dit werkt best goed . | ||||||||
Schepseltje | dinsdag 29 mei 2012 @ 23:45 | |||||||
tsja je kunt een kant-en-klare ferrari gebruiken of zelf in je schuur iets in elkaar timmeren | ||||||||
cablegunmaster | woensdag 30 mei 2012 @ 00:06 | |||||||
Ja dat klopt , maar soms heb je zelf meer inzicht hoe je de ferrari kan fine tunen op je eigen behoefte's waardoor je meer weet hoe een ferrari in elkaar steekt dan dat je alleen maar de ferrari gebruikt. | ||||||||
Scorpie | woensdag 30 mei 2012 @ 00:15 | |||||||
Das natuurlijk gelul. Iemand die een framework gebruikt kan net zo goed op de hoogte zijn van het framework en de daarbij behorende principes. Sterker nog, ik durf te wedden dat diegene vele malen beter weet waar hij mee bezig is dan iemand die zijn eigen framework in elkaar moet stampen en daarbij al valt over een simpel Dispatcher principe. | ||||||||
Devv | woensdag 30 mei 2012 @ 09:37 | |||||||
Ik vind het gebruik van singletons juist ideaal om de complexiteit van een programma terug te brengen. | ||||||||
stefanhaan | woensdag 30 mei 2012 @ 09:42 | |||||||
En waarom zou je sowieso het wiel opnieuw uitwillen vinden? Er bestaan al veel goede frameworks. Als je omte leren er nou zelf een wil maken. Moet je wel verstand hebben van alle onderdelen. Heb je dat niet kan je je beter verdiepen in een bestaand framework | ||||||||
Schepseltje | woensdag 30 mei 2012 @ 15:20 | |||||||
ik ben veel te lang doorgegaan met zelf aankloten voordat ik overstapte op een framework.. en nu baal ik van de jaren die ik heb verkloot met zelf alles in elkaar te prutsen, terwijl ik zoveel beter was geweest als ik gelijk een degelijk framework had gekozen en daarop verder was gaan leren [ Bericht 0% gewijzigd door Schepseltje op 30-05-2012 17:59:02 ] | ||||||||
Diabox | woensdag 30 mei 2012 @ 16:47 | |||||||
En wat je in je schuur timmert wordt uiteindelijk 'n lada oid. | ||||||||
Devv | woensdag 30 mei 2012 @ 18:27 | |||||||
Een eigen API in elkaar knutselen is leuk voor op de zondagmiddag. Maar in het bedrijfsleven gebruik je toch vaak kant-en-klare oplossingen, omdat het niet je core-business is om de fundering te leggen. | ||||||||
Schepseltje | woensdag 30 mei 2012 @ 19:21 | |||||||
En omdat je moet kunnen samenwerken.. Dan wil je kunnen zeggen: "dit is gemaakt met frameworkX op deze URL kun je de documentatie vinden." en niet "dit heb ik vorig jaar in elkaar gezet, het werkt ongeveer zo en zo, moet je maar even uitproberen" | ||||||||
Quir | woensdag 30 mei 2012 @ 20:21 | |||||||
Of dat, of je zorgt dat je weet waar je aan begint, en vooral waar je mee bezig bent. Ik vind het zelf veel prettiger om zelfs iets geschreven te hebben, voelt gewoon prettiger aan. Binnen voor iemand roept dat dat bullshit is. Zo, jij bent vriendelijk tegen een beginner. | ||||||||
Diabox | woensdag 30 mei 2012 @ 20:43 | |||||||
Dat is een van de voornaamste redenen ook ja, zeker als je commercieel bezig bent. | ||||||||
GlowMouse | woensdag 30 mei 2012 @ 20:46 | |||||||
Daar staat tegenover dat er voor een framework updates uitkomen, waardoor je code mogelijk niet meer werkt. Als je tegen een bug in het framework aanloopt, is het lastig om alleen een fix voor die bug door te voeren. | ||||||||
Diabox | woensdag 30 mei 2012 @ 20:49 | |||||||
Staat je vrij om niet te updaten | ||||||||
Scorpie | woensdag 30 mei 2012 @ 20:51 | |||||||
Een beginner die claimt alles te weten ja. Niks mis met wat tough love. En zo onaardig was het niet bedoeld. | ||||||||
Scorpie | woensdag 30 mei 2012 @ 20:53 | |||||||
Depends. Werk al tien jaar met frameworks en de meeste pijn zit hem in de major releases qua upgrade en de nasty hacks die na een update niet meer werken. Als je volgens de methodologie van het framework werkt zit je meestal wel veilig. | ||||||||
Schepseltje | woensdag 30 mei 2012 @ 20:54 | |||||||
Mja als je een bug vindt meld je het op de betreffende bugtracker en als je geluk hebt wordt het gefixt zonder dat je iets hoeft te doen. Maar mijn ervaring is dat de grote frameworks al door zo gigantisch veel mensen zijn gebruikt en getest dat alle grote bugs er vrijwel uit zijn. Als je zelf iets in elkaar hangt is het een ander verhaal.. | ||||||||
KomtTijd... | woensdag 30 mei 2012 @ 20:55 | |||||||
Een compleet eigen framework bouwen met als reden dat je bij een bestaand framework het risico loopt een bug te moeten fixen. Goeie. | ||||||||
Swetsenegger | woensdag 30 mei 2012 @ 21:10 | |||||||
Over frameworks gesproken. Wat is de favoriet onder de fokkers? | ||||||||
Scorpie | woensdag 30 mei 2012 @ 21:13 | |||||||
Cakephp bij mij. | ||||||||
Devv | woensdag 30 mei 2012 @ 21:19 | |||||||
.NET | ||||||||
Diabox | woensdag 30 mei 2012 @ 21:39 | |||||||
Hier ook. | ||||||||
ursel | woensdag 30 mei 2012 @ 21:57 | |||||||
Zend | ||||||||
boem-dikkie | woensdag 30 mei 2012 @ 21:58 | |||||||
Zend. | ||||||||
Schepseltje | woensdag 30 mei 2012 @ 22:41 | |||||||
Yii | ||||||||
Civilian | donderdag 31 mei 2012 @ 11:13 | |||||||
Zend | ||||||||
Intrepidity | donderdag 31 mei 2012 @ 11:53 | |||||||
Symfony 2. | ||||||||
stefanhaan | donderdag 31 mei 2012 @ 11:59 | |||||||
CodeIgniter | ||||||||
Cue_ | vrijdag 1 juni 2012 @ 15:59 | |||||||
Iemand ervaring met Oracle Deadlocks? Ik moet hem zien te omzeilen.. | ||||||||
cablegunmaster | vrijdag 1 juni 2012 @ 16:23 | |||||||
Locate the error messages in the alert log. Locate the relevant trace file(s). Identify the SQL statements in both the current session and the waiting session(s). Use these SQL statements to identify the particular piece of code that is having problems. Alter the appliation code to prevent deadlocks by always locking rows in the tables in the same order. | ||||||||
Cue_ | vrijdag 1 juni 2012 @ 16:49 | |||||||
Lol Tis zo dat er vanuit een pakket een update wordt gedaan op een tabel/rij. Zeg maar een procedure 'Save Order' (ORDER tabel) .. Ik heb een trigger die After update of STATUS (ORDER tabel) doet, tijdens die save order is er een update van de status, dus komt mijn trigger. Mijn trigger schrijft even wat in andere tabellen en wil vervolgens ook wat in die ORDER tabel updaten. dezelfde rij als waar momenteel de save op wordt uitgevoerd (wat ook een update is). Maar dat mag dus niet, omdat die Save Order nog bezig is (gok ik zo). Maar ik kan/mag niet de procedure Save Order aanpassen. Zodat als ie klaar is even dat veldje nog eens update bv. | ||||||||
GlowMouse | vrijdag 1 juni 2012 @ 17:04 | |||||||
De trigger wordt in dezelfde transactie uitgevoerd als de update die de trigger triggert, dus dat lijkt me niet het probleem te zijn. | ||||||||
cablegunmaster | vrijdag 1 juni 2012 @ 19:48 | |||||||
Kort vraagje, ik heb nu Crumblepath als een Klasse en nu wilde ik het model meegeven in de __construct($model) om vervolgens daarvan uit de $db (database klasse) connecties te gebruiken. Nu zit ik qua logica in de knoop en vraag ik me af of ik beter Extends Model kan doen of dat ik elke klasse nu apart het $db mee moet geven.
[ Bericht 43% gewijzigd door cablegunmaster op 01-06-2012 20:22:44 ] | ||||||||
mschol | zaterdag 2 juni 2012 @ 01:22 | |||||||
om te voorkomen dat ik wielen opnieuw uitvind: er is vast wel ergens een een degelijke, goeie BB code parser klasse/functie.. wie weet een degelijke om BB naar html om te zetten? ik heb alleen een functie nodig (geen complete editors dus) waar ik een bericht in kan pompen en vervolgens weer een bericht uit terugkrijg (omgezet) uitbreidbaarheid zou erg fijn zijn | ||||||||
Devv | zaterdag 2 juni 2012 @ 01:36 | |||||||
De tweede methode is in mijn optiek de enige juiste aanpak. De eerste methode zou voor mij al reden voor ontslag zijn. | ||||||||
cablegunmaster | zaterdag 2 juni 2012 @ 03:25 | |||||||
Enige probleem dat ik nu heb dat pagina's aanpassen irritant gaat . Maar beetje bij beetje kom ik er wel Net geleerd hoe static variabelen moet opschrijven in php Hele tijd maar niet snappen waarom iets niet werkt, wel wetende dat ik 2 static variabelen nodig had [ Bericht 7% gewijzigd door cablegunmaster op 02-06-2012 04:47:25 ] | ||||||||
ursel | zaterdag 2 juni 2012 @ 11:49 | |||||||
Waarom benne opleidingen zo duur. Ben beetje op zoek om me wat verder te opleiden richting Software Architect, maar zover ik zie praat je dan over bedragen van ¤7000 | ||||||||
Devv | zaterdag 2 juni 2012 @ 12:34 | |||||||
Ik neem aan dat dit voor de hele opleiding is? En is dit master of bachelorstudie? | ||||||||
ursel | zaterdag 2 juni 2012 @ 12:42 | |||||||
Master volgens mij. Hele opleiding verder wel ja. Was meer op zoek naar iets in die richting voor budget van ¤3000. Hoeft dan niet gelijk master of bachelor te zijn. Wil me de komende periode/jaren in ieder geval die kant op doorontwikkelen | ||||||||
Scorpie | zaterdag 2 juni 2012 @ 13:26 | |||||||
Architecten brrrrrrr. | ||||||||
DutchErrorist | zaterdag 2 juni 2012 @ 13:48 | |||||||
Hallo Query goden (en godinnen), Ik moet voor mijn opleiding als onderdeel van iets data uit een Access (Maak mij niet af oké? IK KAN HIER NIETS AAN DOEN) database halen. Dat gaat allemaal prima, want veel stelt het niet voor, meer dan een dubbel INNER JOIN is niet nodig, maar nu heb ik een stukje sql dat de geboortedatum veranderd in de leeftijd en ik moet deze begrijpen als ik hem wil gebruiken. Nu ben ik zelf superslecht in alles begrijpen wat ingewikkelder is dan HTML en CSS dus ik heb wat moeite met deze code.
Ik weet nu hoe de DateDiff functie werkt. Maar dat stukje er binnen
Wat gebeurd hier nu precies? Kan iemand mij alsjeblieft helpen? Nogmaals duizendmaal sorry dat ik hier met een vraag kom die te maken heeft met Access! | ||||||||
Quir | zaterdag 2 juni 2012 @ 13:56 | |||||||
Die zal er vast zijn, maar 't is cake om die zelf te schrijven. Een array er in knallen met html=>bb (key=>value), door de string laten loopen voor iedere value, en value laten vervangen door key. Tadaa. | ||||||||
Quir | zaterdag 2 juni 2012 @ 14:00 | |||||||
Moet je die manier gebruiken? | ||||||||
DutchErrorist | zaterdag 2 juni 2012 @ 14:03 | |||||||
Nee, maar welke moet ik dan gebruiken (die ik snap?). Begrijp me goed, ik snap niets meer van SQL dan SELECT, FROM, INNER JOIN en WHERE dus ik ben echt een totale leek. | ||||||||
Quir | zaterdag 2 juni 2012 @ 14:41 | |||||||
Huidige datum converteren, geboortedatum converteren, aftrekken, terug gooien naar Datetime. | ||||||||
DutchErrorist | zaterdag 2 juni 2012 @ 14:42 | |||||||
Dude, denk je echt dat ik weet hoe ik dat moet doen als ik net zeg dat ik geen poep weet van SQL? | ||||||||
Quir | zaterdag 2 juni 2012 @ 14:46 | |||||||
Je snapte de Formats al, en aftrekken heb je gehad op de basisschool. | ||||||||
DutchErrorist | zaterdag 2 juni 2012 @ 15:30 | |||||||
Ja maar ik snap al die codes niet. En wat het dus allemaal doet. | ||||||||
DutchErrorist | zaterdag 2 juni 2012 @ 15:34 | |||||||
Oeh Quir heeft me al een heel eind geholpen, ik heb nu een makkelijkere die werkt.
| ||||||||
Boze_Appel | zondag 3 juni 2012 @ 00:12 | |||||||
Afhankelijk van wat getDB(); doet in het tweede voorbeeld kan dat wel voor heel veel db-connecties zorgen. | ||||||||
Quir | zondag 3 juni 2012 @ 20:40 | |||||||
Een punt opgooien in een SP-topic, Scorpie? Ik dacht dat ieder weldenkend mens het daar wel mee gehad had. | ||||||||
Scorpie | zondag 3 juni 2012 @ 20:41 | |||||||
Wat is deze | ||||||||
de_boswachter | zondag 3 juni 2012 @ 20:49 | |||||||
Ik weet niet of ik in dit topic goed zit, maar heb een dummy vraag; Hoe zet ik op mijn ipad uit dat ik zie wanneer er een mail binnenkomt? Email is gesynchroniseerd met Oulook en elke keer als ik jn Outlook mail krijg dan zie ik dat. Daar wil ik vanaf. Wie weet precies hoe ik dit uitzet | ||||||||
Civilian | zondag 3 juni 2012 @ 21:00 | |||||||
Wat heeft dat met PHP/MySQL te maken? | ||||||||
de_boswachter | zondag 3 juni 2012 @ 21:10 | |||||||
Geen idee. Ik zag dummy staan. Waar moet ik dan deze vraag stellen. | ||||||||
Light | zondag 3 juni 2012 @ 22:03 | |||||||
Het gaat over een iPad, dus iPad deel #33 - Waar we op de iPads van de NRC wachten. lijkt me wel geschikt | ||||||||
Quir | zondag 3 juni 2012 @ 22:23 | |||||||
. | ||||||||
cablegunmaster | maandag 4 juni 2012 @ 02:52 | |||||||
Al aan gedacht, hij vult als de DB al bestaat met een nieuwe referentie van de static DB.
| ||||||||
Pakspul | maandag 4 juni 2012 @ 07:51 | |||||||
waarom gebruik je geen singleton patroon? | ||||||||
Cue_ | vrijdag 8 juni 2012 @ 11:02 | |||||||
[ Bericht 100% gewijzigd door Cue_ op 08-06-2012 11:16:37 ] | ||||||||
Crutch | vrijdag 8 juni 2012 @ 11:31 | |||||||
Heeft de mailfunctie een error handler net zoals sql met mysql_error() ? De mailfunctie werkt niet en ik vind er niets over terug in de error log. | ||||||||
Pakspul | vrijdag 8 juni 2012 @ 11:36 | |||||||
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise. It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination. meer heb je volgens mij niet. | ||||||||
Crutch | vrijdag 8 juni 2012 @ 11:43 | |||||||
Hmm, ik test 'm even op de hosting. Misschien dat ie lokaal niet goed is ingesteld. | ||||||||
Crutch | vrijdag 8 juni 2012 @ 11:52 | |||||||
Oh, stom. Ik had een variabele fout. | ||||||||
cablegunmaster | vrijdag 8 juni 2012 @ 16:51 | |||||||
Beginners programmeur fout | ||||||||
Devv | vrijdag 8 juni 2012 @ 18:58 | |||||||
Dit soort onzin zou je bij een managed framework niet hebben . | ||||||||
Light | zaterdag 9 juni 2012 @ 12:17 | |||||||
Dan nog kun je typfouten maken. Een IDE kan je op tikfouten wijzen, en PHP geeft een notice als je een variabele probeert te gebruiken die nog niet geinitialiseerd is. Die notices moet je dus wel aanzetten op je developmentomgeving. | ||||||||
Light | zaterdag 9 juni 2012 @ 12:20 | |||||||
En wat dan als je toch een keer besluit dat je met meer dan 1 database wilt verbinden? | ||||||||
Devv | zaterdag 9 juni 2012 @ 12:26 | |||||||
Bij een managed framework worden typefouten al tijdens designtime afgevangen. De kans op runtime fouten is daardoor stukken minder groot dan bij een scripttaal zoals PHP. | ||||||||
Devv | zaterdag 9 juni 2012 @ 12:32 | |||||||
Dan geef je in plaats van een instantie van de db connectie een eigen factory klasse mee die de verschillende verbindingen kan managen. | ||||||||
Pakspul | zaterdag 9 juni 2012 @ 16:43 | |||||||
Singleton database collection, waar je met een static functie die connectie uit kan halen welke je wil hebben? | ||||||||
Light | zondag 10 juni 2012 @ 17:34 | |||||||
Als je die collectie van buitenaf kunt vullen, ben ik het met je eens | ||||||||
mschol | woensdag 13 juni 2012 @ 11:10 | |||||||
even een vraagje m.b.t. wachtwoorden: Hoe werkt salt-/peppering? zelf dacht ik (pseudocode):
maar dat lijkt mij net zo onveilig als alleen een los wachtwoord (behalve dat het WW langer is) | ||||||||
GlowMouse | woensdag 13 juni 2012 @ 11:22 | |||||||
sha256(sha256($PW) . $salt) | ||||||||
Light | woensdag 13 juni 2012 @ 23:38 | |||||||
Zo ongeveer, ja. De extra veiligheid krijg je door pepper per user verschillend te laten zijn. Sowieso is het toevoegen van extra informatie al goed, omdat iemand die de password hashes heeft ze dan niet zo makkelijk kan matchen. Er is waarschijnlijk geen rainbow table voor de gesalte passwords. En als die er wel is, heb je daar alsnog niets aan als je ook pepper gebruikt. Dan moet je per user een rainbow table maken, en da's niet aantrekkelijk. | ||||||||
Light | woensdag 13 juni 2012 @ 23:59 | |||||||
Twee keer hashen maakt je systeem eerder onveiliger dan veiliger. De lengte van de eerste hash is bekend en het aantal mogelijkheden is eindig. Dat maakt het makkelijker om het resultaat van de eerste hash te vinden, en die kun je met een rainbow table wel verder kraken. | ||||||||
KomtTijd... | donderdag 14 juni 2012 @ 00:21 | |||||||
per-user unieke salt is sowieso een gigantisch sterk middel om dubbele hashes te voorkomen. Aangezien passwords die meer dan 1x voorkomen een behoorlijk grote kans hebben om "Welkom1" of "admin" of "qwerty" te zijn... | ||||||||
GlowMouse | donderdag 14 juni 2012 @ 13:06 | |||||||
Ik zie niet wat je hier bedoelt, maar als je voor 2256 'eindig aantal' bekende input-waarden een rainbow-table wilt maken dan wens ik je veel succes. Salt is uiteraard user-dependent. | ||||||||
mstx | donderdag 14 juni 2012 @ 13:19 | |||||||
Bijna niemand heeft een wachtwoord van 64 karakters dus in 99% van de gevallen is het veiliger. De uiteindelijke hash is sowieso eindig dus met een rainbow table van 2256 hashes zul je sowieso wel tot een collision komen, maar de kans dat dat precies dezelfde waarde is als de 1e hash+salt is oneindig klein. | ||||||||
WheeleE | donderdag 14 juni 2012 @ 15:31 | |||||||
Goed...ik loop weer eens vast, dus retour naar dit topic . Mijn doel: een tussenstand van een sportcompetitie fabriceren. Een tabelletje met team, #gespeeld, wedstrijdpunten, #gewonnen, #gelijk, #verloren, #doelptn voor, #doelptn tegen, doelsaldo. De belangrijkste tabellen die ik heb: competitie, klasse, team, wedstrijd en een koppeltabel die registreert welk team in welke klasse in welke competitie speelt. Met veel zoek- en probeerwerk heb ik de volgende query weten te krijgen:
Wat ik hier uit krijg klopt met wat ik wil, maar ik loop vast bij de volgende stap, de doelpunten. Hoe kan ik hier de doelpunten van alle gespeelde wedstrijden optellen? Per team wil ik het totaal aantal zelf gescoorde doepunten én het totaal aantal tegendoelpunten hebben. Om daarna het doelsaldo weer te kunnen berekenen natuurlijk. | ||||||||
Scorpie | donderdag 14 juni 2012 @ 15:47 | |||||||
Hoe ziet je wedstrijdtabel eruit? | ||||||||
GlowMouse | donderdag 14 juni 2012 @ 15:54 | |||||||
Regel 7-25 kun je ook doen met:
| ||||||||
WheeleE | donderdag 14 juni 2012 @ 19:20 | |||||||
w_id int(11) PK w_competitie int(11) w_lokatie int(11) w_datum date w_tijd time w_veld char(2) w_team1 int(11) w_team2 int(11) w_score1 int(11) w_score2 int(11) Waarbij 2 FK's (w_team1 + w_team2) liggen naar de teamtabel. Competitie en lokatie zijn ook foreign keys maar in dit specifieke geval niet zo van belang. Welke voordlen zitten daar aan vast, anders dan minder code? Hoe bedoel je denormaliseren? Ben ik te ver doorgeslagen? | ||||||||
GlowMouse | donderdag 14 juni 2012 @ 19:22 | |||||||
sneller, leesbaarder en denormaliseren doe je nu toch juist niet? | ||||||||
WheeleE | donderdag 14 juni 2012 @ 19:23 | |||||||
Nee ik heb niet gedenormaliseerd, maar dat geef je wel als tip. Heb ik te ver genormaliseerd? | ||||||||
GlowMouse | donderdag 14 juni 2012 @ 19:24 | |||||||
punten, gewonnen, gelijkspel en verloren zou ik in de tabel Team opslaan | ||||||||
WheeleE | donderdag 14 juni 2012 @ 19:32 | |||||||
Opzich wel een idee ja. Maar dan verlies ik die gegevens weer als een team een volgend seizoen in een andere klasse/competitie speelt. Ik wil dat zo flexibel mogelijk houden, en dus on the fly berekenen. Anders moet je bij elke wedstrijd die gespeeld is de teams ook updaten, in plaats van dat je alleen het wedstrijdrecord bewerkt. //edit: en ik wil ook de standen van voorgaande competities kunnen opvragen, en wellicht standen op een bepaald moment in het verleden. [ Bericht 8% gewijzigd door WheeleE op 14-06-2012 19:39:39 ] | ||||||||
Tauchmeister | zaterdag 23 juni 2012 @ 21:10 | |||||||
Ik zou graag een Google News-achtige dienst op mijn website aan willen bieden (dus een selectie met artikelen van andere sites, gesorteerd op onderwerp). Is dit realiseren met gebrekkige PHP-kennis? Ik ben wel bereid om me ervoor erin te verdiepen uiteraard | ||||||||
Ofyles2 | zaterdag 23 juni 2012 @ 22:44 | |||||||
Je hebt veel meer nodig dan alleen een gebrekkige PHP-kennis. Ik stel me beschikbaar als je me nodig hebt. | ||||||||
Tauchmeister | zondag 24 juni 2012 @ 00:09 | |||||||
Daar ging ik al wel vanuit. Het is zo dat ik me de komende tijd naast mijn studie wil gaan richten op een project waar ik zelf veel potentie in zie, maar ik heb me eigenlijk nooit echt verdiept in PHP en me slechts beziggehouden met web design. Ik ben nu aan kijken hoe ik het ga aanpakken en geef natuurlijk het liefst zo weinig mogelijk uit handen, maar ik denk dat mijn PHP-kennis gewoonweg tekortschiet om het echt een succes te laten worden. Ik vraag me af of het zin heeft om er tijd en moeite in te steken of dat ik dat ik bepaalde delen van het scriptwerk beter aan anderen kan overlaten. En dan is het ook nog moeilijk om te bepalen wie daar geschikt voor is. Ik wil namelijk geen prutsers | ||||||||
Ofyles2 | zondag 24 juni 2012 @ 00:32 | |||||||
Jitse Groen (Thuisbezorgd.nl) stond ook voor die keus. Niet dat ik je direct wil beïnvloeden. | ||||||||
Tauchmeister | zondag 24 juni 2012 @ 01:02 | |||||||
Tja, ik weet dat hij in het begin met iemand samenwerkte, maar daarna voor honderd procent eigenaar is geworden en daar plukt hij nu de vruchten van. Het hangt ook maar net af van je startkapitaal. Ik ben ook nog maar een student, maar heb dankzij eerdere projecten toch wat meer tot mijn beschikking, al moet dat eigenlijk niet van invloed zijn. Ik ga er nog eens goed over nadenken. | ||||||||
raptorix | zondag 24 juni 2012 @ 16:40 | |||||||
Gebruik dan gewoon een fatsoenlijke caching laag, denormaliseren doe je eigenlijk alleen wanneer je daar zeer goede redenen hebt. | ||||||||
GlowMouse | zondag 24 juni 2012 @ 17:55 | |||||||
Denormaliseren is een vorm van caching. | ||||||||
raptorix | zondag 24 juni 2012 @ 19:01 | |||||||
Als je dat in een aparte database, of desnoods tables doet misschien wel, wij hebben ooit voor hele grote zware sites gedenormaliseerde tables gebruikt om er Hibernate over te kunnen plaatsen, in dit geval is het trouwens ook overkill, je zou die standen prima kunnen ophalen via normale queries, wel leven niet meer in 2000 dat dat een performance probleem zou zijn. | ||||||||
GlowMouse | zondag 24 juni 2012 @ 19:20 | |||||||
Nee, ook in dezelfde database is het caching. De meest efficiënte vorm van caching. nee, dat kan niet 'prima' | ||||||||
BrainOverfloW | zondag 24 juni 2012 @ 19:26 | |||||||
Mijn vraag is misschien een beetje offtopic omdat hij meer over JS gaat dan PHP maar een apart topic voor openen voor een klein vraagje vind ik ook zo overbodig. Ik ben bezig een stuk PHP code om te zetten in JS en daarin moet een getal afgerond worden. Dit gaat in alle gevallen die ik tot nu toe getest heb goed behalve met de getallen die ik er nu als variablen bij gezet heb. De PHP code maakt hier netjes 14 van maar in JS word het 14.000000000000002. Iemand enig idee wat ik verkeerd doe?
| ||||||||
Diabox | zondag 24 juni 2012 @ 19:36 | |||||||
| ||||||||
raptorix | zondag 24 juni 2012 @ 19:40 | |||||||
Dan gebruik je gewoon een kut database omdat normale databases dat zelf wel cachen dan wel optimaliseren, we hebben het hier niet over miljoenen records mag ik aannemen. | ||||||||
BrainOverfloW | zondag 24 juni 2012 @ 19:46 | |||||||
Het is altijd zo simpel als je door hebt wat je over het hoofd ziet . Bedankt. | ||||||||
WheeleE | zondag 24 juni 2012 @ 19:46 | |||||||
Nope Ik verwacht honderden. Als het echt succesvol wordt (wat ik niet zo gauw verwacht) misschien duizeden, maar that's it. Leuk dat er nog over mijn stelling wordt gedebatteerd hier . Ik heb inmiddels een tweede design verzonnen. Een aparte scoretabel (wedstrijdid, teamid, scorevoor, scoretegen, toto) met daarin per wedstrijd 2 records, voor elk team van de wedstrijd 1. Het is wel redundante opslag, maar maakt het volgens mij wel een stuk makkelijker om de standen te bereken. | ||||||||
Diabox | zondag 24 juni 2012 @ 19:48 | |||||||
Is wel zonder decimalen Wacht dit is een leuke met decimalen:
| ||||||||
raptorix | zondag 24 juni 2012 @ 19:54 | |||||||
Heb je het al geprobeerd met een genormaliseerd design en een reeele set testdata? Het probleem met denormaliseren is dat wanneer je later dingen wilt uitbreiden je vaak de web inslaat van "sloppy design". | ||||||||
WheeleE | zondag 24 juni 2012 @ 19:59 | |||||||
Ik maak me niet zo'n zorgen over de performance, maar ik krijg de juiste resultaten er niet uit. Mijn querykennis is gewoon ontzettend weggezakt Het initiele ontwerp was netjes genormaliseerd, en met enkele tientalle records testdata. Alleen kreeg ik het niet voor mekaar de complexere overzichten uit te halen. Door een aangepast ontwerp lukt dat hopelijk wel, zonder dat het ten koste gaat van performance. | ||||||||
raptorix | zondag 24 juni 2012 @ 21:26 | |||||||
Queries om standen op te bouwen zijn ook lastig, je ontkomt in principe niet aan aggregate queries, en die vind ik zelf ook altijd kut Zelf heb ik jarenlang behoorlijk complexe queries geschreven (bijvoorbeeld voor de eerste versie van Funda) maar laatst moest ik een simpele join doen, en dat lukte me niet meer uit me hoofd | ||||||||
WheeleE | zondag 24 juni 2012 @ 21:46 | |||||||
Heheh, ja dat is hem precies. Ik ben ooit begonnen als beheerder+ontwikkelaar, maar de afgelopen 5/6 jaar heb ik alleen maar beheerwerk gedaan. Joinen lukt nog wel, maar al dat soort berekeningen worden een uitdaging. Daarom ga ik nu maar voor de concessie in normalisatie. Mocht mijn hobbyfrutsel ooit succesvol worden dan zal het toch helemaal herschreven moeten worden, lekker boeiend . | ||||||||
GlowMouse | zondag 24 juni 2012 @ 22:59 | |||||||
Dit topic gaat over MySQL, die doet dat niet. Andere db's ken ik niet, maar ik betwist dat die dit wel goed kunnen cachen. | ||||||||
Muffle | zondag 24 juni 2012 @ 23:19 | |||||||
Hallo PHP'ers en SQL'ers. Ik heb al een beetje basiservaring met standaard html geneuzel, en ben begaafd in het oplossen van mijn HTML/CSS problemen met google. Alleen heb ik een nieuw idee, en dat heeft natuurlijk weer php nodig. Ik heb easyPHP al geinstalleerd dus alles staat klaar. Mijn vraag/nieuw project: Hoe maak ik een knop, dat als je er op drukt, dat een variabele 1 omhoog gaat. Slechts 1x klikken per IP, en dat het IP ook wordt opgeslagen. Iemand enig idee WAAR ik moet beginnen, en hoe ik een goeie database aanmaak? Ik krijg me dan toch een partij met opties. | ||||||||
GlowMouse | zondag 24 juni 2012 @ 23:25 | |||||||
Het begint met het onderscheid leren tussen server-side en client-side. | ||||||||
Tijn | maandag 25 juni 2012 @ 01:10 | |||||||
Wat bedoel je met "dat een variabele omhoog gaat"? Is dat een getal? Bedoel je dan niet gewoon het aantal records dat is geregistreerd? | ||||||||
Muffle | maandag 25 juni 2012 @ 01:20 | |||||||
Gewoon het aantal records | ||||||||
Tijn | maandag 25 juni 2012 @ 02:03 | |||||||
Ik zou zeggen, maak dan een tabel waarin je de unieke IP-adressen opslaat. Dit is de simpelste variant, zonder verdere velden. In een echte applicatie zijn kolommen als een uniek id en een timestamp waarschijnlijk wel handig om toe te voegen, maar niet nodig om alleen maar het aantal keer dat er op een knop is geklikt te tellen.
Dit is een tabel met alleen een kolom die "ip" heet waarin varchars (strings) van maximaal 45 tekens kunnen worden opgeslagen, wat lang genoeg is om zowel IPv4 als IPv6-adressen op te slaan. Doordat deze kolom ook de primary key is, wordt voorkomen dat er dubbele IP-adressen worden opgeslagen. Vervolgens zou je zo'n soort pagina kunnen maken:
Kheb bij elke PHP-regel een comment gezet met uitleg wat die regel doet. Spreekt voor zich, toch? Wat betreft de databaseverbinding: PHP biedt 3 manieren om met een MySQL-database te verbinden (klik hier voor meer info). Ik heb hier gebruik gemaakt van mysqli. Je zou ook voor PDO kunnen kiezen. Mocht je een echte applicatie gaan bouwen dan is het waarschijnlijk een goed idee om te kijken naar een framework (Zend Framework, CakePHP, CodeIgniter om wat populaire voorbeelden te noemen) met een abstractielaag voor databasetoegang, zodat je je hier niet druk om hoeft te maken. Een goed framework is waarschijnlijk de beste manier om op een zo snel mogelijke manier een veilige applicatie te bouwen. [ Bericht 0% gewijzigd door Tijn op 25-06-2012 02:46:16 ] | ||||||||
Muffle | maandag 25 juni 2012 @ 05:30 | |||||||
Danku zeer! Na veel doorlezen/leren/proberen, snap ik het nu, en heb ik zelf de tables/databases gemaakt en ID's toegevoegd. En nu even denken over verder project. | ||||||||
Cue_ | maandag 25 juni 2012 @ 12:13 | |||||||
Even een SQL vraagje ik heb twee tabellen uhm de 101 en 860 nu moet ik van bepaalde data in de 860 gegevens updaten met data uit de 101 De 860 bevat id, customer, ordernr, regelnr, status de 101 customer, ordernr,regel Nu wil ik in de 860 de customer updaten waar de ordernr en regelnr van de 860 en 101 gelijk zijn aan elkaar. Dus krijg dan ... update 860 set customer = (select customer from 101 ...... Maar hoe stel ik die twee dan gelijk aan elkaar bij een update statement. Een select vind ik dan weer niet lastig. Dan krijg ik: select t.customer from 101 t inner join 860 b on t.ordernr = b.ordernr and t.regelnr = b.regelnr where b.id = 377743365 | ||||||||
GlowMouse | maandag 25 juni 2012 @ 12:14 | |||||||
update 860 set customer = (select customer from 101 where 101.ordernr=860.ordernr and 101.regel=860.regelnr order by ... limit 1) | ||||||||
Cue_ | maandag 25 juni 2012 @ 12:24 | |||||||
Hij dut t [ Bericht 46% gewijzigd door Cue_ op 25-06-2012 12:34:25 ] | ||||||||
raptorix | maandag 25 juni 2012 @ 15:04 | |||||||
Ik mag serieus hopen dat je die tables niet echt zo hebt genoemd? | ||||||||
Muffle | maandag 25 juni 2012 @ 16:24 | |||||||
Zitten er allebei ook in. Nu verder met het design van mijn website | ||||||||
remlof | dinsdag 26 juni 2012 @ 13:48 | |||||||
www.memsql.com volledig compatibel met en 30x sneller dan MySQL | ||||||||
Scorpie | dinsdag 26 juni 2012 @ 13:58 | |||||||
Heb je alleen wel Linux 64 bit met 8gig geheugen voor nodig. | ||||||||
remlof | dinsdag 26 juni 2012 @ 13:59 | |||||||
Wat kost 8Gb nou nog tegenwoordig? | ||||||||
Cue_ | dinsdag 26 juni 2012 @ 14:11 | |||||||
Nop, dit is even een afkorting. Al hebben ze wel heel leuk cijfertjes in de naam. Maar heb ik niet bedacht. BAAN (Infor) | ||||||||
Scorpie | dinsdag 26 juni 2012 @ 14:15 | |||||||
Niks, binnenkort maar eens een VM maken met dit erop. Kijken hoe het zich verhoudt met mijn newznab instantie met 25 gig aan data. | ||||||||
GlowMouse | dinsdag 26 juni 2012 @ 14:18 | |||||||
Leuk voor mensen die MySQL niet kunnen configureren en durability niet waarderen. Ik verwacht binnen niet al te lange tijd wat vernietigende blogposts. | ||||||||
Scorpie | dinsdag 26 juni 2012 @ 14:22 | |||||||
Tis ook nie gratis nie. | ||||||||
Crutch | dinsdag 26 juni 2012 @ 14:29 | |||||||
Mooie strakke site wel. | ||||||||
GlowMouse | dinsdag 26 juni 2012 @ 14:40 | |||||||
| ||||||||
Scorpie | dinsdag 26 juni 2012 @ 14:42 | |||||||
En ik maar denken dat we een kek product aangesmeerd kregen. Niks is minder waar. Bedankt voor niks, remlof. | ||||||||
remlof | dinsdag 26 juni 2012 @ 14:49 | |||||||
Als snelheid belangrijk is voor je commerciële website lijkt MemSQL me wel degelijk het overwegen waard. | ||||||||
GlowMouse | dinsdag 26 juni 2012 @ 14:52 | |||||||
Ik kan geen site bedenken die hier baat bij heeft. | ||||||||
remlof | dinsdag 26 juni 2012 @ 14:54 | |||||||
Als je ingewikkelde queries hebt die langer dan 0.1 seconde duren al. | ||||||||
mstx | dinsdag 26 juni 2012 @ 14:56 | |||||||
| ||||||||
Scorpie | dinsdag 26 juni 2012 @ 14:56 | |||||||
Ingewikkelde queries die meer dan 2 joins bevatten bijvoorbeeld? Die kan memsql niet aan. | ||||||||
GlowMouse | dinsdag 26 juni 2012 @ 15:07 | |||||||
Die hoor je bij een site al niet te hebben. | ||||||||
remlof | dinsdag 26 juni 2012 @ 15:08 | |||||||
Ow, hmmm ja dat is dan wel weer minder. | ||||||||
raptorix | dinsdag 26 juni 2012 @ 17:15 | |||||||
Ik kende iemand die ook bij zo een bedrijf werkte waar letterlijk alle tables en velden een nummer hadden, liepen ze allemaal met printouts en aantekeningen wat er echt in de velden zat | ||||||||
raptorix | dinsdag 26 juni 2012 @ 17:17 | |||||||
Dan kan je beter technieken zoals SOLR gebruiken... | ||||||||
Cue_ | dinsdag 26 juni 2012 @ 17:27 | |||||||
Het is echt verschrikkelijk. Gelukkig is nog wat info te halen uit velden als 'cuno' , 'pono' en 'orno' enzo. Maar toch is het lastig om erin te duiken en de tabellen van elkaar te onderscheiden. Maar al doende leert men | ||||||||
Tijn | dinsdag 26 juni 2012 @ 17:56 | |||||||
Sites die MySQL gebruiken, zoals Wikipedia of Fok! zijn toch hartstikke snel? | ||||||||
Scorpie | dinsdag 26 juni 2012 @ 18:08 | |||||||
Dat bedrijf waar jij werkt is verschrikkelijk. | ||||||||
GlowMouse | dinsdag 26 juni 2012 @ 18:10 | |||||||
Je db-server door een zoekserver vervangen, goed idee. | ||||||||
boem-dikkie | dinsdag 26 juni 2012 @ 20:17 | |||||||
Nog een mooi artikeltje over memsql vs. mySQL. http://dom.as/2012/06/26/memsql-rage/ | ||||||||
GlowMouse | dinsdag 26 juni 2012 @ 20:30 | |||||||
Die thread die om de 50ms wegschrijft is wel sad, de rest had ik wel verwacht. | ||||||||
remlof | dinsdag 26 juni 2012 @ 21:18 | |||||||
Ja, MySQL is ook in de meeste gevallen wel snel genoeg mits goed geconfigureerd en goeie hardware. Tenzij je een site als Google of Facebook runt ofzo | ||||||||
Light | dinsdag 26 juni 2012 @ 23:24 | |||||||
Uiteraard met bron | ||||||||
Muffle | dinsdag 26 juni 2012 @ 23:26 | |||||||
Hoe groot zou de database van google zijn ? | ||||||||
Light | dinsdag 26 juni 2012 @ 23:52 | |||||||
Iets groter dan die van FOK! | ||||||||
KomtTijd... | woensdag 27 juni 2012 @ 00:16 | |||||||
Ik gok ongeveer 100x zo groot als de rest van het internet. Aangezien ze dat allemaal in cache hebben voor weet ik hoeveel jaar terug . | ||||||||
KomtTijd... | woensdag 27 juni 2012 @ 00:19 | |||||||
http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/ | ||||||||
raptorix | woensdag 27 juni 2012 @ 07:27 | |||||||
Wie heeft het over vervangen? Om voorbeeld te geven, heel de search van Funda draait erop. |