Deeltjesversneller | donderdag 11 april 2013 @ 10:36 | |||||
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 Succes heren met het volgende deeltje! | ||||||
Crutch | donderdag 11 april 2013 @ 10:37 | |||||
<?php echo 'FiPo'; ?> Volgende week op gesprek komen bij een bedrijf met eigen MVC, ben benieuwd. | ||||||
Deeltjesversneller | donderdag 11 april 2013 @ 10:37 | |||||
ik heb een string als: >2500 <5000 nou wil ik met regex de ene keer de 2500, en de andere keer de 5000 pakken, hoe fix ik dat nou? >[0-9]+ en <[0-9]+ werkt wel, maar dan krijg ik >2500 en <5000 terwijl ik die > en < niet erbij wil. weet iemand hoe ik alleen de cijfers pak? heb hem: <([0-9]+) [ Bericht 7% gewijzigd door Deeltjesversneller op 11-04-2013 10:47:09 ] | ||||||
A-mineur | donderdag 11 april 2013 @ 10:52 | |||||
Als er een spatie tussen zit gebruik je gewoon explode, en vervolgens een substr om de < of > weg te halen. edit: zie dat je hem al had, maar ik denk dat mijn methode sneller, en een better practice is.
[ Bericht 26% gewijzigd door A-mineur op 11-04-2013 11:20:48 ] | ||||||
A-mineur | donderdag 11 april 2013 @ 10:58 | |||||
Je bedoelt CMS, MVC is een design pattern . | ||||||
Crutch | donderdag 11 april 2013 @ 11:06 | |||||
Ik bedoel MVC. | ||||||
Rockfire | donderdag 11 april 2013 @ 11:17 | |||||
en nu heeft hij een array met allemaal nullen, ik denk dat die -1 een 1 moet zijn | ||||||
A-mineur | donderdag 11 april 2013 @ 11:20 | |||||
Je hebt gelijk, dat moet idd een 1 zijn ipv -1. | ||||||
Maringo | donderdag 11 april 2013 @ 13:54 | |||||
Een eigen MVC? Hoe ziet een eigen en niet-eigen MVC eruit dan?
| ||||||
Crutch | donderdag 11 april 2013 @ 13:57 | |||||
Ze hebben een eigen MVC `framework` ontwikkeld, denk dat dat is wat ze bedoelen. Dus niet op een bestaand iets gebaseerd als Cake of CodeIgniter, o.i.d. | ||||||
A-mineur | donderdag 11 april 2013 @ 14:38 | |||||
Een eigen framework dan Ik kan met 4 pagina's een MVC pattern opzetten | ||||||
Crutch | donderdag 11 april 2013 @ 14:41 | |||||
JAMAAR ze noemen het een 'eigen' MVC. Dan kan ik wijs gaan lopen en doen en zeggen dat dat een design pattern is, maar goed dat gaat mij niet echt helpen op hun loonlijst te komen. | ||||||
StM | donderdag 11 april 2013 @ 15:25 | |||||
Ik zou een ander bedrijf opzoeken om bij te soliciteren | ||||||
Maringo | donderdag 11 april 2013 @ 15:40 | |||||
True. Toch zou ik graag willen weten wat ze ermee bedoelen. | ||||||
Crutch | donderdag 11 april 2013 @ 15:40 | |||||
Ja ik ook, maar dat zien we dus binnenkort. ok. | ||||||
Maringo | donderdag 11 april 2013 @ 15:42 | |||||
Succes in ieder geval. | ||||||
Crutch | donderdag 11 april 2013 @ 15:48 | |||||
Thnx. | ||||||
Tijn | donderdag 11 april 2013 @ 16:16 | |||||
Een eigen framework waarschijnlijk. | ||||||
Maringo | donderdag 11 april 2013 @ 17:11 | |||||
Dat dacht ik eerst ook, maar dan noem je het toch niet je 'eigen MVC'? | ||||||
Tijn | donderdag 11 april 2013 @ 17:12 | |||||
Nou ja, die dingen worden ook wel "MVC frameworks" genoemd, dus dat je het dan afkort als "we gebruiken ons eigen MVC" kan ik wel begrijpen. | ||||||
Light | zaterdag 13 april 2013 @ 01:21 | |||||
Dat ligt eraan wie die term gebruikt. Een recruiter die een buzzword gehoord heeft en daar indruk mee wil maken? Een HR persoon die niet technisch onderlegd is? Een architect / lead developer? | ||||||
Maringo | zaterdag 13 april 2013 @ 01:58 | |||||
Dat zou ik helemaal kansloos vinden. Als een niet technisch aangelegd persoon, zonder overstemming hoe het product heet, maar wat neerplempt in een advertentie. | ||||||
Crutch | maandag 15 april 2013 @ 09:20 | |||||
Dat is mij verteld door iemand van werving en selectie. Dus zal wel een loze kreet zijn. | ||||||
Juicyhil | maandag 15 april 2013 @ 09:35 | |||||
Had laatst ook iemand die vroeg of ik ervaring had met het MVC-framework | ||||||
Tijn | maandag 15 april 2013 @ 09:42 | |||||
| ||||||
Darkomen | maandag 15 april 2013 @ 13:20 | |||||
Heren, een serieuze vraag. Ik ben recent mn baan kwijt geraakt (boventallig) en wil graag verder gaan met programmeren in php en asp. Nu ben ik op zoek naar php en asp cursussen, mijn oude baas wil deze namelijk wel betalen. Kunnen jullie mij een aantal cursussen aanbevelen? | ||||||
Crutch | maandag 15 april 2013 @ 13:23 | |||||
Lol, je baas flikkert je eruit, maar wil wel een opleiding voor je betalen? | ||||||
ursel | maandag 15 april 2013 @ 13:28 | |||||
Op wat voor niveau/budget. Eduvision heeft de nodige cursussen, maar niet goedkoop. | ||||||
Darkomen | maandag 15 april 2013 @ 13:47 | |||||
Overname, boventallig geworden na 13 jaar trouwe dienst, dus het hoort bij mn 'deal'. Basis kennis heb ik wel, ik rotzooi al 13 jaar met php en mysql. Afgelopen jaren heb ik ook een server opgezet welke automatisch diverse rapportages maakt en analyseert. Maar niks officieel geleerd dus. Kwa kosten... geen idee. | ||||||
Tijn | maandag 15 april 2013 @ 13:49 | |||||
Is het misschien een idee om zo'n certificaat van Zend proberen te halen? Dan heb je in elk geval een papiertje dat een beetje serieus overkomt. | ||||||
Darkomen | maandag 15 april 2013 @ 14:05 | |||||
Zend is misschien nog een beetje te hoog gegrepen. | ||||||
Scorpie | maandag 15 april 2013 @ 14:06 | |||||
Welnee. | ||||||
ursel | maandag 15 april 2013 @ 14:07 | |||||
Kwestie van goed leren | ||||||
Crutch | maandag 15 april 2013 @ 14:20 | |||||
Zend hanteert ook MVC. Dan kun je net als ik maar eens gaan uitpluizen hoe MVC werkt. Heb zojuist zelf wat gebakken met wat ik heb geleerd; scheelt weer voor mijn sollicitatie. | ||||||
mstx | maandag 15 april 2013 @ 14:26 | |||||
Ja die hebben ook een eigen mvc
| ||||||
Crutch | maandag 15 april 2013 @ 14:29 | |||||
| ||||||
raptorix | maandag 15 april 2013 @ 15:09 | |||||
ASP? Word in bedrijfsleven niet meer actief gebruikt, al zo een jaar of 8 niet meer. PHP, tjah, ik weet dat ik me hier in hol van leeuw begeeft, maar ik zou dan toch .NET gaan, veel meer werk in te vinden, en over algemeen nog beter betaald ook, bovendien een stuk fijner om in te programmeren als je het mij vraagt. | ||||||
mschol | maandag 15 april 2013 @ 18:01 | |||||
ondanks het hoge offtopicgehalte, moet ik deze hier neer gooien: DIG / USB geplet.. | ||||||
Crutch | dinsdag 16 april 2013 @ 10:33 | |||||
Ik zit even met het volgende. Voor het onderhoudgedeelte(CMS) van een verhuursite wil ik de mogelijkheid bieden om afbeeldingen aan een product toe te voegen die ze vervolgens kunnen scalen en croppen. Nu zal dat dus gecombineerd html/css/javascript en php moeten worden, maar is daar al iets voor? Ik kom wel wat image resizers tegen, maar geen complete oplossing met UI en alles. Ben bang dat ik het zelf allemaal moet gaan maken. | ||||||
boem-dikkie | dinsdag 16 april 2013 @ 10:38 | |||||
http://www.pixelzdesign.com/blog_view.php | ||||||
Crutch | dinsdag 16 april 2013 @ 10:41 | |||||
Wtf? Da's snel. Thanks. | ||||||
Crutch | dinsdag 16 april 2013 @ 11:36 | |||||
Jcrop it is then. | ||||||
Darkomen | dinsdag 16 april 2013 @ 13:11 | |||||
Onze volledige leverstraat voor zo'n 350k klanten en hun klachten was in asp geschreven, werkte perfect, effcient. Bedrijf dat ons overgenomen heeft wilde die volledige leverstraat hebbebn, maar zijn er naar 2 jaar achtergekomen dat het hun te veel kost om hun oude troep met zo'n 1.5 milioen klanten om te zetten naar onze leverstraat Wat zou je me aan kunnen raden wat .NET opleidingen? | ||||||
raptorix | dinsdag 16 april 2013 @ 13:41 | |||||
Ik zou als ik jou was eerst wat zelf studie doen, en dan een wat gerichtere cursus doen, ik vind dit echt een supergoed leerboek (gratis): http://www.csharpcourse.com/ Je werkt hem in een avond of 5 a 7 door en dan heb je eigenlijk de basis van c# wel onder de knie. Qua cursussen zou ik me dan eerder richten op bijvoorbeeld een specifiek CMS, in Nederland is er op dit moment een super te kort aan Sitecore developers, daarnaast is er ook veel vraag naar Umbraco en EpiServer specialisten, dus als je vanuit dat perspectief kijkt zou ik dat zeker overwegen. | ||||||
karton2 | zaterdag 20 april 2013 @ 18:03 | |||||
Met hulp van een tutorial heb ik een contactformulier gemaakt. Zelf heb ik het formulier uitgebreid met wat extra velden: formcode uit contact.html: mailer.php is alsvolgt: Het probleem is dat als ik op verzend klik zonder iets in te vullen wordt mailer.php geopened en laat daar het onderste deel van de php zien:
Hij zou dus moeten controleren of de verplichte velden zijn ingevuld (naam / email / bericht) en hij moet controleren of de spamvraag juist is in gevuld. Beide zijn dus niet gebeurd. Een mail komt nooit aan, of ik is ingevuld heb of niet. Iemand die mij kan vertellen wat er fout is? | ||||||
KomtTijd... | zaterdag 20 april 2013 @ 18:36 | |||||
Ik zou zeggen begin eens met de syntax-fouten (ifif). Heb je error-reporting wel aan staan? | ||||||
Devolution | zaterdag 20 april 2013 @ 19:31 | |||||
Syntax highlighting is ook fijn, zowel in een bericht dat je hier plaatst als in het programma waarmee je de code schrijft. Hierdoor kun je vaak vrij snel zien waar het fout gaat in je code. Als ik bijvoorbeeld jouw code hier met syntax highlighting ingeschakeld neer zet, zie je dit:
Je ziet nu al vrij snel waar het fout gaat (regel 17, "if" zou groen moeten zijn maar is nu blauw omdat er "ifif" staat in plaats van "if). Op dit forum kun je syntax highlighting gebruiken door je code tussen [.php][/php.] te zetten (zonder de punten). Oh, en maak ook goed gebruik van tabs, je bent in deze code een paar tabs vergeten waardoor je niet goed meer kunt zien welke } bij welke if hoort | ||||||
Diabox | zaterdag 20 april 2013 @ 20:33 | |||||
Wat ben je attent Devolution. | ||||||
BlueNumber | zondag 21 april 2013 @ 11:08 | |||||
Ga dit topic ook maar es in de gaten houden. Ik weet vrij veel van sql-meuk, maar ben voor de lol eens begonnen met wat mysql i.c.m. php op een apache server. Ongeveer elk uur kom ik weer nieuwe geile functionaliteiten tegen bij het doorspitten van google | ||||||
boem-dikkie | zondag 21 april 2013 @ 13:19 | |||||
Alsals, misschien moeten ze dat maar implementeren in PHP. | ||||||
BlueNumber | zondag 21 april 2013 @ 15:10 | |||||
Even een vraag. Ik wil de inhoud van een formulier naar een gmailadres sturen. Ik gebruik Xampp als tool voor de apach webserver. Helaas krijg ik dit niet aan de praat. Online kan ik tig websites vinden die elkaar tegenspreken en geen van de suggesties lukt. Het testscript is
Waarbij testaccount@gmail.com het door mij aangemaakt emailadres is. Dan ziet mijn sendmail.ini er zo uit:
en het relevante deel van php.ini ziet er zo uit:
Heb het ook al getest met poort 25 en in beide gevallen komt er 'ok' als ik het script run, maar ik krijg geen email binnen. [ Bericht 0% gewijzigd door BlueNumber op 21-04-2013 16:57:25 ] | ||||||
WyriHaximus | zondag 21 april 2013 @ 15:49 | |||||
Wat is de error die je krijgt? | ||||||
BlueNumber | zondag 21 april 2013 @ 16:09 | |||||
ik krijg geen error | ||||||
papernote | zondag 21 april 2013 @ 16:43 | |||||
Zet mail.log eens aan. Heb je display_errors aan staan in PHP, met error_reporting op -1? | ||||||
BlueNumber | zondag 21 april 2013 @ 17:01 | |||||
mail.log geeft niet veel boeiende info: mail() on [C:\xampp\htdocs\home\mail.php:7]: To: testaccount@gmail.com -- Headers: From:ditisdeafzender@blaat.com display_errors staat default aan en error_reporting heb ik op -1 gezet, maar dat levert niets extra op. | ||||||
papernote | zondag 21 april 2013 @ 17:04 | |||||
Blijkbaar wordt de mail verzonden. Wat is dan het probleem? | ||||||
BlueNumber | zondag 21 april 2013 @ 17:19 | |||||
Dat ie niet aankomt | ||||||
Maringo | zondag 21 april 2013 @ 17:23 | |||||
Heb je al in je junk folder van gmail gekeken? | ||||||
BlueNumber | zondag 21 april 2013 @ 17:24 | |||||
Jep, het is een leeg account, dus ik zou hem toch (ofwel in hoofdmap, ofwel in een spam/trashmap) moeten zien. | ||||||
Maringo | zondag 21 april 2013 @ 17:41 | |||||
En als je deze veranderd naar een ander emailadres in je php.ini?
| ||||||
BlueNumber | zondag 21 april 2013 @ 17:53 | |||||
Ook dan geeft ie aan dat het verstuurd wordt... | ||||||
Maringo | zondag 21 april 2013 @ 17:59 | |||||
ik zie in je sendmail.ini ook hetzelfde emailadres. ook als afzender. Ik weet dat Spamassassin bijvoorbeeld, standaard emails eruit filtert die van hetzelfde en naar hetzelfde emailadres maar via andere mailservers gaan oid. En volgens mij doet Google dat ook. Je kan dus proberen om in de sendmail.ini ook de adressen te veranderen naar een ander (gmail)adres | ||||||
karton2 | zondag 21 april 2013 @ 19:27 | |||||
Probleem is opgelost. Stom dat ik daar overheen heb gekeken, highlighting stond overigens wel gewoon aan. Dank voor de hulp in ieder geval! Laatste vraag: Ik heb hier en daar gelezen over 'injection' om via een formulier rotzooi te gaan verspreiden. Is zo'n anti-spam vraag echt voldoende is om misbruik van het formulier te voorkomen? | ||||||
KomtTijd... | zondag 21 april 2013 @ 20:14 | |||||
zo'n simpele sowieso niet. En een captcha is geen beveiliging tegen header injection. | ||||||
BlueNumber | zondag 21 april 2013 @ 21:34 | |||||
Thanks voor het meedenken, maar het werkte helaas niet. Heb mn database en webbestanden gebackupped en een nieuwe installatie van Xampp erop geknald en nu doet ie het wel. | ||||||
Light | zondag 21 april 2013 @ 22:35 | |||||
De broncode van PHP staat op github, je kunt zelf dingen toevoegen | ||||||
boem-dikkie | zondag 21 april 2013 @ 22:36 | |||||
| ||||||
#ANONIEM | maandag 22 april 2013 @ 21:03 | |||||
Wie heeft die website voor het koningslied gemaakt? Dik xss lek http://bit.ly/17SFXrk Wtf, waarom wil die url niet goed? [ Bericht 68% gewijzigd door #ANONIEM op 22-04-2013 21:06:46 ] | ||||||
Rockfire | maandag 22 april 2013 @ 21:13 | |||||
Pluxbox | ||||||
#ANONIEM | maandag 22 april 2013 @ 21:16 | |||||
_! | ||||||
pascal08 | dinsdag 23 april 2013 @ 19:29 | |||||
Weet iemand hoe het zit met SSL certificaten in XAMPP? Ik probeer via cURL verbinding te maken met een server, maar dat gaat niet met de SSL optie aan. Ik heb dit certificaat gedownload en in XAMPP geïnstalleerd. Met CURLOPT_CAINFO heb ik het pad naar dit certificaat gedefinieerd. Curl_exec geeft volgens geen respons, terwijl het met CURLOPT_SSL_VERIFYPEER op false wel werkt. EDIT: Volgens mij maakt de server waarmee ik wil verbinden helemaal geen gebruik van SSL. Dan heeft het ook weinig zin om zo'n certificaat te installeren toch? Kan ik gewoon SSL_VERIFYPEER en SSL_VERIFYHOST op false zetten? Heeft dat dezelfde consequenties als het inloggen via de website zelf, wat gewoon een http-verbinding is. [ Bericht 5% gewijzigd door pascal08 op 23-04-2013 19:49:08 ] | ||||||
Crutch | woensdag 24 april 2013 @ 09:27 | |||||
Een logicatest voor programmeurs. Wat moet ik me daar bij voorstellen? | ||||||
xaban06 | donderdag 25 april 2013 @ 18:19 | |||||
Ik wil weten of een bepaald woord/string voorkomt in een string. Dit doe ik met preg_match, maar werken wil het niet.
Ik krijg een false terug terwijl het er echt in voorkomt. | ||||||
KomtTijd... | donderdag 25 april 2013 @ 18:25 | |||||
probeer je nou letterlijk '$ip' te matchen? daar heb je geen regex voor nodig... (gaat ook fout met een regex aangezien $ een line-ending matcht en niet een dollarteken). Als je variabele $ip wilt matchen moet je natuurlijk geen single-quotes gebruiken. [ Bericht 5% gewijzigd door KomtTijd... op 25-04-2013 18:37:19 ] | ||||||
KomtTijd... | donderdag 25 april 2013 @ 18:27 | |||||
en volgens mij moet je preg_match() vergelijken met == 1 als je wilt weten of hij iets gematcht heeft. | ||||||
Tijn | donderdag 25 april 2013 @ 18:35 | |||||
Zoiets als een IQ-test? | ||||||
Crutch | vrijdag 26 april 2013 @ 10:34 | |||||
Het was reeksen, vormen en inzicht. | ||||||
mstx | vrijdag 26 april 2013 @ 11:00 | |||||
http://nl1.php.net/strpos | ||||||
wobbel | woensdag 1 mei 2013 @ 11:14 | |||||
Iets wat ik mij al heel lang afvraag, kan dit in MySQL? SELECT * FROM gebruikers WHERE id = [hier meerdere ID's aanleveren] En dan met een foreach alle e-mailadressen van de opgegeven ID's uitlezen? Nu doe ik gewoon een loopje met alle ID's erin waardoor ik dus voor elk ID een aparte SELECT query heb | ||||||
KomtTijd... | woensdag 1 mei 2013 @ 11:31 | |||||
Je bedoelt IN? | ||||||
wobbel | woensdag 1 mei 2013 @ 11:49 | |||||
eens testen bedankt | ||||||
Tijn | woensdag 1 mei 2013 @ 12:42 | |||||
IN + implode() | ||||||
KomtTijd... | woensdag 1 mei 2013 @ 12:52 | |||||
implode() werkt niet, dan maakt'ie er één string van ipv losse parameters als je hem prepared. | ||||||
Tijn | woensdag 1 mei 2013 @ 13:00 | |||||
Ah natuurlijk, je hebt gelijk. | ||||||
wobbel | woensdag 1 mei 2013 @ 13:34 | |||||
Hoe doe ik het dan als ik een array met ID's heb? Rechtstreeks die array erin knallen zal niet zo goed gaan Dit werkt toch: implode("','", $array) | ||||||
KomtTijd... | woensdag 1 mei 2013 @ 14:09 | |||||
gewoon die array pushen naar je array met parameters. | ||||||
kakner2 | woensdag 1 mei 2013 @ 15:38 | |||||
ook een goeie tip als je meerdere inserts wilt doen in 1 statement, kwam ik laatst achter: INSERT INTO table (col1, col2) VALUES (1, 'abc'), (2, 'def') | ||||||
boem-dikkie | dinsdag 7 mei 2013 @ 09:55 | |||||
Iemand hier ervaring met MAMP? Gister de boel zo opgezet dat ik via OSX gewoon een localhost draai en ik MAMP niet meer hoef te gebruiken. Was in de veronderstelling dat ik daarnaast MAMP gewoon kon draaien om nog even een back-up te maken van alle databases in m'n phpMyAdmin. Alleen sinds de installatie van mySQL en PHP e.d. op OSX starten de servers van MAMP niet meer op, en kan ik dus niet bij phpMyAdmin van MAMP komen. Via terminal naar de MAMP mySQL folder gaan en via ./mysqldump een database dump maken werkt ook niet. Enig idee hoe ik een back-upje van mijn MAMP databases krijg? | ||||||
Crutch | dinsdag 7 mei 2013 @ 10:49 | |||||
Localhost even uitzetten, MAMP draaien, database backuppen? | ||||||
boem-dikkie | dinsdag 7 mei 2013 @ 13:20 | |||||
Heb 't al voor elkaar. 'Data' uit de mySQL map van MAMP gehaald en in die in de nieuwe mySQL map gezet. | ||||||
KomtTijd... | dinsdag 7 mei 2013 @ 13:49 | |||||
Gaat dat zomaar? Voor zover ik weet is dat iig voor InnoDB tables geen optie. | ||||||
kutkloon7 | donderdag 9 mei 2013 @ 12:42 | |||||
Edit: nevermind, 10 seconden nadat ik postte is het opgelost. Ik dacht dat ik bestanden in de mappen had staan, maar dat was op een andere server. Verder was het een kwestie van de file permissions aanpassen in de ftp client [ Bericht 20% gewijzigd door kutkloon7 op 09-05-2013 12:48:10 ] | ||||||
kutkloon7 | donderdag 9 mei 2013 @ 13:12 | |||||
Toch een probleem, ik wil bestanden uploaden, die ik dan verplaats met move_uploaded_file(). Maar de 'safe mode' staat aan op de server die ik gebruik, waardoor alleen scripts die de map hebben aangemaakt er ook echt iets naar kunnen uploaded (als ik het goed begrijp). Hoe zou je dit kunnen oplossen? Ik heb al gegoogeld, maar ik kon niets nuttigs vinden, alleen suggesties die zeggen dat je safe mode uit moet zetten, wat ik natuurlijk niet kan. | ||||||
KomtTijd... | donderdag 9 mei 2013 @ 13:16 | |||||
Andere provider nemen. | ||||||
kutkloon7 | donderdag 9 mei 2013 @ 13:31 | |||||
Werkt, voor zover getest, perfect nu | ||||||
pascal08 | donderdag 9 mei 2013 @ 17:09 | |||||
Ik wil een aantal Javascript arrays opslaan die horen bij een JS code op een bepaalde pagina, zeg pagina: "home". Vervolgens wil ik een andere pagina kunnen bezoeken en weer terug kunnen keren naar de pagina "home" met dezelfde JS arrays als ik had. Nu dacht ik zelf aan het opslaan van de arrays in een PHP sessie variabele, maar dan zou ik de sessie variabele continue moeten updaten via HTTP. Het aantal handelingen op de pagina "home" (met de JS arrays) is vrij groot, dus het liefst wil ik de JS arrays lokaal opslaan of 1 maal bij het verlaten van de pagina. Is er een manier om vast te kunnen stellen wanneer je een pagina verlaat, zodat ik dan de arrays zou kunnen opslaan in de sessie? Mijn excuses als dit eigenlijk in het JS-topic had gemoeten. | ||||||
mstx | donderdag 9 mei 2013 @ 17:22 | |||||
Als de totale hoeveelheid data niet zo groot is zou het in een cookie kunnen. Anders idd bij elke wijziging via ajax in een sessie variabele, daar zie ik verder het probleem niet zo van. En anders misschien nog via de html5 local storage? Zelf geen ervaring mee en ik weet ook niet welke browsers dat precies ondersteunen. | ||||||
pascal08 | donderdag 9 mei 2013 @ 17:51 | |||||
Een cookie had ik nog niet aan gedacht. Momenteel heb ik al bij iedere bewerking een Ajax-request. Misschien valt er iets te combineren, zodat het allemaal in 1 request kan. Ik zal daar eens naar kijken. Wat je als laatste noemt ken ik niet. Maar het liefst wil ik wel iets wat niet browser-afhankelijk is, want sommige mensen... | ||||||
Tijn | donderdag 9 mei 2013 @ 19:19 | |||||
Waarom niet localStorage? [edit] Ah, was al genoemd zie ik. LocalStorage werkt in elke enigszins moderne browser, zelfs IE8. | ||||||
pascal08 | donderdag 9 mei 2013 @ 19:34 | |||||
Ook op mobile devices? | ||||||
Tijn | donderdag 9 mei 2013 @ 19:54 | |||||
Ja hoor. http://caniuse.com/#feat=namevalue-storage | ||||||
pascal08 | donderdag 9 mei 2013 @ 19:57 | |||||
Ik had 't zelf ook al opgezocht. Bedankt weer voor de goede tip, hier had ik waarschijnlijk niet zelf opgekomen. | ||||||
Tijn | donderdag 9 mei 2013 @ 20:00 | |||||
Grootste voordeel van localStorage is dat het niet bij elke request heen en weer van client naar server wordt gestuurd. En natuurlijk het feit dat je er meer dan 4 KB in op kunt slaan. | ||||||
pascal08 | donderdag 9 mei 2013 @ 20:08 | |||||
Ja, dat scheelt echt inderdaad. Zoiets wil je natuurlijk het liefst client-sided houden, dus dan is dit de perfect oplossing waarschijnlijk. | ||||||
Berend. | vrijdag 10 mei 2013 @ 19:15 | |||||
Ik heb een lijst met een aantal cijfers uit een database. Stukje ervan:
Script wat ik nu heb:
Hoe reken ik met een simpel script het gemiddelde van al deze getallen uit? Dank | ||||||
Juicyhil | vrijdag 10 mei 2013 @ 19:17 | |||||
SELECT AVG(Price) FROM shop_transactions WHERE ItemID='264' | ||||||
Berend. | vrijdag 10 mei 2013 @ 19:21 | |||||
Ben nog niet erg bekend met php, uitkomst van het script is ''array'' , wat doe ik fout? | ||||||
Juicyhil | vrijdag 10 mei 2013 @ 19:22 | |||||
Maak er eens AVG(Price) As prijs FROM... van. En $row['prijs'] | ||||||
Berend. | vrijdag 10 mei 2013 @ 19:26 | |||||
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/diamond/index.php on line 11
Lijn 11 is hier lijn 3. | ||||||
Juicyhil | vrijdag 10 mei 2013 @ 19:28 | |||||
Ja ik bedoel ook: SELECT AVG(Price) AS prijs FROM shop_transactions WHERE ItemID='264' | ||||||
Berend. | vrijdag 10 mei 2013 @ 19:32 | |||||
Dat werkt, erg bedankt. Ik moet zeggen dat ik had verwacht dat het bedrag lager zou zijn, maargoed. Nu staan er nog veel komma's achter, hoe fix ik dat? 39.80050089413238 | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 19:33 | |||||
Eerste hit op "php round": http://php.net/manual/en/function.round.php Eerste hit op "mysql round": http://dev.mysql.com/doc/(...).html#function_round | ||||||
Juicyhil | vrijdag 10 mei 2013 @ 19:34 | |||||
floor() omlaag afronden of ceil() omhoog afronden | ||||||
Berend. | vrijdag 10 mei 2013 @ 19:39 | |||||
Werkt top, thanks! | ||||||
Berend. | vrijdag 10 mei 2013 @ 22:47 | |||||
Nu wil ik nog toevoegen dat die alleen de resultaten pakt van de afgelopen 7/8 dagen. Na wat google'en dit gevonden:
Wat geprobeerd, maar dit werkt niet:
Misschien heeft het hiermee te maken? (Zie laatste regel in tekst, de ; Na weghalen werkt het script nog steeds niet.) Alvast bedankt! | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 22:51 | |||||
lijkt me een duidelijke syntax fout, daar moet je 100% zeker een error over krijgen. | ||||||
Berend. | vrijdag 10 mei 2013 @ 22:54 | |||||
Werkt nog steeds niet. Error: Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /var/www/diamond/index2.php on line 23 Bedankt voor je reactie. | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 22:56 | |||||
Ja dat is begrijpelijk, als je SQL niet klopt geeft mysqli_query (blijkbaar) false terug. Wat is je SQL error? | ||||||
Berend. | vrijdag 10 mei 2013 @ 22:58 | |||||
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '), INTERVAL 8 DAY) AND DAYOFWEEK(Price) >= 1' at line 1 | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 23:01 | |||||
...oh je hebt er nu een syntaxfout bij gemaakt door het openingshaakje van NOW() weg te halen... mysql errors beginnen altijd bij het karakter waar de fout zit. | ||||||
Berend. | vrijdag 10 mei 2013 @ 23:04 | |||||
Dit en dit werkt ook nog niet. Ik voel me een beetje stom na zo vaak proberen. | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 23:06 | |||||
Wat zit je dan ook allemaal te veranderen? Kijk naar de error die je krijgt. Daar zit je fout. Niet ergens anders. | ||||||
Berend. | vrijdag 10 mei 2013 @ 23:11 | |||||
Werkt ook nog niet. | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 23:15 | |||||
Hè? Wat ben je nou in hemelsnaam aan het doen? KIJK NAAR JE ERROR! er staat: De plek waar dat [stukje query] begint, dáár zit je fout! Het eerste karakter! Niet ergens anders! Los die fout op, run hem opnieuw, kijk of hij goed is. Zo niet herhalen vanaf stap 1. Debuggen is geen kwestie van random haakjes weghalen of toevoegen. | ||||||
Rockfire | vrijdag 10 mei 2013 @ 23:16 | |||||
Als je nou om te beginnen je query verbeterd:
| ||||||
Tijn | vrijdag 10 mei 2013 @ 23:19 | |||||
Regel 4 klopt natuurlijk van geen kant. Het feit dat de regel eindigt met een haakje dat nergens geopend wordt is nog maar het begin van het probleem. | ||||||
Berend. | vrijdag 10 mei 2013 @ 23:19 | |||||
Dankjewel, nu werkt die perfect. Ik moet zelf nog veel van syntaxes leren. | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 23:19 | |||||
Je moet leren debuggen. Niet leren copy-pasten. | ||||||
Rockfire | vrijdag 10 mei 2013 @ 23:46 | |||||
Wat KomtTijd zegt is wel waar: Heb je op zijn minst gekeken naar het verschil tussen jouw query en die van mij? Zodat je ook begrijpt wat je fout deed? | ||||||
Berend. | vrijdag 10 mei 2013 @ 23:49 | |||||
Ja, elk haakje dat geopend wordt moet ook gesloten worden. Right? | ||||||
KomtTijd... | vrijdag 10 mei 2013 @ 23:50 | |||||
Doe nou die originele query nog eens runnen. En KIJK NAAR DE ERROR. Staat daar een haakje in de buurt? | ||||||
Tijn | vrijdag 10 mei 2013 @ 23:55 | |||||
Ja, dat. Maar kijk ook hier eens naar:
Ik begrijp niet wat hier staat en MySQL ook niet | ||||||
KomtTijd... | zaterdag 11 mei 2013 @ 00:04 | |||||
Origineel was dat ook de enige fout, voordat hij random haakjes begon weg te halen en toe te voegen. | ||||||
Maringo | zaterdag 11 mei 2013 @ 07:38 | |||||
Interessant vraagstuk. Nog interessantere uitkomst. | ||||||
Boze_Appel | zaterdag 11 mei 2013 @ 08:23 | |||||
En wat is item 264. | ||||||
Rockfire | zaterdag 11 mei 2013 @ 09:26 | |||||
Kijk nou eens goed! Er is wel wat meer verschil dan alleen maar haakjes die je niet goed had gedaan: Jouw query: Mijn query (met de verschillen dikgedrukt en onderstreept):
| ||||||
boem-dikkie | zaterdag 11 mei 2013 @ 11:59 | |||||
Nog een vraagje over m'n localhost. Sinds ik MAMP heb weggehaald en de standaard OSX localhost gebruikt werkt mijn .htaccess rewrite niet meer. De .htaccess pakt hij zelf wel want mijn 404 werkt wel naar behoren.
Bovenstaande code werkte met MAMP wel. Als ik naar project.php?id=23 of zo ga werkt het wel, dus er gaat iets fout in die rewrite. | ||||||
Juicyhil | zaterdag 11 mei 2013 @ 12:19 | |||||
Staat mod_rewrite wel aan? Volgens mij kan je a2enmod mod_rewrite gebruiken op je terminal | ||||||
KomtTijd... | zaterdag 11 mei 2013 @ 12:30 | |||||
is die OSX webserver uberhaupt een apache server? | ||||||
boem-dikkie | zaterdag 11 mei 2013 @ 12:45 | |||||
Heb ik geïnstalleerd KomtTijd. mySQL / phpMyAdmin werkt netjes en al mijn projecten e.d. werken ook naar behoren. Alleen .htaccess loopt te kutten. En ja mod_rewrite staat wel aan. Alle confs ook nagelopen op Override e.d. | ||||||
KomtTijd... | zaterdag 11 mei 2013 @ 12:47 | |||||
Ik bedoelde, als het een ander merk webserver is gaat een htaccess bestand natuurlijk sowieso niet werken. Maar heb het gegoogled en het is inderdaad gewoon Apache. | ||||||
papernote | zaterdag 11 mei 2013 @ 12:57 | |||||
Heb je alleen die RewriteRule erin staan? Je moet ook nog een RewriteEngine on opnemen en eventueel een RewriteBase. | ||||||
boem-dikkie | zaterdag 11 mei 2013 @ 13:12 | |||||
Ja had ik. En ik heb de fout gevonden. Ik had ook nog een persoonlijke .conf in /apache2/users staan. Blijkbaar zat daar een typfout of iets dergelijks in. Heb hem opnieuw getypt en nu werkt het. | ||||||
papernote | zaterdag 11 mei 2013 @ 14:28 | |||||
Als er fouten in een .conf bestand zitten, dan moet je dat terug kunnen vinden in een log van apache. | ||||||
Juicyhil | zaterdag 11 mei 2013 @ 14:31 | |||||
http://httpd.apache.org/docs/2.2/programs/apachectl.html sudo apachectl configtest | ||||||
xaban06 | zondag 12 mei 2013 @ 02:01 | |||||
Ik ben bezig met een project wat ongeveer hetzelfde is als pricewatch/beslist/vergelijk. Dus van een artikel/product prijzen kunnen inzien van meerdere shops. Is de volgende logisch om te doen als database structuur: products - id - ean - title - image prices - id - ean - shop - url - price Alle producten worden opgeslagen in products. Alle prijzen van verschillende shops worden opgeslagen in prices. | ||||||
Tijn | zondag 12 mei 2013 @ 02:06 | |||||
En in de kolom "shop" in de tabel "prices" sla je dan id's op van winkels die in je tabel "shops" staan? | ||||||
xaban06 | zondag 12 mei 2013 @ 02:29 | |||||
Hmm, ik heb inderdaad geen tabel shops, maar is dat wel nodig? Een voorbeeld is: products: - id (auto incr), dus bv: 1 - 0846835032 - samsung tv - samsung.jpg prices: - id (auto incr), dus bv 3 - 0846835032 - BCC - http://www.bcc.nl/samsung-tv.html - 599,00 - id (auto incr), dus bv 4 - 0846835032 - Alternate - http://www.alternate.nl/samsung-tv.html - 549,00 | ||||||
Tijn | zondag 12 mei 2013 @ 03:06 | |||||
Alles kan natuurlijk, maar het lijkt me dat je de winkels wel een eigen tabel wil geven. Een paar redenen: - je voorkomt fouten - het neemt minder ruimte in beslag - het maakt het mogelijk een overzicht per winkel te maken - het maakt het mogelijk winkels een eigen account te geven en ze hun eigen prijzen te laten beheren | ||||||
Maringo | zondag 12 mei 2013 @ 09:24 | |||||
Lijkt mij dat je winkels niet elk een eigen tabel geeft maar met ids werkt en dat je met views regelt wie wat mag zien. | ||||||
Pakspul | zondag 12 mei 2013 @ 09:55 | |||||
Je moet drie tabellen hebben: Product ID, EAN, Title, Image, Description, (en wat je nog meer wilt) Shop ID, Name, Address, Description (...) ProductPrice (ProductID & ShopID zijn een samengesteld primary key) ProductID ShopID Price Je kan product price nog uitbreiden met datum (dit moet dan ook in de samengesteld sleutel worden opgenomen), zodat je per product, per winkel de prijs verschuiving over tijd kunt volgen. | ||||||
Maringo | zondag 12 mei 2013 @ 10:03 | |||||
Dit inderdaad. Volgens mij had ik Tijn zn bericht ook verkeerd begrepen. | ||||||
DutchErrorist | zondag 12 mei 2013 @ 17:49 | |||||
Ik zit te kijken naar een boek voor PHP en MySQL, en ik kwam Head First! PHP and MySQL tegen. Is dat een beetje een goed boek? | ||||||
rekenwonder | zondag 12 mei 2013 @ 22:18 | |||||
Ik ken Head First alleen van Design Patterns, maar de stijl sprak me wel erg aan. En ze weten ook nog eens waar ze het over hebben. | ||||||
Chandler | maandag 13 mei 2013 @ 09:10 | |||||
Vraagje, hoe kan ik middels PHP uitlezen wat ik maximaal mag gebruiken aan geheugen? Verder zou ik willen weten hoe mensen flush icm chrome werkend krijgen, dus directe output of het nou 1 teken is of 20000? | ||||||
Rockfire | maandag 13 mei 2013 @ 09:13 | |||||
| ||||||
boem-dikkie | maandag 13 mei 2013 @ 09:16 | |||||
Kwam dit laatst tegen. Uitleg en dergelijke over het 'boek' leek me best goed! http://www.brandonsavage.(...)-for-php-developers/ | ||||||
Chandler | maandag 13 mei 2013 @ 09:17 | |||||
Stom, had ik zelf ook kunnen bedenken! maar verder nog mensen een idee op mijn flush probleem? of moet ik nou specifiek daarvoor een andere browser gaan gebruiken? | ||||||
Crutch | maandag 13 mei 2013 @ 11:09 | |||||
Wat ik weet van Head First is dat het prettig leest (bij Java zelfs erg grappig om te lezen) en dat je er daadwerkelijk wat van opsteekt. Maar je kan ook gewoon eerst een PDF-versie ervan Googlen en voor jezelf kijken wat je ervan vindt. | ||||||
papernote | maandag 13 mei 2013 @ 11:09 | |||||
http://stackoverflow.com/(...)ot-working-in-chrome | ||||||
Chandler | maandag 13 mei 2013 @ 11:34 | |||||
Is helaas ook geen oplossing, zat zelf te denken of ik de minimale buffer van chrome kan aanpassen van bv 4096 naar 1024 oid? want na 2500 regels zie ik zowat iedere regel komen... en niet 10-20 te gelijk.... | ||||||
Laser. | maandag 13 mei 2013 @ 11:38 | |||||
Toch even wat hulp nodig met iets. Ik heb een mysql tabel waar datums in een veld met de functie NOW() zijn ingevuld. Voorheen las ik dit altijd rechtstreeks uit de database, maar nu wil ik het netter hebben staan. En ook in het NL. Na wat puzzelen heb ik momenteel dit:
Dan krijg ik als output: %Europe/Amsterdam-%064-%1970 Dus dat gaat niet goed. Het moet worden: dag-maand-jaar. | ||||||
papernote | maandag 13 mei 2013 @ 11:45 | |||||
Roep je ook date_default_timezone_set() aan? En heb je überhaupt de documentatie van de date() functie gelezen? | ||||||
mstx | maandag 13 mei 2013 @ 11:53 | |||||
| ||||||
Laser. | maandag 13 mei 2013 @ 11:56 | |||||
Thanks! Ik had date_default_timezone_set niet aangeroepen. Staat nu op Amsterdam. En date() was inderdaad niet nodig om te gebruiken! | ||||||
Sitethief | maandag 13 mei 2013 @ 14:26 | |||||
Wat is eigenlijk beter, of maakt het niks uit? Dit:
| ||||||
mstx | maandag 13 mei 2013 @ 14:32 | |||||
Als je tussen je eigen 2 opties moet kiezen vind ik de 2e veel duidelijker. | ||||||
papernote | maandag 13 mei 2013 @ 14:42 | |||||
Vertraagt? Is dat überhaupt iets om je mee bezig te houden in een simpele if-else constructie? Meten = weten. | ||||||
Rockfire | maandag 13 mei 2013 @ 14:55 | |||||
Ik ben voor de optie van mstx. Nog een andere optie (die ik niet mooier vind dan die van mstx):
| ||||||
Sitethief | maandag 13 mei 2013 @ 14:58 | |||||
Ohjah, dies eigenlijk veel mooier, ik vergeet vaak dat er diverse shorthands zijn . Ik zit de laatste tijd een beetje te kritisch naar mijn eigen programmeerstijl te kijken... En dan komen dit soort dingen ook om de hoek kijken. Eigenlijk moet ik niet zo mierenneuken. | ||||||
Rockfire | maandag 13 mei 2013 @ 14:59 | |||||
Als je er de tijd voor hebt is het helemaal niet verkeerd om kritisch naar je eigen code te kijken. | ||||||
wipes66 | maandag 13 mei 2013 @ 15:02 | |||||
zo moet hij nog sneller zijn als het goed is, maar misschien iets minder goed leesbaar/duidelijk dan #2 | ||||||
Sitethief | maandag 13 mei 2013 @ 15:03 | |||||
Mjah das vaak het probleem hier, er zit zo'n druk achter dat alles soms een brei van veel procedurele code wordt met te weinig structuur een OOP om de codebase hanteerbaar te houden. Wat uiteindelijk tot meer werk leid als er gerefeactored moet worden etc, maar goed dat is een bekend verhaal denk ik. En daar naast heb ik OOP nog niet volledig onder de knie. Toch vind ik het veel leuker om gestructureerde, goed leesbare, becommentarieerde code te schijven, kost alleen meer tijd. | ||||||
wobbel | maandag 13 mei 2013 @ 15:32 | |||||
Ik klop al veel te lang geen code meer, hoe selecteer ik het volgende: tabel 'users' ID Naam SELECT * FROM users WAARVAN ID = 5 EN/OF (dus mag ook allebei) Naam = henk | ||||||
mstx | maandag 13 mei 2013 @ 15:35 | |||||
OR | ||||||
wobbel | maandag 13 mei 2013 @ 15:37 | |||||
Maar dan mag het toch niet allebei? Het ene of het andere | ||||||
mstx | maandag 13 mei 2013 @ 15:37 | |||||
Dat is XOR. | ||||||
GI | maandag 13 mei 2013 @ 15:37 | |||||
select * from users where ID = 5 or naam = "henk". Dan krijg je alles met vijf, ook als het henk is | ||||||
papernote | maandag 13 mei 2013 @ 15:45 | |||||
Kun je beargumenteren waarom het sneller zou moeten zijn? | ||||||
papernote | maandag 13 mei 2013 @ 15:46 | |||||
En ook alles dat geen vijf is, maar wel henk. | ||||||
wipes66 | maandag 13 mei 2013 @ 15:47 | |||||
geen if statement in de loop | ||||||
GI | maandag 13 mei 2013 @ 15:48 | |||||
Dat wil hij toch ook ? | ||||||
papernote | maandag 13 mei 2013 @ 15:48 | |||||
Ja dus? Branch prediction met een constante boolean, daar ga je niets van merken in de looptijd. Het feit dat je nu tweemaal een identieke foreach hebt vind ik nadeliger qua onderhoud van je code. | ||||||
papernote | maandag 13 mei 2013 @ 15:51 | |||||
Die tweede foreach kun je trouwens vervangen door een array_flip(). | ||||||
wipes66 | maandag 13 mei 2013 @ 16:07 | |||||
je hebt helemaal gelijk ik heb het voor de grap eens getest en het is zelf iets langzamer edit: iets uitgebreider getest en er is 0,0 verschil. [ Bericht 3% gewijzigd door wipes66 op 13-05-2013 16:12:57 ] | ||||||
Sitethief | maandag 13 mei 2013 @ 16:32 | |||||
Wow, nice . | ||||||
Tijn | woensdag 15 mei 2013 @ 15:02 | |||||
Is er een handigere manier om de mogelijke waarden van een kolom van het type "set" terug te krijgen dan het uit het resultaat van "SHOW COLUMNS FROM `table`" te peuteren? | ||||||
rekenwonder | woensdag 15 mei 2013 @ 19:39 | |||||
Wat is handiger? Je kan in de tabel information_schema.columns gaan purken, maar volgens mij komt het dan in het zelfde onhandelbare formaat. | ||||||
Tijn | woensdag 15 mei 2013 @ 19:51 | |||||
Iets waar gewoon een lijstje uitkomt ipv een gare array die ik nog moet parsen zou leuk zijn. Maar het is er niet he? | ||||||
Light | woensdag 15 mei 2013 @ 20:47 | |||||
Een oplossing die ik wel eens gezien heb is het resultaat uit information_schema.columns te halen. Dat levert iets als enum('foo','bar','baz'). Dan in php enum vervangen door array en het geheel eval()-en. Een andere mogelijkheid zou ik zo niet weten. | ||||||
Chandler | woensdag 15 mei 2013 @ 23:30 | |||||
Hey allemaal, Ben sinds een paar dagen met een crawler aan het spelen en heb nu een functie gemaakt die kijkt of links een volledige of juist onvolledige link heeft, indien er geen http:// in voorkomt wil ik het aanpassen, dat heb ik nu met de volgende functie gedaan, maar nu de vraag aan jullie. Wat zouden jullie anders doen? Voorbeeld links
uitkomst
| ||||||
slacker_nl | donderdag 16 mei 2013 @ 09:31 | |||||
Heb je iets van basename, dirname functies in php, dat gebruiken, scheelt je een hoop gezeik volgens mij. Je hebt ook een realpath functie. Ik zou die eens gebruiken. | ||||||
mstx | donderdag 16 mei 2013 @ 09:33 | |||||
Volgens mij klopt die niet. | ||||||
Chandler | donderdag 16 mei 2013 @ 09:57 | |||||
Het gaat om parsen van links in een document Je hebt gelijk gisteren echt overheen gekeken, gelijk even proberen te fixen, maar verder nog tips? of is deze dirty manier goed genoeg? Update:
Uitkomst (alleen het gefixte gedeelte):
[ Bericht 61% gewijzigd door Chandler op 16-05-2013 10:04:17 ] | ||||||
slacker_nl | donderdag 16 mei 2013 @ 10:56 | |||||
Dus? Ahh, kutzooit, readlink -m is niet geimplementeerd in php. Dus.. | ||||||
Tijn | donderdag 16 mei 2013 @ 11:02 | |||||
Wil je $baseUrl echt elke keer meegeven aan de functie? Dat is (binnen de applicatie) toch altijd dezelfde waarde? Ik zou er een constante van maken die je ergens in je config-file definieert. | ||||||
Chandler | donderdag 16 mei 2013 @ 11:09 | |||||
Nee maar is wel gemakkelijk om het zo in een test case te verwerken zodat ik deze gemakkelijk kan aanpassen | ||||||
slacker_nl | donderdag 16 mei 2013 @ 11:23 | |||||
[ Bericht 31% gewijzigd door slacker_nl op 16-05-2013 11:43:25 (hehe, stomme removal van een returnvalue.. ) ] | ||||||
Chandler | donderdag 16 mei 2013 @ 18:10 | |||||
Ook leuk | ||||||
slacker_nl | donderdag 16 mei 2013 @ 19:02 | |||||
| ||||||
slacker_nl | donderdag 16 mei 2013 @ 19:19 | |||||
array_map gebruiken?
| ||||||
Chandler | donderdag 16 mei 2013 @ 19:22 | |||||
Tssss moet niet gekker worden | ||||||
papernote | donderdag 16 mei 2013 @ 20:06 | |||||
Daar lijkt het wel op, maar het doet iets anders. In de oorspronkelijke functie wordt het product gekoppeld aan de key opgehaald en in een nieuwe array op de plaats van value neergezet. Dat is dus niet per se gelijk aan wat array_map doet. | ||||||
slacker_nl | donderdag 16 mei 2013 @ 20:25 | |||||
Works for me:
Ahh. Ik zie. Dat gaat idd niet. [ Bericht 12% gewijzigd door slacker_nl op 16-05-2013 20:43:20 ] | ||||||
Chandler | vrijdag 17 mei 2013 @ 10:52 | |||||
Heeft iemand een oplossing voor het volgende? stel een script maakt gebruik van de functie ignore_user_abort(true); maar wil het script toch stoppen wanneer ik dat zelf graag wil (wat voor reden dan ook). Ik heb geprobeerd om dit op te lossen met een cookie/sessie maar helaas geen oplossing. test case
en de manier dat ik dacht om te cancelen
maar dat gaat ook niet werken, op zich zou ik per seconde een query naar een database kunnen doen en daar dan een tabel kunnen gebruiken om te cancelen maar hoop op een andere gemakkelijke manier.. Anyone? | ||||||
slacker_nl | vrijdag 17 mei 2013 @ 11:07 | |||||
Waarom zou dat het spul moeten opheven, als dat waar is doe je niks met ignore_user_abort(); Dus dat blijft gewoon zoals het is.. | ||||||
Chandler | vrijdag 17 mei 2013 @ 11:18 | |||||
Voordeel van ignore_user_abort is dat het script doorloopt als de browser gesloten wordt... dat vind ik het handige er aan. Maar stel het project loopt fout, maar blijft fout doorlopen... dan moet ik php killen en dat is niet echt praktisch als je geen server admin bent.. Dus ben ik opzoek naar een methode die wel werkt! | ||||||
mstx | vrijdag 17 mei 2013 @ 11:31 | |||||
De $_SESSION variabele wordt aan het begin van het script ingesteld en kan niet door een ander script aangepast worden. Dan zul je het moeten doen via een bestandje dat je steeds uitleest of via een memcached/apc variabele oid. edit: misschien werkt het ook gewoon al als je session_destroy() en session_start() weer aanroept. | ||||||
Chandler | vrijdag 17 mei 2013 @ 12:00 | |||||
Maak van misschien maar, het werkt! LOL
met als cancel
maar goed, dit is natuurlijk alleen maar een oplossing voor het scherm dat je open hebt, en als je deze sluit heeft het volgens mij geen effect... wel leuk probleem om mee te spelen Zat zelf nog aan een extra bestandje (kijken of deze bestaat) te denken, die te plaatsen waardoor ALLE jobs gestopt worden, alleen weet ik niet of dat dat leuk is voor de server qua preformance?! | ||||||
mstx | vrijdag 17 mei 2013 @ 12:23 | |||||
Daar zou ik dan een APC variabele voor gebruiken, die staat in het werkgeheugen. | ||||||
ursel | vrijdag 17 mei 2013 @ 12:29 | |||||
Als ik even op de pagina van php kijk zie ik in het commentaar dit stukje staan:
Dan kan je toch als het proces start een waarde naar je database wegschrijven. En deze waarde elke keer ophalen? Wil je hem killen zet je de waarde op 0 en in de while check je hierop. | ||||||
Chandler | vrijdag 17 mei 2013 @ 12:30 | |||||
apc is een leuke en ja ook een connectie naar de database is mogelijk, maar wilde gewoon alle mogelijkheden testen | ||||||
xaban06 | vrijdag 17 mei 2013 @ 14:07 | |||||
Waarom krijg ik geen IP FOUND te zien Alleen maar IP NOT FOUND. | ||||||
Maringo | vrijdag 17 mei 2013 @ 14:09 | |||||
Omdat je datatypes niet gelijk zijn. Je vergelijkt 1.2.3.4 met '1.2.3.4'. | ||||||
slacker_nl | vrijdag 17 mei 2013 @ 14:12 | |||||
Beide zijn strings, dus het moet goed zijn. | ||||||
Chandler | vrijdag 17 mei 2013 @ 14:13 | |||||
Werkt dus is er toch iets niet goed | ||||||
rekenwonder | vrijdag 17 mei 2013 @ 14:13 | |||||
Maar == is toch geen type-safe comparison? | ||||||
rekenwonder | vrijdag 17 mei 2013 @ 14:14 | |||||
Waarom gebruik je niet array_search() trouwens? | ||||||
slacker_nl | vrijdag 17 mei 2013 @ 14:15 | |||||
maar doe zoiets:
| ||||||
boem-dikkie | vrijdag 17 mei 2013 @ 14:16 | |||||
Werkt prima als ik hem zo uitvoer:
| ||||||
mstx | vrijdag 17 mei 2013 @ 14:16 | |||||
Beide zijn sowieso strings dus niet nodig om ook het type te controleren. | ||||||
boem-dikkie | vrijdag 17 mei 2013 @ 14:16 | |||||
Oh te laat. | ||||||
Chandler | vrijdag 17 mei 2013 @ 14:18 | |||||
| ||||||
xaban06 | vrijdag 17 mei 2013 @ 14:49 | |||||
Volgens mij ben ik gek of ik doe iets heel erg fout. /edit Opgelost, thanks Chandler. | ||||||
Chandler | vrijdag 17 mei 2013 @ 14:51 | |||||
probeer eens trim om het ip adres heen? dus trim($IP) | ||||||
xaban06 | vrijdag 17 mei 2013 @ 14:51 | |||||
Omdat ik die functie niet ken ..nu wel overigens | ||||||
xaban06 | vrijdag 17 mei 2013 @ 14:53 | |||||
Nu even kijken wat trim precies doet | ||||||
Tijn | vrijdag 17 mei 2013 @ 15:01 | |||||
Spaties en andere onzin van de voor- en achterkant van een string afhalen. | ||||||
Chandler | vrijdag 17 mei 2013 @ 15:04 | |||||
You are so (ontiegelijk) welkom! donaties mogen naar anti brein stichting | ||||||
Light | vrijdag 17 mei 2013 @ 23:17 | |||||
Ik zou zelf in_array() aanraden. | ||||||
rekenwonder | vrijdag 17 mei 2013 @ 23:58 | |||||
| ||||||
papernote | zaterdag 18 mei 2013 @ 09:20 | |||||
APC | ||||||
DutchErrorist | zaterdag 18 mei 2013 @ 21:11 | |||||
Ik heb even een vraagje over deze code. Ik snap waarom je de twee strings bij $dbc en $query in variabelen zet, maar voor die msqli_query in $result is dat toch niet nodig? En ik dacht dat de codes achter de "$result =" werden opgeslagen en niet werden uitgevoerd, maar hij plaatst wel alles in de tabel. Kan iemand hier mij even duidelijkheid over geven. Sorry als ik onduidelijk ben, maar ben voor het eerst bezig met PHP. | ||||||
mstx | zaterdag 18 mei 2013 @ 21:43 | |||||
Dan kun je checken of de query goed is uitgevoerd. Maar aangezien er ook al "or die" achter staat is het nutteloos.
| ||||||
Pakspul | zaterdag 18 mei 2013 @ 21:57 | |||||
$dbc is geen string, zoals php.net aangeeft: " Returns an object which represents the connection to a MySQL Server. ". Na de functie te hebben uitgevoerd zit in de variabel een object die de connectie representeert. De variabel $query (wat wel een string is) wordt samen gebruikt met het object in de functie mysqli_query. Deze functie, zoals mstx ook aangeeft, geeft een boolean of een object terug. Het is handig om http://www.php.net te gebruiken om kennis te maken met de functies en te zien wat er in moet en wat er uit komt. Daarnaast als je de string $query vult, waar komen deze variabelen allemaal vandaan, want dit kan een groot gevaar vormen voor je website. | ||||||
slacker_nl | zaterdag 18 mei 2013 @ 23:50 | |||||
Aangezien je nieuw bent in PHP: mysqli wegflikkeren en PDO gebruiken. Leer je het in een keer goed. | ||||||
mschol | zondag 19 mei 2013 @ 00:02 | |||||
waarom? | ||||||
Tijn | zondag 19 mei 2013 @ 00:06 | |||||
Makkelijkere API, zeker voor beginners. | ||||||
mschol | zondag 19 mei 2013 @ 00:09 | |||||
oke.. | ||||||
slacker_nl | zondag 19 mei 2013 @ 00:13 | |||||
Omdat het makkelijk, transparant, voor alle DB's dezelfde calls, return values, kek en het OO is. Dat ze die ouwe meuk er nog niet uitgegooid hebben snap ik niet, PDO moet gewoon omarmt worden door PHP developers. | ||||||
mschol | zondag 19 mei 2013 @ 00:16 | |||||
ik heb werkelijk nog nooit PDO gebruikt.. (en tot een jaar terug ofzo niet eens wat over gehoord...) | ||||||
Tijn | zondag 19 mei 2013 @ 00:21 | |||||
Het wordt al een tijdje door PHP zelf aangeraden (samen met mysqli): http://nl1.php.net/manual/en/mysqlinfo.api.choosing.php | ||||||
slacker_nl | zondag 19 mei 2013 @ 00:22 | |||||
Dat is het probleem. Ik denk dat ik er drie jaar geleden in dit topic ook vaak over heb lopen zagen. Herstel, 2008 alweer. Dat is vijf jaar.. | ||||||
mschol | zondag 19 mei 2013 @ 00:27 | |||||
aha ik hobby er hoofdzakelijk mee, dus voor mij voldoet mysqli nog wel, wellicht stap ik in de toekomst eens over op pdo | ||||||
DutchErrorist | zondag 19 mei 2013 @ 00:31 | |||||
Naaah ik volg eerst het boek maar eens. | ||||||
papernote | zondag 19 mei 2013 @ 12:24 | |||||
Lees dan dit eens: http://php.net/mysqli_query. Die functie kan meerdere dingen terug geven, ook na een INSERT query. Dat kun je dan gebruiken om te zien of de query gelukt is. Nu staat er in jouw code (heel slecht) "or die" achter, waardoor het opslaan van de boolean die mysqli_query() terug geeft niet meer nodig is. Maar als je een nette error afhandeling maakt, dan wil je de waarde van $result na een INSERT query ook bekijken. | ||||||
DutchErrorist | zondag 19 mei 2013 @ 12:27 | |||||
Ik zal als ik dit boek heb door gewerkt me eens concentreren op hoe PDO precies werkt. Ik wil toch eerst de basics onder de knie hebben. | ||||||
Tijn | zondag 19 mei 2013 @ 12:41 | |||||
Ik zou zeggen dat PDO juist de basis is en je daarna eventueel mysqli eens zou kunnen bekijken voor geavanceerdere dingen. | ||||||
DutchErrorist | zondag 19 mei 2013 @ 12:43 | |||||
Ja maar het lijkt me ook wel handig dat ik even weet hoe PHP precies werkt. Hoe PDO werkt kan ik later nog wel opzoeken. | ||||||
Tijn | zondag 19 mei 2013 @ 12:44 | |||||
Dat begrijp ik. Als ik jou was zou ik de documentatie op php.net goed lezen. Zeker voor beginners is het goed geschreven vind ik. | ||||||
papernote | zondag 19 mei 2013 @ 12:48 | |||||
Maar niet de comments bij de documentatie, daar moet je soms wel om huilen. | ||||||
papernote | zondag 19 mei 2013 @ 12:48 | |||||
Waar ik naar linkte is geen PDO hè. | ||||||
DutchErrorist | zondag 19 mei 2013 @ 12:56 | |||||
Nee klopt dat zie ik nu, maar iedereen begint over PDO en weet ik veel terwijl ik zelf nog maar net begonnen ben. Dan kan ik beter even met msqli beginnen en in mijn achterhoofd houden dan ik nog even moet kijken naar hoe het nu precies zit met 'or die' en PDO. | ||||||
papernote | zondag 19 mei 2013 @ 13:03 | |||||
Hoe oud is je boek? | ||||||
Tijn | zondag 19 mei 2013 @ 13:09 | |||||
Kun je al programmeren in andere talen? | ||||||
DutchErrorist | zondag 19 mei 2013 @ 13:59 | |||||
Uh het is Head first php & mysql. Nee alleen HTML en CSS. Ik wil alleen een website maken die een database gebruikt voor iets dus wil het ook wat snappen. Daarnaast moet ik sowieso voor volgend semester MySQL gebruiken en waarschijnlijk willen ze dat je dan Access gebruikt, maar daar heb ik geen zin in. | ||||||
Tijn | zondag 19 mei 2013 @ 14:01 | |||||
Dan zou ik me nog even helemaal niet bezighouden met databasetoegang en eerst zorgen dat je weet hoe variabelen, if-statements, loops, functies, objecten etc. werken. | ||||||
papernote | zondag 19 mei 2013 @ 14:02 | |||||
Head first het raam uit met dat boek. Het is uit 2008!! Dat is vijf jaar oud! | ||||||
DutchErrorist | zondag 19 mei 2013 @ 14:15 | |||||
Nee Het is handig om de basics te begrijpen. Ik snap best wel dat het een en ander is veranderd, maar dat kan ik ook nog wel achteraf leren aan de hand van codacademy of andere websites. Als ik PHP wil gaan gebruiken zoek ik het sowieso van te voren voorbeelden op online voordat ik iets ga doen. Komt wel goed | ||||||
Tijn | zondag 19 mei 2013 @ 14:22 | |||||
Wat je nu aan het doen vent heeft niks met de basics te maken. | ||||||
Chandler | maandag 20 mei 2013 @ 09:08 | |||||
Heeft er iemand ook ervaring met het laten draaien van php scripts in de achtergrond (soortement van cronjob maar dan een script) die 24/7 draait? ik wil namelijk een service gaan maken waarbij ik een web interface ga schrijven en een cronjob wil draaien die het werk op de achtergrond doet. Wil weten hoe stabiel dat is Wil ook weten dat wanneer het script gestopt is/wordt ik deze weer automatisch kan starten | ||||||
papernote | maandag 20 mei 2013 @ 09:19 | |||||
PHP is niet bedoelt om 24/7 te draaien. Dan kun je beter een andere programmeertaal gaan gebruiken. Bijvoorbeeld een Java of C++ applicatie maken die continue draait. | ||||||
Chandler | maandag 20 mei 2013 @ 09:23 | |||||
Juist, maar die kennis heb ik dus niet in huis. Maar kun je mij vertellen waarom niet? of iets er niet voor bedoeld is is natuurlijk heel wat anders of het wel/niet kan met de redenen daarvan | ||||||
slacker_nl | maandag 20 mei 2013 @ 09:26 | |||||
Idd, bash of perl | ||||||
Chandler | maandag 20 mei 2013 @ 09:28 | |||||
Nogmaals, daar heb ik geen kaas van gegeten en heb nu al een leuk scriptje dat dagen kan draaien en zijn ding kan doen, maar daar willen we nu een interface omheen gaan schrijven om bepaalde processen te starten/stoppen etc. Het scriptje doet nu al precies wat het moet doen alleen nog op basis van het aanroepen en het lekker laten lopen met user_ignore_abort... ( hehe ) en kan alleen afgesloten worden als daarvoor een instructie van de database afkomt of als het process is voltooid. | ||||||
papernote | maandag 20 mei 2013 @ 09:31 | |||||
http://symcbean.blogspot.(...)nning-processes.html edit: het gaat hier over long-running en nog niet eens infinite-running scripts, maar een aantal nadelen staan genoemd. Natuurlijk kun je PHP vast misbruiken om eeuwig te blijven draaien, zul je het af-en-toe eens moeten killen om resources vrij te geven en dergelijke, maar het zal niet lekker gaan werken. Een programmeertaal bedoelt voor het maken van applicaties is een betere keuze. | ||||||
Chandler | maandag 20 mei 2013 @ 09:38 | |||||
Ik zal het doornemen! -edit- Staat niet dat het niet kan, wel dat het niet handig is ivm afbreken van het script door de server, veel gebruik van systeem resources etc. Maar dat laatste ben ik niet bang voor aangezien ik het script gebruik voor een specifiek iets... en na iedere actie het geheugen weer 100% terug geef.. Het afbreken van het script is wel een vervelend punt vandaar dat ik een oplossing hiervoor zoek, eventueel een cronjob die iedere minuut een check doet of het script nog draait en is dit niet het geval dan het script weer aanroepen zodat het weer verder kan gaan met draaien! | ||||||
slacker_nl | maandag 20 mei 2013 @ 09:55 | |||||
Dan leer je het toch? Je kan PHP, dan kom je talen tegen waar het allemaal net iets logischer is. | ||||||
Light | maandag 20 mei 2013 @ 10:21 | |||||
Totdat je ergens iets vergeet. En je infinite-running script zo af en toe via een cronjob aanzetten ipv continu laten draaien is geen optie? | ||||||
papernote | maandag 20 mei 2013 @ 11:03 | |||||
Of nog erger: totdat PHP iets vergeet en je er überhaupt niets aan kunt doen. | ||||||
Chandler | maandag 20 mei 2013 @ 12:30 | |||||
Mooi, maar wil nog niet zeggen dat ik voor 1 iets gelijk een nieuwe taal moet gaan leren, daar heb ik helaas geen tijd / prioriteit voor.. Daar kom je snel genoeg achter met xdebug Tuurlijk is dat wel een optie! zou het script ook bv een uur of 3 kunnen laten lopen en daarna weer opnieuw opstarten maar als het niet hoeft, hoeft het niet! PHP iets vergeet? kun je dat eens uitleggen? maar om het script te stoppen zijn er dan nog aantal andere mogelijkheden om het script te stoppen (via database, via apc, via bestand, noem maar op). | ||||||
xaban06 | maandag 20 mei 2013 @ 14:43 | |||||
Je zou bij het starten van je script de pid weg kunnen schrijven naar een bestand. Met een cronjob check je of deze nog draait, zo niet: starten. Of je herstart 'm sowieso ieder uur oid. | ||||||
Chandler | maandag 20 mei 2013 @ 17:12 | |||||
Inderdaad een goed idee! maar dan heb je geen pid nodig hoor voorbeeld op: http://stackoverflow.com/(...)isnt-already-running En herstarten lijkt me niet handig tenzij ik zeker weet dat hij niet draait, straks draaien er 10 instanties door elkaar... ook niet echt handig | ||||||
Tijn | maandag 20 mei 2013 @ 17:20 | |||||
Maar waarom doet het script niet gewoon wat-ie moet doen en stopt-ie daarna, om vervolgens (bv door cron of door zichzelf) even later weer opnieuw te starten? Dat is toch een veel beter idee dan iets met een infinite loop? | ||||||
Chandler | maandag 20 mei 2013 @ 17:30 | |||||
Daar ben ik het dan ook wel mee eens! Sowieso is het natuurlijk nooit slecht om af en toe even een machine op adem te laten komen. Eventueel handig om tabellen te optimaliseren... | ||||||
slacker_nl | maandag 20 mei 2013 @ 17:35 | |||||
@Chandler: http://pear.php.net/package/System_Daemon/docs | ||||||
Chandler | maandag 20 mei 2013 @ 17:48 | |||||
Leuk, ben het aan het doornemen... child process voor php scriptjes nifty * Unix only grrrr | ||||||
xaban06 | dinsdag 21 mei 2013 @ 03:17 | |||||
Laat ook maar [ Bericht 98% gewijzigd door xaban06 op 21-05-2013 04:07:14 ] | ||||||
Chandler | dinsdag 21 mei 2013 @ 19:04 | |||||
Hoe zorg je dat een op de achtergrond lopend proces die (bv websites scant) niet door 1 gebruiker helemaal wordt overgenomen? maar netjes de taken over alle gebruikers verdeeld? Wat is nou de juiste manier van aanpakken? iedere actieve user qua datetime nalopen op wie het laatste en het langst geleden is gescanned? hoe doet google dat? en is daar informatie over te lezen? heb al gezocht over threads, queues etc maar kon niet echt iets vinden waar ik wijzer van werd. Voorbeeld: Stel ik heb 2 gebruikers die websites laten scannen. User 1 - > website.nl User 2 -> website.com Nu laad ik eerst user 1 en process de eerste pagina, daaruit haal ik alle links (36) Daarna laad ik user 2 en process de eerste pagina, daaruit haal ik alle links (15). In het tabel staat het nu zo id 1 -> user 1 pagina 1 id 2 -> user 2 pagina 1 id 3 t/m 39 -> user 1 vervolg pagina id 40 t/m 55 -> user 2 vervolg pagina Dus als ik door ga met scannen gebeurd er dit. user 1 laad de volgende pagina's in queue (3 t/m 39) en haalt daaruit 300 pagina's user 2 laad de volgende pagina's in queue (40 t/m 55) en haalt daaruit 500 pagina's tabel ziet er nu zo uit (vervolg) id 56 t/m 356 -> user 1 vervolg pagina's id 367 t/m 867 -> user 2 vervolg pagina's user 1 laad de volgende pagina's in queue (56 t/m 356) en haalt daaruit 3000 pagina's user 2 laad de volgende pagina's in queue (40 t/m 55) en haalt daaruit 5000 pagina's tabel ziet er nu zo uit (vervolg) etc id 868 t/m 3868 -> user 1 vervolg pagina's id 3869 t/m 8869 -> user 2 vervolg pagina's etc etc etc Zoals je nu ziet wordt de verhouding erg scheef tussen het inlezen en het toevoegen aan de queue, dus mijn vraag is hoe ik dit beter kan oplossen? [ Bericht 59% gewijzigd door Chandler op 21-05-2013 19:36:51 ] | ||||||
Tijn | dinsdag 21 mei 2013 @ 19:36 | |||||
Wat is een gebruiker in deze context? | ||||||
Chandler | dinsdag 21 mei 2013 @ 19:37 | |||||
Een gebruiker is iemand die een job invoert op de site, zie vorige bewerkte post... hopelijk een stuk duidelijker. | ||||||
boem-dikkie | dinsdag 21 mei 2013 @ 19:38 | |||||
Ik snap echt helemaal niks van je verhaal. | ||||||
Chandler | dinsdag 21 mei 2013 @ 19:41 | |||||
Was ik al bang voor, maar je ziet toch wel het gevolg van het invullen van de database tabellen? of moet ik het even voor je voormaken? zodat je zo'n 9000 url's in een overzicht krijgt | ||||||
Crutch | dinsdag 21 mei 2013 @ 19:48 | |||||
Waarom doe je alles in 1 table? Da's toch niet meer bij te houden? | ||||||
Chandler | dinsdag 21 mei 2013 @ 19:50 | |||||
Waarom niet? in deze tabel staan alleen maar het volgende id, project_id, url, ref_id, last_visit That's all | ||||||
Crutch | dinsdag 21 mei 2013 @ 19:53 | |||||
Dus ref_id is de id met de url van de pagina waarin de url gevonden is? Oftewel z'n 'parent'-pagina? | ||||||
Crutch | dinsdag 21 mei 2013 @ 19:57 | |||||
Misschien kun je een tabel met 'tasks' maken. Als een thread dan klaar is met lezen, steelt hij een aantal taken van de andere user die nog bezig is. And so on. | ||||||
Chandler | dinsdag 21 mei 2013 @ 20:00 | |||||
Correct Dat is dus het probleem, ik zou liever zien dat ik bv per gebruiker 1 url uitlees, daarvan de links in de database invoer en op ga naar de volgende user (job) en daarvan 1 url uitlees en etc etc etc.. | ||||||
Crutch | dinsdag 21 mei 2013 @ 20:08 | |||||
Dan verdeel je geen taken, maar krijgen beide users vanaf het begin een specifiek domein en blijven altijd de onderliggende pagina's en url die aanvankelijk uit dat domein gekomen zijn scannen. Oftewel; ik denk niet dat wat jij wil kan zonder dat de processen scheef gaan lopen, want ze nemen elkaar in principe geen werk uit handen dus is er geen balans. | ||||||
Chandler | dinsdag 21 mei 2013 @ 20:13 | |||||
Nee klopt maar het zou mooi zijn als ik de een een url kon laten opvragen, die verwerken en dan de url van de volgende opvragen ongeacht hoe lang de queue is... | ||||||
Crutch | dinsdag 21 mei 2013 @ 20:21 | |||||
poehhhhhh..... Dan zou je moeten bepalen wat een url is en wat een url is komende uit zo'n 'parent'-url; eenmaal begonnen loop je het risico dat er geen eind aan het scannen komt, neem bijvoorbeeld wikipedia. Je queue kan dan wel eens exponentieel oplopen, interessant wel, maar ook dweilen met de kraan open. | ||||||
Chandler | woensdag 22 mei 2013 @ 07:52 | |||||
Dat bedoel ik, dus als ik het op deze manier doe moet ik OF voor iedere job een apart script laten lopen OF een script maken die jobs netjes verdeeld en ongeacht de lengte van de queue de url's verwerkt... GlowMouse? Catch22? en anderen? jullie ideeen? | ||||||
Maringo | woensdag 22 mei 2013 @ 08:48 | |||||
Wat perspectief is misschien ook handig. Om hoeveel websites gaat het? Hoeveel user? Hoe groot zijn de websites? En op de vraag hier Google het doet, weet alleen Google het antwoord. Maar ga er vanuit dat hun niet 1 job per keer laten draaien. | ||||||
Chandler | woensdag 22 mei 2013 @ 09:10 | |||||
Ok, 5 users, 5 sites en hoe groot de websites zijn maakt op zich weinig uit, de ene heeft 20 pagina's de andere 20.000.000 Een ander voorbeeld: Stel er zijn mensen die op youtube video's uploaden (LOL, wie doet dat nou?) en youtube kan maar 1 video per keer converteren!. Er is dan een wachtrij waarin video's gezet worden. Opeens is er een gebruiker die 20 video's toevoegt (speeltijd: 6000 uur) en deze komen allemaal in de wachtrij, daarna komt er 1 gebruiker en die upload een videotje van 30 seconden. Nu moet deze laatste gebruiker wachten totdat de 20 video's van de vorige gebruiker is voltooid, terwijl het eerlijker zou zijn als er van de ene gebruiker 1 video verwerkt wordt en daarna die van de ander en etc etc etc.. Duidelijker? Maar uit de respons blijkt dat er blijkbaar niemand hier gewerkt heeft aan zo'n systeem Daar ga ik natuurlijk ook niet vanuit maar er zijn genoeg sites die dit soort zaken regelen met 1 job controller oid!? zie iets beter geschetst voorbeeld; Even een grof voorbeeld; gebruiker B die dus zorgt dat andere websites ERG lang moeten wachten voordat ze klaar.
Alles is fictief maar laat zien dat 1 gebruiker dus de queue erg lang in gebruik kan nemen terwijl het eerlijker zou zijn als ik per gebruiker per ronde 1 link uitlees oid?! Mocht iemand leesvoer hebben dan zie ik die graag gepost! [ Bericht 19% gewijzigd door Chandler op 22-05-2013 09:38:03 ] | ||||||
slacker_nl | woensdag 22 mei 2013 @ 09:38 | |||||
Ik zou gewoon queue's maken. Je hebt verschillende q-runners die een zooi links uitlezen. Onafhankelijk vd gebruiker. | ||||||
Chandler | woensdag 22 mei 2013 @ 09:41 | |||||
Kun je dat iets breder uitleggen? q-runners? zal eens googlen! | ||||||
Tijn | woensdag 22 mei 2013 @ 09:49 | |||||
Waarom zou dat eerlijker zijn? Gewoon first in, first out lijkt me juist het toonbeeld van eerlijkheid. | ||||||
slacker_nl | woensdag 22 mei 2013 @ 09:53 | |||||
Je hebt een queue, daarin staan je links (of verwijzingen ernaar), en je hebt een queue runner. Dan pakt je q-runner een zut links, tagged de queue (zodat andere runners niet dezelfde links gaan ophalen), processed een qitem, en sluit spul af. Voordeel is dat je meerdere queue-runners kan hebben, simultaan kan draaien, je hoeft niet te kijken naar de gebruiker, maar je pakt gewoon shit op wat in de queue staat. Is er niks, dan draait de qrunner niet (of heel kort), is er veel, dan pakt ie alles in batches op en doet ie z'n ding. | ||||||
Chandler | woensdag 22 mei 2013 @ 10:38 | |||||
Omdat iemand op zo'n manier kan zorgen dat hij 3 dagen de site voor zch aan het werk heeft en de ander daarna pas zijn job kan doen... en daarvoor wil ik dus een passende oplossing vinden.. Zat zelf te denken aan draaiende processen een time mee te geven en dan steeds een url processen van de langst wachtende oid...? | ||||||
Maringo | woensdag 22 mei 2013 @ 11:52 | |||||
Dus eigenlijk een multidimensionale array zoals dit:
En dan nadat user 1 klaar is met de eerste website wordt ie achteraan gezet en wordt user2 de eerste volgende etc etc. Dan worden de websites in deze volgorde verwerkt: website1a website2a website3a website1b website3b website1c Dat bedoel je toch? | ||||||
-Datdus- | woensdag 22 mei 2013 @ 12:21 | |||||
Node.js |