Pakspul | woensdag 9 november 2011 @ 13:41 | |||||||
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 | ||||||||
Pakspul | woensdag 9 november 2011 @ 13:41 | |||||||
Als je 10 velden maakt met name="veldnaam[]" en deze niet in vult zit hij nog steeds in de array, dus de empty check zit zowel bij de concatenatie als bij de array+loops, dus dan komt het aan op de array vs, concat waar laatste 1 berekening extra nodig is per iteratie om de veldnaam te berekenen. | ||||||||
Scorpie | woensdag 9 november 2011 @ 13:47 | |||||||
Daarbij is het qua leesbaarheid een stuk minder netjes, is het werken in PHP met array`s een native werkwijze en werkt het qua onderhoud ook erg lekker. | ||||||||
Pakspul | woensdag 9 november 2011 @ 13:51 | |||||||
Ben ik het met je eens, maar je zit nog steeds met dat in beide gevallen je 10 velden hebt. Hiervoor kan de persoon met het probleem (naam even kwijt ) beter gaan kijken of hij wat mooie trucks kan uithalen in HTML+JS om zo on-the-fly rijen toe te voegen en dan kan hij perfect met naam[] gaan werken. | ||||||||
remi1986 | woensdag 9 november 2011 @ 13:57 | |||||||
Ben ik het nog niet mee eens, want je kan een rij toevoegen met js, maar wie zegt dat deze is ingevuld? | ||||||||
Pakspul | woensdag 9 november 2011 @ 14:02 | |||||||
Het blijft verstandig om checks uit te blijven voeren, maar het scheelt sowieso een scherm waar de persoon moet opgeven hoeveel velden/rijen hij wil. Dat zal ten goede komen aan de gebruiksvriendelijkheid van de applicatie. Het scheelt je in omslachtige PHP constructies omdat het in JS erg makkelijk geregeld kan worden. En de persoon kan snel nog een regel toevoegen als hij er toch meer dan X wil hebben, anders moet hij terug en weer alles invullen. | ||||||||
remi1986 | woensdag 9 november 2011 @ 14:14 | |||||||
Dat ben ik dan wel weer met je eens met jQuery heel goed te doen trouwens http://charlie.griefer.co(...)dding-form-elements/ Demo: http://charlie.griefer.co(...)dding-form-elements/ of http://sroucheray.org/blog/jquery-dynamic-form/ [ Bericht 10% gewijzigd door remi1986 op 09-11-2011 14:20:04 ] | ||||||||
Darkomen | donderdag 10 november 2011 @ 08:28 | |||||||
Heren, Ik heb een windows 2008 server staan met iis 6.0, helaas heb ik daar weinig ervaring mee en krijg ik erg weinig support en geen keuze voor iets anders. Op dit moment krijg ik wachtwoord fouten als ik een scheduled task wil aanmaken ondanks dat ik een administrator account heb, dat probeer ik met server beheer op te lossen. Ik ben op zoek naar een goed cronjob programma, deze moet gratis zijn.at bleek een demo te zijn, Een tijdje terug had ik Z-cron geïnstalleerd maar dat bleek een demo te zijn. | ||||||||
Pizzalucht | donderdag 10 november 2011 @ 08:32 | |||||||
Ik heb gisteren een enorme database omgezet naar InnoDB, en wat een verschil zeg, alles voelt veel sneller aan. Trouwens de DB config van pastebin gebruikt | ||||||||
Scorpie | donderdag 10 november 2011 @ 08:38 | |||||||
Ik mag hopen dat het niet alleen zo voelt, maar ook zo is en je dat kan meten. | ||||||||
Pizzalucht | donderdag 10 november 2011 @ 08:41 | |||||||
Het gaat om een forum, iedereen zegt dat hij veel sneller is, dus daar hoef ik het niet voor te meten EDIT: en ik heb ook geen metingen gedaan voor het omzetten | ||||||||
Scorpie | donderdag 10 november 2011 @ 08:45 | |||||||
Hm, ik ben blij dat ik niet zo`n instelling op mijn werk laat zien. | ||||||||
Pizzalucht | donderdag 10 november 2011 @ 08:48 | |||||||
Het lijkt wel alsof jij op dit forum zit om op iedereen te zeiken, is het ooit goed volgens jou? Het was een weloverwogen actie, en we hadden veel onderzoek gedaan naar de oorzaak van de traagheid van de database. | ||||||||
Scorpie | donderdag 10 november 2011 @ 08:50 | |||||||
Het is gewoon een les. Als ik onnodig dingen ga vervangen / omzetten / migreren op mijn werk dan word ik (terecht) teruggefloten en moet ik aantonen waarom ik iets doe. Het is een way of thinking; "waarom doe je iets, wat levert het op, en hoe kan het nog beter?" Ze zien me al aan komen met 'zuh zegguh dat het snellur werrukt'. Dus je hebt wel gemeten? | ||||||||
Pizzalucht | donderdag 10 november 2011 @ 08:52 | |||||||
Ik heb gemeten op MyISAM ja, maar die resultaten heb ik niet meer. | ||||||||
Scorpie | donderdag 10 november 2011 @ 08:54 | |||||||
Dan hoef je je toch ook niet aangevallen te voelen? Je hebt een use case waarom je iets gedaan hebt, je hebt het weten te motiveren en vervolgens uitgevoerd. | ||||||||
Pizzalucht | donderdag 10 november 2011 @ 08:57 | |||||||
Ja, maar geen resultaten om te vergelijken. En sorry dan, het is vroeg | ||||||||
Scorpie | donderdag 10 november 2011 @ 09:07 | |||||||
| ||||||||
GlowMouse | donderdag 10 november 2011 @ 11:18 | |||||||
InnoDB is heel vaak de betere keuze. De configuratie moet je dan wel op je data en op je hardware afstemmen, en niet zo van pastebin plukken. | ||||||||
Catbert | donderdag 10 november 2011 @ 12:16 | |||||||
Als je veel updates doet, sure, maar als je vooral veel leest en geen transacties nodig hebt is MyISAM vaak sneller. Dus dat is nogal een broad sweeping statement. Hoe dan ook is het "meten is weten", dat soort dingen test je natuurlijk gewoon. | ||||||||
GlowMouse | donderdag 10 november 2011 @ 12:22 | |||||||
Het verschil is slechts enkele procenten, niet de moeite waard tegenover de voordelen die InnoDB biedt. | ||||||||
Catbert | donderdag 10 november 2011 @ 12:40 | |||||||
InnoDB houdt toch geen rowcounts bij voor tabellen? Of doet 'ie dat wel tegenwoordig? Gebruik al jaren geen MySQL meer... | ||||||||
Thomass | donderdag 10 november 2011 @ 13:15 | |||||||
Met 256mb geheugen zit je helaas aan MyISAM vast. of heb je nog een protip? | ||||||||
GlowMouse | donderdag 10 november 2011 @ 13:40 | |||||||
Je hebt nooit een rowcount nodig. Een rowcount bestaat ook helemaal niet. 256MB geheugen komt nergens voor. InnoDB kan er prima mee werken, maar verwacht net als bij MyISAM geen goede performance als je regelmatig data moet lezen die niet in je geheugen staat. | ||||||||
ursel | donderdag 10 november 2011 @ 13:51 | |||||||
Heb je daar ook mooie tutorials voor qua settings? | ||||||||
GlowMouse | donderdag 10 november 2011 @ 13:57 | |||||||
Er is heel veel leesvoer, maar let vooral op de bufferpoolgrootte, op innodb_flush_log_at_trx_commit =2 (tenzij je een raid controller met bbu hebt, dan 1), innodb_flush_method = O_DIRECT, innodb_file_per_table, en bij een ssd nog wat andere settings. Let ook op dat je minimaal 5.5 gebruikt, en bij voorkeur een Percona-build omdat je daarmee veel meer kunt meten. Al is dat laatste bij 256 MB wellicht niet echt wenselijk omdat al die metrics ook een klein beetje geheugen gebruiken. | ||||||||
Pizzalucht | donderdag 10 november 2011 @ 14:04 | |||||||
Ik heb niet de config van pastebin geplukt, ik heb de config van de eigenaar van pastebin En natuurlijk afgesteld op de beschikbare hardware(die kwam aardig overeen) | ||||||||
Catbert | donderdag 10 november 2011 @ 14:17 | |||||||
MyISAM houdt gewoon bij hoeveel rows er in een table zitten. Een simpele SELECT COUNT(*) FROM table wordt dan uitgevoerd door uberhaupt niet naar de table te kijken maar gewoon die rowcount terug te geven. Natuurlijk een enorm simpele usecase die niet vaak voor zal komen, en ik geloof best dat InnoDB in veel gevallen de beste oplossing is (alleen al om de row-locking), maar ik vind het wat kort door de bocht om te stellen dat dat altijd zo is. | ||||||||
GlowMouse | donderdag 10 november 2011 @ 14:22 | |||||||
je leest niet goed groot verschil | ||||||||
Thomass | donderdag 10 november 2011 @ 14:23 | |||||||
Op mijn vps wel De memoryfootprint van innodb is veel hoger dan die van myisam, vandaar mijn vraag. | ||||||||
GlowMouse | donderdag 10 november 2011 @ 14:29 | |||||||
met geheugentekort kan innodb juist heel goed presteren mbv page-compressie | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 22:15 | |||||||
Ik kom ergens niet uit.
Ik heb een tabel 'buttons' met button_id en id en een tabel 'pagina' met id, title en link. Nu wil ik de buttons laten zien en dan uit de tabel 'pagina' de juiste title en link geven bij het id dat overeenkomt met die in de tabel 'buttons'. Blijf een foutmelding krijgen. Het zit in de Query maar ik snap niet waar. | ||||||||
GlowMouse | donderdag 10 november 2011 @ 22:19 | |||||||
FROM 'pagina' zonder quotes. | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 22:21 | |||||||
Helaas geen verandering. Ik ben echt een ramp met JOIN. | ||||||||
GlowMouse | donderdag 10 november 2011 @ 22:23 | |||||||
wat is 'de foutmelding' dan? | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 22:24 | |||||||
Hij laat mijn if(!$result){ echo "foutmelding" }; zien. Hij kan de query dus niet uitvoeren. | ||||||||
GlowMouse | donderdag 10 november 2011 @ 22:26 | |||||||
zo debug je geen queries | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 22:30 | |||||||
Als ik de query draai in mijn phpMyAdmin werkt het gewoon. | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 22:33 | |||||||
Goedenavond, ik ben boem-dikkie de klapmongool en ik ga kappen voor vanavond. Ik had nog geen database verbinding op de pagina waar de output moest komen. !!!! | ||||||||
Chandler | donderdag 10 november 2011 @ 22:34 | |||||||
en dat kan moderator zijn | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 22:35 | |||||||
Ik moest voor ik moderator werd van B&H en GAM inderdaad eerst een PHP/mySQL toets afnemen en deze met minimaal 95% aan goede antwoorden behalen. | ||||||||
Pakspul | donderdag 10 november 2011 @ 22:37 | |||||||
keer tijd om je db class uit te breiden? Zodat hij dit soort dingen aangeeft. | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 22:52 | |||||||
Dat heeft niet perse zo veel zin want de hele database class stond nog niet op die pagina. | ||||||||
GlowMouse | donderdag 10 november 2011 @ 23:00 | |||||||
zulke dingen doe je ook in je db-class | ||||||||
Light | donderdag 10 november 2011 @ 23:03 | |||||||
Je moet die db class dan ook gebruiken om queries uit te voeren, dan heb je nooit de kans om een query uit te voeren zonder dat de db class geladen is. | ||||||||
boem-dikkie | donderdag 10 november 2011 @ 23:11 | |||||||
Ah duidelijk. Toch maar eens naar kijken. | ||||||||
KomtTijd... | vrijdag 11 november 2011 @ 19:32 | |||||||
(de echte query is wel wat langer maar dit is het enige verschil met een andere query die binnen 0,03 seconden klaar is) -edit- Als ik de TIME_FORMAT eruit haal laat hij geen significante verbetering zien. Als ik de ORDER BY eruit haal wel. Het ligt dus aan het sorteren na een TIMEDIFF, dat kost gewoon tijd. Heeft iemand enig idee hoe ik dat kan verbeteren? Flighttime opslaan in een extra kolom kan natuurlijk, maar misschien is er een makkelijkere optie? [ Bericht 10% gewijzigd door KomtTijd... op 11-11-2011 20:32:28 ] | ||||||||
GlowMouse | zaterdag 12 november 2011 @ 12:53 | |||||||
Dat moet, met een index erop. Je kunt het resultaat ook 1x/dag berekenen en ergens opslaan, zoveel nieuwe records (niet als in db-records maar als in langste vluchten) zullen er niet komen. | ||||||||
KomtTijd... | zaterdag 12 november 2011 @ 18:43 | |||||||
Dan denk ik dat ik liever voor dat eerste gaat. Worden de andere query's waarschijnlijk ook weer een tikkeltje sneller van. | ||||||||
KomtTijd... | zondag 13 november 2011 @ 15:24 | |||||||
Pfft ik ben een hele poos bezig geweest, wel een hoop geleerd over het gebruik van indexen (die index op (firstpilot,secondpilot) had ik veel eerder moeten doen) maar uiteindelijk niet het gewenste resultaat gehaald, de query duurde op zijn minst nog 7 seconden... Uiteindelijk heb ik een andere optimalisatie gedaan: WHERE flighttime > '01:05:00'. Dat limiteert het aantal vluchten gigantisch aangezien we meestal een maximum vluchtduur van 1 uur aanhouden. De "rondje-om-de-kerk" vluchten komen op deze manier dus niet meer in de top 10, maargoed dat is ook niet zo boeiend. | ||||||||
GlowMouse | zondag 13 november 2011 @ 16:00 | |||||||
je kunt ook je query en je tabellen hier posten | ||||||||
KomtTijd... | maandag 14 november 2011 @ 11:32 | |||||||
feusers_properties had ik al eens gepost, deze heb ik een index gegeven op (userid,title):
-edit- een andere query die veel vaker voorkomt is dezelfde, maar dan eindigend op:
[ Bericht 10% gewijzigd door KomtTijd... op 14-11-2011 11:57:07 ] | ||||||||
Catbert | maandag 14 november 2011 @ 11:56 | |||||||
Je berekent on the fly (huhu) waarden waarop je ordent, dat betekent min of meer dat er een volledige tijdelijke tabel opgebouwd moet worden (zou je waarschijnlijk ook zien in een query explain). Oftewel; bereken die flight-time voor en zet er een index op. | ||||||||
KomtTijd... | maandag 14 november 2011 @ 12:00 | |||||||
Dat is juist wat ik gedaan heb. Flighttime is nu een eigen kolom met index, terwijl deze eerst met TIMEDIFF on the fly berekend werd. Het verschil in prestaties is alleen marginaal. Ik heb ook geprobeerd wat het verschil is tussen WHERE YEAR(starttime) = '2011' en WHERE starttime BETWEEN 2011-01-01 AND 2011-12-31, maar dat is ook nihil/onmeetbaar. | ||||||||
Catbert | maandag 14 november 2011 @ 12:03 | |||||||
Doe eens een query explain? Sowieso is een query op 10k records complete peanuts. | ||||||||
KomtTijd... | maandag 14 november 2011 @ 12:20 | |||||||
-edit- voor de scherpe lezers: in de testdatabase stond dus ook nog een index op airplane. Ik heb een index gemaakt op (airplane,starttime,flighttime), dat kan maar dan gebruikt 'ie nog steeds liever de index op flighttime. Dat leek mij ook, daarom is het ook irritant dat het zo traag gaat. [ Bericht 1% gewijzigd door KomtTijd... op 14-11-2011 12:37:58 ] | ||||||||
GlowMouse | maandag 14 november 2011 @ 12:52 | |||||||
Waar is die explain van en kan je dat niet mooier weergeven? >> De tabel flightdb_flights laat zich raden. niet waar, bovendien zijn er meer tabellen >> AND airplane IN ('PH454','PH974','PH1006','PH1210','PH1382','PH1417','PH1433') hoe selectief is dat? | ||||||||
Catbert | maandag 14 november 2011 @ 13:01 | |||||||
Ik snap echt niet waarom MySQL een tijdelijke tabel nodig denkt te hebben hiervoor. Rare query explain trouwens, probeer eens "EXPLAIN EXTENDED"? Ben wel blij dat we hier vooral met MSSQL werken zeg... Nou waarom het zo traag gaat is wel duidelijk. De vraag is waarom hij voor dat execution plan kiest... | ||||||||
KomtTijd... | maandag 14 november 2011 @ 13:15 | |||||||
Ah, ik heb gevonden wat het verschil maakt! De index op (userid,data) in de tabel feusers_properties! Dan valt ook ineens de "Using temporary; Using filesort" weg uit de explain. Ik heb nu WHERE (flighttime > 01:05:00) weer uit de query gehaald, met index duurt de query nu rond de 0,006 seconden, zonder nog steeds 7-8 seconden. Helaas probeer ik dat nu pas zónder die WHERE (flighttime > 01:05:00), waardoor het me nog niet opgevallen was. Ik was gisteren de boel al online aan het zetten (en had dus de benchmarks weggehaald). de explain is van de query exact zoals ik hierboven gepost heb (dus niet die twee varianten). Mooier weergeven zou kunnen maar ik wist/weet amper waar ik naar zit te kijken. Heb exlpain nog niet eerder gebruikt. Wat zou je nog meer willen weten over flightdb_flights? En meer tabellen... Ja die zijn er, maar zitten niet in deze query. Moet ik dan mijn hele database posten? Lijkt me een beetje overdreven...
Niet bepaald, denk dat je dan nog 90% over hebt. | ||||||||
KomtTijd... | maandag 14 november 2011 @ 13:28 | |||||||
Je hebt het hier dus over "using temporary", neem ik aan? Dan weet ik dat ik dat voortaan in de gaten moet houden. | ||||||||
Catbert | maandag 14 november 2011 @ 13:31 | |||||||
Using temporary en using filesort zijn beiden indicaties dat MySQL het niet op de indexen op heeft kunnen lossen en zijn flinke performance hits. Voor de volgende keer: blijf testen met die simpele query een paar posts terug. Je zet ons ook op het verkeerde been door over te stappen op die grote join. | ||||||||
KomtTijd... | maandag 14 november 2011 @ 13:35 | |||||||
Mja om het echt goed uit te zoeken had ik gewoon een testcase moeten maken inderdaad. Zo zie je maar weer, systematisch aanpakken gaat toch altijd weer het snelst. | ||||||||
GlowMouse | maandag 14 november 2011 @ 13:50 | |||||||
SHOW CREATE TABLE laat ook je indices zien. | ||||||||
Darkomen | dinsdag 15 november 2011 @ 09:05 | |||||||
Ik snap er echt geen donder van. ik heb een script dat werk verdeeld, dit script include een rapportage script. Wanneer het werk script word gedraaid schrijft het rapportage script netjes alle informatie weg in een log directory en zend een mail. Savonds word ditzelfde script gestart door een scheduled task op een windows 2008 server.... Maar daar gaat het fout, deze geeft aan dat hij gedraaid heeft maar mn logs worden niet weggeschreven. Start ik de task met de hand dan word alles netjes weggeschreven Nu heb ik een kopie van de task gemaakt en een kopie van het rapportage script. Enkel de log directory heb ik veranderd, deze zend netjes de mail uit en schrijft de logs weg? Enige wat ik nog niet geprobeerd heb ik dezelfde logdir aanhouden, maar dat zou niet uit moeten maken aangezien sochtends alles wel word weg geschreven. Ander leuk feit toen dit nog op een unix machine draaide was er geen enkel probleem. | ||||||||
n8n | dinsdag 15 november 2011 @ 09:23 | |||||||
db: naam, ww encrypted met md5. bij inloggen wordt het wachtwoord omgezet naar md5 voor naar de server gestuurd te worden. cookie met naam en md5-ww staat in cookie om ingelogd te blijven. De vraag is of dit een veilige methode is, heb verder totaal geen ervaring met beveiliging/inloggen met php. voordelen: - ww staat niet open en bloot in cookie. - ww wordt encrypted over het internet verstuurd - bij serverhack staan user-ww'en niet openbaar nadelen: - cookies? | ||||||||
boem-dikkie | dinsdag 15 november 2011 @ 09:25 | |||||||
Je kunt ook gewoon bij het inloggen controleren of de opgegeven username en het wachtwoord overeen komen met een match in de database en met elkaar. Dan hoef je helemaal geen cookies te gebruiken. Weet overigens niet of dit beter is hoor. | ||||||||
mstx | dinsdag 15 november 2011 @ 09:29 | |||||||
MD5 is imo een beetje verouderd, simpele wachtwoorden zijn eenvoudig te achterhalen. Ik zou bijvoorbeeld SHA gebruiken. Om ingelogd te blijven zou ik een random hash in een cookie zetten die je aan de user koppelt. | ||||||||
ursel | dinsdag 15 november 2011 @ 09:38 | |||||||
Vanuit welke user stuur je hem handmatig aan en vanuit welke user via de scheduled task? | ||||||||
Darkomen | dinsdag 15 november 2011 @ 09:40 | |||||||
Zou beide de zelfde user moeten zijn, maar moet ook niet uitmaken, de 2de windows task draait namelijk wel. | ||||||||
Scorpie | dinsdag 15 november 2011 @ 09:40 | |||||||
Rechtenprobleem op de map ivm taak scheduler en account waaronder deze draait. | ||||||||
Darkomen | dinsdag 15 november 2011 @ 09:45 | |||||||
Hoe moet ik dat dan zien? Via het script => http / iis user Windows tasks => de ingelogde user Als ik de rechten check hebben zowel de user als iis dezelfde rechten op de map. | ||||||||
Catbert | dinsdag 15 november 2011 @ 10:04 | |||||||
Je zet ten eerste nooit een PW uberhaupt in een cookie. Je onthoudt de sessie. Daarnaast is MD5 achterhaald. Tenslotte zie ik nergens salts genoemd en ik hoop niet dat je overweegt MD5 passwords unsalted in je DB op te slaan? | ||||||||
n8n | dinsdag 15 november 2011 @ 10:06 | |||||||
Ok duidelijk, dan heb ik weer iets om me over in te lezen. bedankt | ||||||||
n8n | dinsdag 15 november 2011 @ 10:07 | |||||||
dat doe ik ook wel, had alleen geen idee hoe ik een sessie aan kon maken | ||||||||
cablegunmaster | dinsdag 15 november 2011 @ 10:56 | |||||||
| ||||||||
The_Terminator | dinsdag 15 november 2011 @ 10:59 | |||||||
Je moet 'cronjob_aanmaningen.php' zo chmodden dat je rechten hebt om het uit te voeren. | ||||||||
cablegunmaster | dinsdag 15 november 2011 @ 11:00 | |||||||
Done . | ||||||||
GlowMouse | dinsdag 15 november 2011 @ 11:27 | |||||||
executable maken is niet nodig, je moet het door php laten uitvoeren: php /home/frietkot/domains/naam.nl/public_html/includes/cronjobs/cronjob_aanmaningen.php | ||||||||
cablegunmaster | dinsdag 15 november 2011 @ 15:06 | |||||||
Iets in die richting . merkte al dat het script niks van me php snapte . Dankje Hopelijk werkt het nu Ik lees ook iets dat je eerst naar die directory moet browsen in je script is dat nodig of overbodig? Klinkt raar namelijk dacht dat hij het met deze regel uit moest voeren alsof hij daar staat. (2-3 includes staan erbij namelijk ). | ||||||||
cablegunmaster | dinsdag 15 november 2011 @ 17:00 | |||||||
Alleen nog even een mental note voor iemand die dit ook volgt , includes moeten met een fysiek pad van de site komen dus niet een http:// url. maar ook iets in de richting van "/home/frietkot/domains/naam.nl/public_html/includes/cronjobs/cronjob_aanmaningen.php" enige fout waar ik nog mee zat met de includes . | ||||||||
ursel | woensdag 16 november 2011 @ 16:19 | |||||||
Wij zijn langzaam maar zeker onze ontwikkelstraat steeds meer aan het automatiseren en gestructueerder te laten verlopen. Nu vroeg ik me eigenlijk af wat de beste methode is voor het bijhouden welke versie van de software op welke server aanwezig is. Uiteraard kan je dit per server zelf bekijken, maar een overzicht zal het geheel wel vergemakkelijken. Een kleine indicatie van onze omgevingen. We hebben meerdere software pakketten. Elk software pakket kan soms per klant op een eigen server draaien. | ||||||||
Sitethief | donderdag 17 november 2011 @ 08:18 | |||||||
Voor de weergave van tekst gebruik ik
Wordt zonder de juiste encodering. (quotes hier zijn zg. oriented quotes, zie : http://www.typographyforlawyers.com/?page_id=1322 ). Weet iemand welke encodering dit probleem op kan lossen zonder meer problemen te introduceren? | ||||||||
Pakspul | donderdag 17 november 2011 @ 08:31 | |||||||
UFT-8? ... ik lees dus niet goed. Wat gebeurd er als je zonder dat invuld? | ||||||||
Sitethief | donderdag 17 november 2011 @ 08:39 | |||||||
ISO-8859-1 is default in htmlentities, ik gebruik nu ISO-8859-15 vanwege "Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1 (ISO-8859-1). ". Met UTF-8 verdwijnen bijvoorbeeld teksten met een µ volledig. | ||||||||
Sitethief | donderdag 17 november 2011 @ 08:52 | |||||||
Ik zou natuurlijk de tekens die htmlentities niet convert zelf kunnen omzetten naar bijvoorbeeld
| ||||||||
Sitethief | donderdag 17 november 2011 @ 09:03 | |||||||
Dan maar zo.
| ||||||||
GlowMouse | donderdag 17 november 2011 @ 11:03 | |||||||
Stuur je pagina dan ook netjes als UTF-8 door. | ||||||||
Catbert | donderdag 17 november 2011 @ 11:06 | |||||||
Dat, zelf zooi gaan replacen is gewoon dom. | ||||||||
Scorpie | donderdag 17 november 2011 @ 11:15 | |||||||
| ||||||||
Chandler | donderdag 17 november 2011 @ 14:20 | |||||||
Ik heb ook weer wat! Voor een website heb ik een aparte mediabase gebouwd waarin alle media bestanden worden opgeslagen, deze kunnen overal in de website gebruikt worden. Nu roep ik deze media base zo aan. <img src="/mediabase/type/nummer"> zoals je ziet geef ik geen extensie, dat maakt op zich niets uit zolang de headers maar goed staan! Nou volgens mij wel. Met de volgende code zie ik geen afbeelding, haal ik de headers weg dan wel?
| ||||||||
Pizzalucht | donderdag 17 november 2011 @ 14:45 | |||||||
Static files leveren vanuit PHP? Mocht je het dan toch willen doen, dan zou ik zoiets aanraden: http://codeutopia.net/blo(...)d_xsendfile-and-php/ | ||||||||
Catbert | donderdag 17 november 2011 @ 14:57 | |||||||
Je headers spreken elkaar wel tegen trouwens. Je content expired niet maar je mag 't niet cachen. | ||||||||
Chandler | donderdag 17 november 2011 @ 21:04 | |||||||
Ok, maar het zou toch moeten werken? | ||||||||
Pizzalucht | donderdag 17 november 2011 @ 21:27 | |||||||
Weet je zeker dat je nergens output hebt? Ookal is het maar een spatie. | ||||||||
KomtTijd... | donderdag 17 november 2011 @ 21:31 | |||||||
En ja, een enter voor- of na je <?php ?> tags is óók output! | ||||||||
Pizzalucht | donderdag 17 november 2011 @ 21:32 | |||||||
Daar doelde ik (voornamelijk) op ja | ||||||||
Chandler | donderdag 17 november 2011 @ 22:02 | |||||||
Klopt!!! grrrr.. Met ob_end_clean(); heb ik die opgeruimd en de headers werken weer naar behoren! | ||||||||
cablegunmaster | vrijdag 18 november 2011 @ 01:45 | |||||||
Ik hoop voor je dat je niet direct alle bestanden in de DB opslaat. . Het kan maar is niet aan te raden. | ||||||||
Chandler | vrijdag 18 november 2011 @ 08:26 | |||||||
LOL maar natuurlijk niet! daarvoor is een server toch? | ||||||||
GlowMouse | vrijdag 18 november 2011 @ 10:12 | |||||||
je ziet ''readfile' staan? | ||||||||
GSMboy | vrijdag 18 november 2011 @ 21:05 | |||||||
Compilation failed: nothing to repeat at offset 3 | ||||||||
KomtTijd... | vrijdag 18 november 2011 @ 21:10 | |||||||
Wat moet (*+.) matchen? Bedoel je niet (.+) ofzo? | ||||||||
GlowMouse | vrijdag 18 november 2011 @ 21:13 | |||||||
En zoek op greediness. | ||||||||
GSMboy | vrijdag 18 november 2011 @ 21:42 | |||||||
En hoe zou ik dat kunnen implementeren? Zoals ik al zei, ik ben geen held in regexjes. Heb al wel gekeken, maar geen idee van implementatie. Iets meer info mag wel... [ Bericht 38% gewijzigd door GSMboy op 18-11-2011 21:57:08 ] | ||||||||
KomtTijd... | vrijdag 18 november 2011 @ 21:45 | |||||||
In dit specifieke geval? (^[\[\]]+) kortom: match één of meer karakters (+), die niet (^) voorkomt in de lijst tussen [], kortom die niet [ of ] zijn. | ||||||||
cablegunmaster | zaterdag 19 november 2011 @ 05:28 | |||||||
Ik had een IT genoot en die besloot alle mini Avatars op te slaan in de DB in blobs van max 100kb. het leek me een beetje te absurd. en traagmakend. | ||||||||
Light | zaterdag 19 november 2011 @ 09:05 | |||||||
Zijn beide oplossingen toen getest en met elkaar vergeleken? | ||||||||
Light | zaterdag 19 november 2011 @ 09:14 | |||||||
Een ^ aan het begin van een regex betekent iets anders dan een ^ als eerste teken tussen []. Bedoel je misschen
| ||||||||
GlowMouse | zaterdag 19 november 2011 @ 11:46 | |||||||
dat hoeft niet, files van een harddisk kunnen door een webserver veel efficiënter geserveerd worden | ||||||||
KomtTijd... | zaterdag 19 november 2011 @ 11:49 | |||||||
De regex begint al met een /, volgens mij match jij nu níét [ en wél ]. Niet getest overigens. | ||||||||
GlowMouse | zaterdag 19 november 2011 @ 12:32 | |||||||
jullie hebben het allebei fout "/\\[[^\\]]/" ongetest | ||||||||
mschol | zaterdag 19 november 2011 @ 13:20 | |||||||
ik wil 2 tabellen vergelijken, en dan telkens meer kolommen selecteren. dus b.v.: ik selecteer rij 1 in tabel 1 vervolgens kijk ik of ik aan de hand van kolommen 1 en 2 een match kan vinden, lukt dit niet dan doe ik kolom 3 erbij (en daarna kolom 4 erbij) en anders bestaat hij niet in de 2de tabel.. dit kan ik natuurlijk oplossen door een select query uit te voeren, en dan gaan loopen en weer query's uitvoeren dus: (voorbeeldcode, even aangepast)
iemand tips waar ik eventueel naar kan kijken/zoeken? | ||||||||
GlowMouse | zaterdag 19 november 2011 @ 13:34 | |||||||
je database-opzet lijkt me al fout | ||||||||
Arcee | zaterdag 19 november 2011 @ 13:37 | |||||||
Als je op basis van 2 kolommen al geen match hebt zul je dat met een extra kolom al helemaal niet hebben (op basis van AND). Je kunt bij een match wel steeds een kolom toevoegen en kijken of je dan nog steeds een match hebt, maar zoals jij doet is zinloos. Je moet die AND in een OR veranderen, op die manier vergroot je de matchkans (los van of het een zinvolle test is). Dit even over de logica, niet over de efficiency. | ||||||||
mschol | zaterdag 19 november 2011 @ 14:22 | |||||||
mwha. ik wil bestanden indexeren, daar sla ik een aantal properties van op (naam, grootte, checksum, locatie etc) in dat opzicht is het redelijk normaal lijkt mij ik maak eens in de zoveel tijd (zeg eens in de maand b.v.) nog een uitdraai maak en deze in een tijdelijke (2de) tabel zet, vervolgens wil ik de verplaatste, verwijderde, hernoemde bestanden en nieuwe bestanden te weten komen.. De audit functionaliteit van windows kan mij daar niet genoeg in helpen.. (iig niet op de manier hoe ik het wil hebben) helemaal gelijk, het ging dan ook om een voorbeeld code, waar ik niet gelet heb op de logica, (ik hoopte dat het idee van wat ik wilde wel duidelijk was eigenlijk ) het betreft overigens een hobby projectje en hoef dus totaal niet perfect te zijn... [ Bericht 2% gewijzigd door mschol op 19-11-2011 14:57:39 ] | ||||||||
Dalando | zaterdag 19 november 2011 @ 16:49 | |||||||
Heel simpel vraagje eigenlijk. Ik heb een string, en ik wil alle linkjes en plaatjes weghalen. Gewoon compleet weg. Hoe doe ik dat? En alles wat je op Google vind is met eregi, en dat is deprecated. | ||||||||
YazooW | zaterdag 19 november 2011 @ 16:54 | |||||||
Gewoon met str_replace? | ||||||||
Dalando | zaterdag 19 november 2011 @ 16:54 | |||||||
preg_ of str_ ja, maar hoe? | ||||||||
YazooW | zaterdag 19 november 2011 @ 16:57 | |||||||
De replace value gewoon leeg laten lijkt mij. | ||||||||
Dalando | zaterdag 19 november 2011 @ 16:58 | |||||||
No shit. En nu nog de reguliere expressie . Ik kwam op dit:
Maar hier kan nogsteeds iets doorheen komen. | ||||||||
GlowMouse | zaterdag 19 november 2011 @ 17:17 | |||||||
is het html? Strip_tags is wel handig. | ||||||||
Dalando | zaterdag 19 november 2011 @ 19:49 | |||||||
Dat is precies wat ik zoek. Nooit van die functie gehoord Bedankt GM | ||||||||
Dalando | zaterdag 19 november 2011 @ 19:58 | |||||||
Eigenlijk niet helemaal wat ik zoek, ik wil ook nog de HTML die er in zit nog verwijderen.. | ||||||||
Pizzalucht | zaterdag 19 november 2011 @ 21:41 | |||||||
Doet hij ook toch? | ||||||||
Light | zaterdag 19 november 2011 @ 23:16 | |||||||
Met strip_tags() maak je van
| ||||||||
GlowMouse | zaterdag 19 november 2011 @ 23:32 | |||||||
En dan krijg op een dag xhtml-input. Als hij dat wil, kun je beter een domtree parser gebruiken. | ||||||||
Light | zondag 20 november 2011 @ 00:10 | |||||||
DOMDocument moet goed genoeg zijn. Die heeft gewoon een getElementsByTagName method. | ||||||||
Dalando | zondag 20 november 2011 @ 14:15 | |||||||
Maar hoe gebruik ik die? | ||||||||
YazooW | maandag 21 november 2011 @ 16:14 | |||||||
Bij het importeren van een gezipt .sql file in phpmyadmin krijg ik na een tijdje de volgende melding: De maximale uitvoertijd is verstreken, indien u de import wil afmaken kunt u het bestand opnieuw invoeren. Dit slaat denk ik dan op de max_execution_time in de php.ini, alleen staat die bij mij ingesteld op 999999999999... Iemand suggesties? | ||||||||
GlowMouse | maandag 21 november 2011 @ 16:18 | |||||||
importeer via de command line | ||||||||
YazooW | maandag 21 november 2011 @ 16:48 | |||||||
En hoe doe ik dat dan? Heb daar totaal geen ervaring mee. Ik run mijn MySQL/PHP trouwens via Xampp. | ||||||||
remi1986 | maandag 21 november 2011 @ 16:49 | |||||||
Je kan ook bigdump gebruiken http://www.ozerov.de/bigdump/ | ||||||||
KomtTijd... | maandag 21 november 2011 @ 16:50 | |||||||
Of gewoon het vinkje aanzetten bij "Sta het onderbreken van de import toe wanneer het script herkent dat de tijdslimiet nadert." | ||||||||
YazooW | maandag 21 november 2011 @ 16:52 | |||||||
Alle keren dat ik het heb geprobeerd stond die optie aangevinkt. Ben het nu aan het proberen met die "bigdump" die hierboven gepost is. | ||||||||
YazooW | maandag 21 november 2011 @ 17:00 | |||||||
Wazig, bij Phpmyadmin kreeg ik dus elke keer na zo'n 5 minuten die time-out, in die 5 minuten had hij zo'n 90.000 regels geschreven. Die Bigdump knalt op zijn beurt 822.000 regels weg in 3 minuten. Het is dus gelukt nu | ||||||||
remi1986 | dinsdag 22 november 2011 @ 09:19 | |||||||
phpMyAdmin is sowieso voor dit soort dingen niet echt super. Gebruik voor de servers hier altijd de Linux console om dumps te maken en te importeren. Maar mooi dat het is gelukt! | ||||||||
Pakspul | dinsdag 22 november 2011 @ 09:27 | |||||||
Dat of een echt DB programma die niet vastloopt op een timeout, maar gewoon zijn werk doet en aangeeft hoelang het gaat duren als het aardig wat records zijn | ||||||||
GlowMouse | dinsdag 22 november 2011 @ 11:03 | |||||||
Dat laatste kan soberzo niet. | ||||||||
remi1986 | dinsdag 22 november 2011 @ 11:04 | |||||||
En met de Linux terminal gaat het sowieso supersnel dat het vaak niet eens nodig is | ||||||||
wobbel | dinsdag 22 november 2011 @ 22:44 | |||||||
Kan het volgende met PHP/MySQL in één enkele query? tabelA: idA idUser idAuteur titel tabelB: IdUser naam Nu kan ik met een innerjoin heel gemakkelijk de naam erbij zoeken van idUser, maar is het ook mogelijk om idAuteur ook meteen op te zoeken in tabelB? Ik wil van IdUser en IdAuteur allebei de naam krijgen uit tabel B | ||||||||
GlowMouse | dinsdag 22 november 2011 @ 22:45 | |||||||
Dat kan, dan moet je 2x joinen en een alias gebruiken voor tabel B en voor naam uit tabel B. | ||||||||
KomtTijd... | dinsdag 22 november 2011 @ 23:38 | |||||||
Dat lijkt wel verrot veel op wat ik de laatste tijd mee bezig ben geweest! Voorbeeldje van wat glowmouse bedoelt:
| ||||||||
GlowMouse | dinsdag 22 november 2011 @ 23:39 | |||||||
| ||||||||
Dalando | zaterdag 26 november 2011 @ 20:06 | |||||||
GM, als ik vragen mag, hoe ziet de opzet van het FOK!forum eruit? En dan niet de database kant, maar de opzet kwa auto-updates. Hoe zit dat in elkaar? | ||||||||
GlowMouse | zaterdag 26 november 2011 @ 20:09 | |||||||
Momenteel loopt dat via php, maar er zijn experimenten met node.js. | ||||||||
wobbel | zondag 27 november 2011 @ 11:19 | |||||||
Tsenk joe for joellie help!! | ||||||||
Dalando | zondag 27 november 2011 @ 15:25 | |||||||
Ja scriptingtaal kon ik zelf wel uitvogelen Maar hoe, dat je niet het hele topic laad maar alleen de nieuwe posts enzo, hoe gebeurd dat? | ||||||||
RPG | zondag 27 november 2011 @ 15:32 | |||||||
Wat zou de makkelijkste oplossing zijn om dit te doen: Hieruit: <field name="willekeurige name" value="willekeurige value"/> Wil ik eigenlijk de waardes "willekeurige name" en "willekeurige value" los krijgen. In het document staat nog veel meer tekst. Ik wil dus eigenlijk dat als hij de regel tegenkomt met <field name..../> dat hij die 2 strings eruit kan halen en in een variable wegschrijft. Zouden jullie mij kunnen vertellen welke richting ik op zou moeten zoeken want volgens mij is het veel simpeler te doen dan ik het probeer te doen. | ||||||||
Dalando | zondag 27 november 2011 @ 15:33 | |||||||
Dus je hebt een html pagina waar je bepaalde elementen vanaf wilt krijgen? | ||||||||
RPG | zondag 27 november 2011 @ 15:39 | |||||||
Het is eigenlijk een xml waar die data vandaan komt. Via php pas ik de xml aan zodat ze aan een bepaalde standaard voldoen zodat ze makkelijk in te lezen zijn. Nu is er een partij die velden aanlevert als: <field name="willekeurige name" value="willekeurige value"/> inplaats van <field name="willekeurige name">willekeurige value</field> Dus vandaar dat ik die 2 veldnamen wil hebben zodat ik het wel kloppend kan maken. (makkelijkste zou zijn als leverancier het aan zou passen maar dat is niet mogelijk) Misschien doe ik gewoon heel moeilijk nu en is er zelfs nog betere oplossing | ||||||||
Cue_ | dinsdag 29 november 2011 @ 10:30 | |||||||
Even een array vraagje Ik heb een array met de gegevens ($data)
Nu moet ik een grafiek vullen, alleen is het mogelijk dat in bovenstaande een bepaalde dag niet voorkomt.. bv de 25e. maar die moet hij natuurlijk wel tonen in de grafiek. Ik heb daarvoor een nieuwe array $xas en $yas. De $xas wordt gevuld met alle dagen van de selectie, dus ook de ontbrekende datums. (momenteel nog in array ($datums) Nu wil ik dat ik per $datums gaan kijken of de key exists in $data en als deze bestaat wil ik de betreffende waarde hebben die er bij staat. en anders moet de waarde 0 worden. Nu weet ik alleen niet hoe ik dat in code eruit krijg om die betreffende waarde te krijgen. Jullie tips? | ||||||||
mstx | dinsdag 29 november 2011 @ 10:38 | |||||||
| ||||||||
Cue_ | dinsdag 29 november 2011 @ 10:49 | |||||||
idd Dit er van gemaakt uiteindelijk:
| ||||||||
The_Terminator | dinsdag 29 november 2011 @ 11:37 | |||||||
Ik zou het zo doen:
| ||||||||
Cue_ | dinsdag 29 november 2011 @ 12:15 | |||||||
Even een totaal ander vraagje: een vriend van mij wil graag een website maken, iets in de trant van linkje voorbeeld Nu natuurlijk is dit altijd wel te maken met bv php. Maar zijn er ook gratis pakketten waar je zoiets mee kan maken (dreamweaver of weet ik veel wat)? Want daar ben ik totaal niet in thuis en ben benieuwd of jullie er tips voor hebben. | ||||||||
Scorpie | dinsdag 29 november 2011 @ 12:16 | |||||||
Dreamweaver is een ontwikkeltool en geen pakket. En voor zo`n foto gallery kan je kijken naar coppermine. | ||||||||
Cue_ | dinsdag 29 november 2011 @ 12:23 | |||||||
Doel ook meer op ontwikkeltools. Want het liefst zou ie het zelf maken (evt met hulp van mij). | ||||||||
RPG | dinsdag 29 november 2011 @ 12:50 | |||||||
Iemand die me op weg kan helpen? | ||||||||
remi1986 | dinsdag 29 november 2011 @ 12:55 | |||||||
snap het probleem niet? voor de naam lees je het attribuut "name" uit. Dan kan je dat toch ook doen voor value? Gebruik je SimpleXML? | ||||||||
RPG | dinsdag 29 november 2011 @ 14:29 | |||||||
Op dit moment gebeurt het volgende: Er is een xml file die door andere partij aangeleverd wordt. Omdat bestand soms 10mb is en soms 100+mb maak ik er kleine xml files van. Hier lees ik ze dus niet als xml maar gewoon als plain tekst en maak er kleinere xml files van die voldoen aan de standaard inleesmethode. En in deze stap wil ik dus die tekst eruit filteren, aanpassen en in de kleinere xml op juiste manier wegschrijven. Vandaar dat ik wil weten hoe ik beide velden er uit kan halen. Ik denk zelf met een regexp maar voor ik dat helemaal ga bestuderen hoopte ik dat jullie misshien een methode wisten zodat ik niet blind aan het zoeken ben. | ||||||||
YazooW | dinsdag 29 november 2011 @ 20:56 | |||||||
Door middel van deze code maak ik 800 divjes, alle divjes zijn 1px bij 1px groot. Het eerste divje begint bij top:0 en left:0. Elk nieuw divje wat gemaakt wordt staat 1px verder naar rechts dan de vorige div. Als resultaat krijg ik dus een zwarte streep van 800px breed helemaal bovenaan mijn scherm. Wat ik nu wil is dat ik ook nog van boven naar beneden 600 lijnen aanmaak van 800divs(px's) groot. Als eindresultaat wil ik dus 800x600 pixels hebben, elke pixel wordt aangestuurd door zijn eigen divje. De oplossing van dit moet niet al te ingewikkeld zijn lijkt mij, maar toch kom ik er zelf niet uit Verder nog een klein vraagje over de variabelen die ik in de div plaats. Het lukt mij namelijk niet om bijvoorbeeld $var precies voor px te plaatsen, zet ik ze uit elkaar dan kom er dus een spatie in de broncode waardoor de divjes niet goed weergeven worden, zet ik ze aan elkaar dan wordt px aan het einde van de variabele geplakt zeg maar. Dit heb ik nu tijdelijk opgelost door het volgende te doen: $pix$var, waarbij de waarde van $var "px" is, how to fix this? | ||||||||
U.N.K.L.E. | dinsdag 29 november 2011 @ 20:59 | |||||||
Dan maak je dus nog een while loop over de huidige 800x loop. De nieuwe loop runt 600x. De enige actie die de 600x loop uitvoert is de reeds bestaande loop, en een break na de laatste div. | ||||||||
GlowMouse | dinsdag 29 november 2011 @ 21:00 | |||||||
of beter, een for-loop
| ||||||||
U.N.K.L.E. | dinsdag 29 november 2011 @ 21:00 | |||||||
Liever nog een for loop idd. Maar dan met de eerste uiteraard <600 (zal typfoutje zijn) | ||||||||
YazooW | dinsdag 29 november 2011 @ 21:08 | |||||||
Thanks, het is gelukt! Lijkt nu trouwens wel een beetje op een slideIn van jQuery hoe mijn browser nu die divjes opbouwt
Nu zit ik alleen nog met het gedeelte van die variabelen in de div. Even een voorbeeld hoe ik de top invul:
| ||||||||
U.N.K.L.E. | dinsdag 29 november 2011 @ 21:12 | |||||||
Waarom hoog je de top steeds op? Die hoort toch constant te zijn, aangezien het een rij betreft? | ||||||||
YazooW | dinsdag 29 november 2011 @ 21:14 | |||||||
Ik heb eerlijk gezegd geen idee, ben al blij dat ik het nu werkend heb gekregen. Nadat er elke keer 800 divjes van links naar rechts geschreven zijn moet de top met 1 verhoogd worden zodat er aan de volgende lijn met divjes begonnen kan worden. | ||||||||
U.N.K.L.E. | dinsdag 29 november 2011 @ 21:15 | |||||||
Maar dat is niet wat nu gebeurd. Bij elk nieuw divje wordt de top 1px groter. En dat is niet de bedoeling natuurlijk De top is constant voor 1 hele rij. Daarna kan hij veranderen. | ||||||||
U.N.K.L.E. | dinsdag 29 november 2011 @ 21:15 | |||||||
De $j wordt steeds verhoogt (tot hij 800 bereikt). Je top loopt dus op van 0 tot 800px. Dat kan nooit de bedoeling zijn. | ||||||||
U.N.K.L.E. | dinsdag 29 november 2011 @ 21:16 | |||||||
[div style="top:0px"] .. [div style="top:800px"] krijg e je nu | ||||||||
YazooW | dinsdag 29 november 2011 @ 21:22 | |||||||
$i en $j bij top en left omgedraaid. | ||||||||
U.N.K.L.E. | dinsdag 29 november 2011 @ 21:24 | |||||||
Een div komt al automatisch naast elkaar te staan. geef gewoon als style steeds op: "float:left;" En bij de eerste als extra: "clear:left" Dan hoef je verder niet met pixels te werken. | ||||||||
YazooW | dinsdag 29 november 2011 @ 21:25 | |||||||
Ik wil juist met pixels werken omdat ik alle pixels individueel wil gaan aansturen. | ||||||||
ralfie | dinsdag 29 november 2011 @ 21:26 | |||||||
Geen idee wat je opzet wordt (een gigantische hoeveelheid data in ieder geval), maar kun je afhankelijk van je data niet beter een html5 canvas gebruiken met javascript? | ||||||||
YazooW | dinsdag 29 november 2011 @ 21:28 | |||||||
Dit is het uiteindelijke doel: http://www.flickr.com/photos/walkingsf/sets/72157627140310742/ Elke pixel representeert een bepaald gebied (gps coordinaten), aan de hand van het aantal foto's per gebied op bijvoorbeeld flickr wordt de kleur van de pixel bepaald. | ||||||||
YazooW | dinsdag 29 november 2011 @ 21:34 | |||||||
Reden waarom ik dit maak is trouwens puur en alleen om te oefenen hoe API's in elkaar zitten; wat de mogelijkheden zijn, hoe snel het is, etc etc. | ||||||||
Laser. | woensdag 30 november 2011 @ 12:22 | |||||||
Hoe kan ik met preg_match checken of een veld: 1) Alleen letters en punten bevat 2) Alleen letters en spaties Ik kom er maar niet uit. | ||||||||
GlowMouse | woensdag 30 november 2011 @ 12:31 | |||||||
wat heb je al? | ||||||||
Laser. | woensdag 30 november 2011 @ 12:35 | |||||||
Momenteel dit:
Ik heb dus een check nodig voor initialen, dat hij alleen letters en punten accepteerd. En de ander is voor letters en spaties. De bovenstaande accepteert geen spaties. EDIT: volgens mij werkt deze al voor de initialen:
[ Bericht 35% gewijzigd door Laser. op 30-11-2011 12:41:01 ] | ||||||||
GlowMouse | woensdag 30 november 2011 @ 12:42 | |||||||
\PL zijn letters. Je moet nog zorgen dat hij iets zonder letters niet matcht, want nu matcht hij met de letters die erin voorkomen, ook als er verder rare tekens in staan. Daarvoor moet je je regexp beginnen met ^ en eindigen met $. | ||||||||
McCandless | woensdag 30 november 2011 @ 17:12 | |||||||
Ik heb even een vraag voor de experts. We hebben op dit moment een webshop met een front- en backoffice dat volledig door één bedrijf zelf ontwikkeld is en volledig voor ons op maat. Nu willen we over naar een OS zoals Magento. De vraag is nu welke info hebben (Magento) programmeurs in ieder geval nodig voor ze een uitspraak kunnen doen hoeveel werk er in gaat zitten om onze huidige webshop na te bouwen? | ||||||||
GlowMouse | woensdag 30 november 2011 @ 17:13 | |||||||
Je database lay-out. | ||||||||
McCandless | woensdag 30 november 2011 @ 17:16 | |||||||
Ja, dat is een vrij geavanceerd Excel-bestand. Alle functionaliteiten die daarin zitten en die door de site uitgelezen worden moeten we dus gaan benoemen? | ||||||||
GlowMouse | woensdag 30 november 2011 @ 17:22 | |||||||
Al je data staat in Excel? | ||||||||
GlowMouse | woensdag 30 november 2011 @ 17:24 | |||||||
Eigenlijk gaat het om drie dingen: - hoe ziet je webshop eruit (kunnen ze zo zien door erop te surfen) - hoe wil je gegevens invoeren (dat moet je zelf beschrijven, misschien via een exportbestand van een ander systeem van jullie) - wil je huidige data overzetten (hiervoor is dat Excel-bestand belangrijk) | ||||||||
Pizzalucht | woensdag 30 november 2011 @ 17:26 | |||||||
Een Excel bestand gebruiken als database voor je webshop? | ||||||||
Diabox | woensdag 30 november 2011 @ 17:31 | |||||||
Ik heb momenteel 3 webshops met Magento afgeleverd, en des te meer ik met Magento werk, des te meer begin ik het te haten. Beroerde documentatie en een vrij 'slechte' gebruikerscommunity, zitten er wel tussen met verstand hoor, maar de meeste tutorials en posts met 'oplossingen' die je voorbij ziet komen zijn meestal van die hacks en vage trucjes om iets voor elkaar te krijgen. En dan nog het geneuk dat 'n miljard dingen die wel werkte in voorgaande versies, niet meer werken in de nieuwste Magento versie. Ook moet je voor sommige basis functionaliteit die je als developer gewoon in de admin interface verwacht in de files zelf knoeien (denk hierbij aan producten op nieuwste eerst sorteren, of het uitschakelen van 'Add to wishlist', terwijl je 'Add to compare' bijv. wel weer kan uitschakelen via de admin interface). Maar goed dat is allemaal niet jouw probleem hehe. Wat wel jouw probleem is, is dat het gigantisch uitgebreid is, en als je 'n leek bent dat je 'verdwaald' kan raken in de admin, als je geen computer leek bent is het wel easy uiteraard. Verder zorgen voor goeie hosting, Magento is erg resource intensief en op normale shared hosting rete traag. Zelf ben ik te spreken over de Magento hosting die skyberate.net biedt. Voor 'n developer gewoon je huidige webshop laten zien en je eisen geven qua functionaliteit. | ||||||||
McCandless | woensdag 30 november 2011 @ 17:33 | |||||||
Tja, we werkten al met een Excel-bestand toen ik hier kwam werken. We werken met meer dan 20 leveranciers die hun producten-informatie ook in Excel aanleveren. Helaas is hier niet de kennis om dat gemakkelijk en snel om te zetten in een database. Dat Excel-bestand wordt geëxporteerd naar csv, waarna we dat uploaden. Misschien is het dus wel eerst zaak voor ons om dit eerst te wijzigen? Wat zijn de voordelen en hoe geef ik input aan zo'n database (automatisch koppelen met de productinformatie van de leveranciers zal niet mogelijk zijn?), want ik ben hier eerlijk gezegd totaal onbekend mee. . | ||||||||
Diabox | donderdag 1 december 2011 @ 03:04 | |||||||
Hoe krijg ik de dagen van een specifieke week uit 'n jaar? Ik heb momenteel:
[ Bericht 0% gewijzigd door Diabox op 01-12-2011 03:18:18 ] | ||||||||
Light | donderdag 1 december 2011 @ 07:44 | |||||||
Waarschijnlijk is niet duidelijk welke string er precies in strtotime wordt gebruikt, of de string is niet eenduidig om te zetten naar een timestamp.
| ||||||||
The_Terminator | donderdag 1 december 2011 @ 10:20 | |||||||
Wat gebeurd er met het CSV bestand nadat het is geupload? Ik werk zelf ook veel met CSV bestanden uit verschillende bronnen, ik importeer de data die daarin staat naar een database dmv de standaard CSV functies die PHP biedt, zie http://php.net/manual/en/function.fgetcsv.php voor voorbeelden. Mocht je momenteel werken met een 'flat-file' dan heeft een database erg veel voordelen tov eerdergenoemde. Een database is sneller en stukken makkelijker te onderhouden. Het lijkt mij inderdaad handig om dat eerst te wijzigen. En waarom zou dat koppelen niet mogelijk zijn? Je werkt immers met dezelfde data als je het in een DB zet. | ||||||||
Diabox | donderdag 1 december 2011 @ 14:15 | |||||||
Kan idd bij het weergeven ook nog wel. Heb nu die van jou in gebruik genomen, met year en week nummer op respectievelijk 2011 en 1 en krijg:
| ||||||||
Laser. | donderdag 1 december 2011 @ 16:51 | |||||||
-edit- opgelost! [ Bericht 99% gewijzigd door Laser. op 01-12-2011 17:26:55 ] | ||||||||
Luchtkoker | donderdag 1 december 2011 @ 20:54 | |||||||
$week_number moet met een 0 beginnen indien hij <2 digits is. bij week 01 werkt het dus gewoon, of week 10. etc. | ||||||||
Diabox | donderdag 1 december 2011 @ 21:06 | |||||||
Thanks, voeg nu 'n 0 toe als <2 digits. Was me niet opgevallen dat ie het wel deed bij weken bestaande uit 2 digits | ||||||||
Light | vrijdag 2 december 2011 @ 00:36 | |||||||
Gewoon W%d vervangen door W%02d is dan de makkelijkste oplossing. | ||||||||
Diabox | vrijdag 2 december 2011 @ 05:07 | |||||||
| ||||||||
cablegunmaster | vrijdag 2 december 2011 @ 17:52 | |||||||
Je kan een excel bestand makkelijk gebruiken om een CSV te maken en deze in je DB te stoppen . Je kan het als basis gebruiken daarvanuit normaliseren. (velden en tabellen op een goede manier organiseren ). Vervolgens kun je hieruit weer een DB maken en zoals eerder werd gezegt een Excel bestand is een soort van DB en kan als DB gebruikt worden. Of dit nou zo optimaal is is een ander verhaal. maar volgens mij post ik dubbel op -_-;; , teveel warme lucht van de douche. Zelfde idee, hiero zelfs al ben je wat verder met magento heb je een te beroerde documentatie. niet iets simpels als de Java documentatie die heel mooi voor elke variabele aangeeft van hoe en wat je ermee kan. Zonde van magento imho. Voor de rest. Om die reden moest ik een eigen soort van CMS maken. Deze is in ontwikkeling en is gebasseerd zoveel mogelijk op jquery css en mogelijk binnen kort object oriented. Al zit ik wel met de vraag hoe ik dat aan moet pakken. Een DB klasse snap ik nog wel. maar om voor elke klasse een apart Object aan te maken. zit ik nog een beetje in het gewisse. Laat ik het zo zeggen; Ik snap hoe ik functies moet maken en net hoe ik een DB klasse moet aanroepen aanmaken. maar om er zelf 1 in elkaar te zetten ben ik een beetje in het gewisse.
Is het niet meer dan dit of mis ik nog iets ? (eerste keer dat ik in classes ga werken ). bvb kan ik die global $db in de klasse zetten? en dat alle functies er gebruik van kunnen maken. [ Bericht 15% gewijzigd door cablegunmaster op 02-12-2011 18:00:13 ] | ||||||||
Diabox | vrijdag 2 december 2011 @ 18:32 | |||||||
Ik zou je klant klasse letterlijk als 'n klant zien, en wat je ermee wilt kunnen doen. Je wilt bijv. op kunnen vragen wat z'n naam is, z'n adres, z'n bestellingsgeschiedenis, etc. Het invoegen en verwijderen van klanten zou ik niet binnen de klant klasse definieren. Je wilt tenslotte 'n klant object aanmaken, het managen zou ik in een andere klasse doen. Maar letterlijk 'kenmerken' van 'n klant dus daar in stoppen. Overigens misschien 'n idee om het niet in het NederEngels te doen (insertKlant ), maar gewoon volledig Engels. En schrijf vanaf het begin af aan gewoon goede documentatie bij je code. | ||||||||
cablegunmaster | zaterdag 3 december 2011 @ 13:14 | |||||||
ok ik zal het eens anders proberen te verwoorden: Ik heb nu heel veel functies gemaakt in php. en ik wou ze onder klasses categoriseren zodat ze makkelijker vindbaar waren of makkelijker bruikbaar. Nu was de vraag als ik alle functies bijvoorbeeld in klasses stop. zou dit beter helpen of hoe zou ik dit moeten doen. en kan ik session variabele vullen met objecten? [ Bericht 15% gewijzigd door cablegunmaster op 03-12-2011 13:34:10 ] | ||||||||
Light | zaterdag 3 december 2011 @ 16:23 | |||||||
Een class is (als het goed is) meer dan een verzameling bijeengeraapte functies. Het is een abstractie van een ding uit de echte wereld, en je wilt dan ook de relevante eigenschappen meenemen. Zo heeft een klant een naam en een adres. En vast nog meer dingen (het totaal uitgegeven bedrag bijvoorbeeld.) Maar misschien wil je een klant wel modelleren als een persoon met wat extra gegevens.
En ja, je kunt objecten in een sessie opslaan. Dan moet je ze serializen. | ||||||||
_superboer_ | dinsdag 6 december 2011 @ 13:05 | |||||||
Ik ben bezig met het laten zien van een kaart op een dynamische pagina van een restaurant. (zie bijv: http://www.japansesushi.nl/restaurants/kimono). Iemand een idee waarom lat en long hier geen waarde krijgen, waardoor de kaart dus niet zichtbaar is?
Ik echo nu ook $httpadres, dat blijkt gewoon een correcte link te zijn. edit: gister werkte de code nog wel | ||||||||
mstx | dinsdag 6 december 2011 @ 13:15 | |||||||
Teveel requests gedaan? | ||||||||
_superboer_ | dinsdag 6 december 2011 @ 13:18 | |||||||
Hoe worden requests geteld? Gaat het om dan om het aantal requests vanaf de domein japansesushi.nl of vanaf mijn ip-adres? | ||||||||
mstx | dinsdag 6 december 2011 @ 13:21 | |||||||
https://code.google.com/i(...)on/geocoding/#Limits Ik neem aan dat hij het aantal requests per IP telt. Als je fiile_get_contents doet stuurt hij volgens mij sowieso geen domeinnaam mee dus die kan google niet achterhalen. | ||||||||
_superboer_ | dinsdag 6 december 2011 @ 13:22 | |||||||
Als ik vanaf een ander device probeer werkt het ook niet, terwijl als ik zelf in m'n browser naar de api-url surf ik wel iets terug krijg. | ||||||||
GlowMouse | dinsdag 6 december 2011 @ 15:26 | |||||||
Wie doet de request bij Google? | ||||||||
Pizzalucht | dinsdag 6 december 2011 @ 15:42 | |||||||
Hij(met php op de server) doet de requests, met file_get_contents. Ik zou even iets van caching doen op het resultaat | ||||||||
ViPeRII | dinsdag 6 december 2011 @ 20:06 | |||||||
Hi, Mijn query geeft een probleem, alleen kan ik door de bomen het bos even niet zien, en ik hoop dat jullie mij kunnen helpen. Ik krijg de foutmelding: 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 '' at line 32 Dat gebeurd (vermoedelijk) bij de volgende query:
) VALUES '.implode(',', $sql)) or die (mysql_errno() . ": ". mysql_error()); En die kan deze fout volgens mij niet echt opleveren. De inhoud van $sql wordt als volgt gevuld:
En de database is opgebouwd met de volgende gegevens:
Kan het zijn dat ik een type invoer wat niet overeenkomt met het soort veld? En zo ja, hoe achterhaal ik dan welke veld dat dit is? Ik heb her en der al wat gelezen over deze error, en ik zie ook dat ik "DEFAULT CHARSET=latin1" zou kunnen weghalen, wat misschien het probleem oplost, maar mijn inziens staat dat er niet voor niets, en wil ik ook graag weten wat de impact hiervan in. Ook zie ik wat staan over de reserved words van mysql maar dan zie ik het over het hoofd, want die heb ik volgens mij niet gebruikt. | ||||||||
GlowMouse | dinsdag 6 december 2011 @ 20:46 | |||||||
verander mysql_query in echo en kijk wat eruit komt let ook op je datatypes, text om een datum op te slaan is raar | ||||||||
ViPeRII | dinsdag 6 december 2011 @ 20:54 | |||||||
Zit wat in, zou ook een varchar moeten zijn eigenlijk. De datums zijn qua inhoud echter niet gelijk, en er wordt wat mee gerekend, en dit doe ik voor dat de gegevens weer geexporteerd worden naar bv excel, vandaar dat de datum er als datum en als stamp in staan, en dat had inderdaad anders kunnen zijn als een text veld.. Als ik m echo komt er niets te staan, dat helpt me helaas ook niet... | ||||||||
GlowMouse | dinsdag 6 december 2011 @ 20:55 | |||||||
MySQL heeft ook een datumtype. | ||||||||
ViPeRII | dinsdag 6 december 2011 @ 21:15 | |||||||
Die gebruik ik ook | ||||||||
Teeno | woensdag 7 december 2011 @ 01:33 | |||||||
--edit opgelost so far [ Bericht 48% gewijzigd door Teeno op 07-12-2011 01:53:37 ] | ||||||||
Light | woensdag 7 december 2011 @ 07:34 | |||||||
Daar is anders niets van te zien in het create-statement van toll_free_cross_corporation. | ||||||||
Teeno | woensdag 7 december 2011 @ 14:00 | |||||||
Ik vraag het toch hier maar even.. Sinds gisteren wat met OpenCart gaan stoeien, en besloten om even een lokale kopie te trekken van de files en database. de shop zelf werkt gewoon, alleen kom ik niet in de admin. db.php
Error: Could not find database file system/database/mysql.php! Dat terwijl dezelfde db.php ook via de normale index wordt aangeroepen en hier wel alles werkt? Dus in een notendop bron admin/index.php kan database file niet vinden. bron index.php werkt wel. De admin dir heeft een eigen config.php, maar deze is identiek aan die van de root dir. | ||||||||
GlowMouse | woensdag 7 december 2011 @ 14:06 | |||||||
Zoek op cwd of stel een absoluut pad in. | ||||||||
Teeno | woensdag 7 december 2011 @ 14:14 | |||||||
Het moet em ergens in de includes zitten, want als ik het volgende aanpas
Notice: Error: Could not load language dutch! in I:\Webserver\root\OpenCart\system\library\language.php on line 26 Warning: fopen(system/logs/error.txt) [function.fopen]: failed to open stream: No such file or directory in I:\Webserver\root\OpenCart\system\library\log.php on line 12 Stukje uit config.php
Het setten van de INCLUDE_PATH in index.php gebeurt na de require_once('config.php');
Wat zie ik over het hoofd | ||||||||
GlowMouse | woensdag 7 december 2011 @ 14:28 | |||||||
Ook de map voor je language file absoluut instellen dan maar. Of stel DIR_SYSTEM absoluut in. | ||||||||
Teeno | woensdag 7 december 2011 @ 14:31 | |||||||
Die zag ik aankomen idd en had ik al gedaan, zit nu weer met een nieuwe error dus ga weer even debuggen Voor het gemak toch maar een verse install uitgevoerd, ging iets minder tijd in zitten [ Bericht 12% gewijzigd door Teeno op 07-12-2011 14:40:08 ] | ||||||||
cablegunmaster | woensdag 7 december 2011 @ 15:37 | |||||||
URL: /producten/303/45/ Resultaat: index.php?page=producten&gid=303&product=45 RewriteRule ^/?producten/(.*)/?(.*)/$ /index\.php?page=producten&gid=$1&product=$2 [L] Alleen klopt dit niet, en ik zie niet wat. ik heb geprobeerd met een regex pattern checker: Te kijken of de regex overeen kwam met de url: http://regexpal.com/ maar hij wil de URL niet in Resultaat veranderen. | ||||||||
mstx | woensdag 7 december 2011 @ 15:40 | |||||||
Verander /index\.php eens naar /index.php Of probeer het anders eens zo:
| ||||||||
GlowMouse | woensdag 7 december 2011 @ 15:42 | |||||||
^/?producten/(.*)/?(.*)/$ Die eerste .* kan nu 303/45 matchen | ||||||||
cablegunmaster | woensdag 7 december 2011 @ 15:43 | |||||||
Dat zal hem wel zijn. hoe kan ik dat voorkomen? vraagteken weghalen Solved Dankje . zag hem net staan en had het ook net zo gedaan en dat werkte | ||||||||
Diabox | donderdag 8 december 2011 @ 02:20 | |||||||
Weet iemand of het volgende al bestaat: Ik zoek iets waarmee ik heel simpel 'n video bestand kan embedden op 'n pagina, dat ik het als volgt ongeveer kan aanroepen:
Oid. Wil geen poespas admin panel of wat dan ook erbij. Wil puur en alleen in m'n php bestand alles kunnen setten, en dat ie vervolgens het embed in m'n div In welk topic hoort dit precies thuis? | ||||||||
Luchtkoker | donderdag 8 december 2011 @ 02:23 | |||||||
Heeft vrij weinig met PHP te maken gezien dit uiteindelijk met HTML moet worden opgelost, PHP is slechts een serverside taal, die kan zoiets niet. Dit zou dan een soort wrapper worden die uiteindelijk ook een HTML oplossing moet gebruiken. | ||||||||
Diabox | donderdag 8 december 2011 @ 02:24 | |||||||
Ik weet wat PHP is ik zit bij je in de klas remember Maar goed, op aanraden van jou ff JW player gecheckt, is zo te zien precies wat ik zoek. | ||||||||
remi1986 | donderdag 8 december 2011 @ 11:51 | |||||||
Hallo mede PHP-ers, zit met een (raar) probleem. Ik ben bezig om een functie te schrijven die een IBAN rekeningnummer berekent aan de hand van rekeningnummer en banknaam. Dit moet kunnen volgens http://nl.wikipedia.org/w(...)Number#Samenstelling en http://www.ibannl.org/iban_nummer_uitleg.php. Daarvoor moet het controlegetal berekent worden met de uitleg die daar staat. Met het voorbeeld op de wikipedia site met bankrekening nummer 1234567 komt daar op gegeven moment 182316110001234567232100 uit en als je de rest neemt van de deling door 97 komt daar 78 uit. Je moet dan 98 - 78 doen en dan is het controlegetal 20. Dat klopt. Echter als ik mijn eigen rekeningnummer gebruik in mijn functie kom ik op gegeven moment op 10112310549223002232100 / 97 en dan is de uitkomt van de rest ook 78, terwijl dit 82 moet zijn. Het controlegetal moet 16 zijn volgens meerdere IBAN checkers (bijv. http://www.ibannl.org/iban_check.php) Ook als ik andere rekeningnummers gebruik, dan komt er altijd 78 uit als rest. Doe ik iets fout? De code
| ||||||||
Pizzalucht | donderdag 8 december 2011 @ 11:56 | |||||||
http://code.google.com/p/php-iban/ Volgende vond ik op php.net:
| ||||||||
remi1986 | donderdag 8 december 2011 @ 12:05 | |||||||
Dank Pizzalucht, echter die php-iban heeft functies voor als je het IBAN al hebt. Ik ben bezig om een conversie te maken van "gewone" bankrekeningnummers naar IBAN nummers voor SEPA betalingen. In de functie die je eronder post wordt er gebruik gemaakt van bcmod. Echter geeft die bij mij een undefined function error. Volgens de documentatie van PHP zou het gewoon een functie moeten zijn in PHP5. Zal even kijken of ik hier wat over kan vinden, misschien moet er een extensie geinstalleerd worden. | ||||||||
GlowMouse | donderdag 8 december 2011 @ 12:14 | |||||||
Het probleem is dat als jij 182316110001234567232100 invoert, er niet als 182316110001234567232100 mee wordt gerekend. Doe dit maar eens:
| ||||||||
remi1986 | donderdag 8 december 2011 @ 12:20 | |||||||
Ik krijg inderdaad
Als ik vervolgens dat deel door 97 (dat bedoel je met staartdeling toch?) dan krijg ik
Hoe krijg ik hier dan de rest van? Ik weet inmiddels wat je bedoeld met staartdeling, maar ga dan liever even kijken of ik die extensie kan installeren | ||||||||
GlowMouse | donderdag 8 december 2011 @ 12:23 | |||||||
Mensen die bang zijn van een staartdeling. | ||||||||
remi1986 | donderdag 8 december 2011 @ 12:30 | |||||||
Het is niet dat ik er bang voor ben, maar dit is dan veel makkelijker
| ||||||||
Faux. | donderdag 8 december 2011 @ 18:26 | |||||||
mail() en imap_mail(); doen het bij mij niet. Ik roep het script aan via de terminal en hij geeft geen errors aan. Als ik het script upload op een web server dan blijft de pagina maar laden als ik het probeer te bereiken. Heeft iemand enig idee waar ik moet kijken om de oplossing te vinden? | ||||||||
Pakspul | donderdag 8 december 2011 @ 18:38 | |||||||
Ik krijg trouwens als type float terug, ligt dat aan het feit dat ik 64bit OS heb ? | ||||||||
Light | donderdag 8 december 2011 @ 19:06 | |||||||
Nee, dat komt omdat het getal groter is dan PHP_INT_MAX. | ||||||||
remi1986 | vrijdag 9 december 2011 @ 09:50 | |||||||
Anyway het is "opgelost". In ieder geval de functie werkt. PHP is opnieuw compiled met bc_math support | ||||||||
Cue_ | vrijdag 9 december 2011 @ 14:30 | |||||||
Jullie kunnen me vast wel even op weg helpen met een sql query Ik heb een tabel order_match met daarin de volgende gegevens - (1) act_starttime - (2) act_id - (3) act_nextid - (4) act_activityid nou wil ik dat ik bovenstaande gegevens krijg van een bepaalde klant (geen probleem) plus diezelfde gegevens waar next_id = act_id Dus ik wil op 1 regel eigenlijk de gegevens 1,2,3,4 .. met daarachter de gegevens van eig de volgende regel (nextid = actid) | ||||||||
Cue_ | vrijdag 9 december 2011 @ 14:33 | |||||||
laat maar denk ik | ||||||||
ViPeRII | zondag 11 december 2011 @ 11:24 | |||||||
Hulp gezocht met een query! Ik heb mijn gegevens in 1 tabel zitten, en daar wil ik een vergelijking op loslaten. Tabel: Card Velden: N_ID, CALLING_CARD_NO, CALLED_FROM, START_TIMESTAMP, END_TIMESTAMP nu wil ik een selectie maken, waarbij ik per CALLING_CARD kijk, of de CALLED_FROM veranderd is, binnen een bepaalde tijd (zeg 2 uur). Maar ik kom totaal niet uit mijn query Hij moet dus zichzelf gaan itereren, maar als ik dat doe, krijg ik meer resultaten terug dan dat er rijen in mijn tabel zitten.
Ik was begonnen met: SELECT n1.*, n2.* FROM card n1 JOIN card n2 ON n1.CALLING_CARD_NO = n2.CALLING_CARD_NO WHERE n1.N_ID <> n2.N_ID AND n1.CALLED_FROM <> n2.CALLED_FROM Maar ook dat levert al meer resultaten op dan dat er rijen in mijn tabel zitten :S | ||||||||
cablegunmaster | maandag 12 december 2011 @ 11:43 | |||||||
SQL-query: ALTER TABLE `accounts` ADD FOREIGN KEY ( `id` ) REFERENCES `DB_NAME`.`users` ( `acc_id` ) ON DELETE CASCADE ON UPDATE RESTRICT ; MySQL retourneerde: Documentatie #1452 - Cannot add or update a child row: a foreign key constraint fails (`DB_NAME`.<result 2 when explaining filename '#sql-419_1bae51'>, CONSTRAINT `#sql-419_1bae51_ibfk_1` FOREIGN KEY (`id`) REFERENCES `users` (`acc_id`) ON DELETE CASCADE) Hoe kan ik dit oplossen? Wat ik wou doen was een Foreign key op een acc_id uit users zetten. en op Accounts als ik daar 1 verwijderde dat uit accounts een corresponderend ID verdween. Alleen krijg ik opeens deze melding. Uit google wordt ik niet veel wijzer. beide tabellen hebben een InnoDB engine. | ||||||||
Light | maandag 12 december 2011 @ 21:46 | |||||||
Als er een foreign key op acc_id moet, moet je de tabel users wijzigen.
| ||||||||
Light | maandag 12 december 2011 @ 22:06 | |||||||
Zoiets, denk ik.
| ||||||||
cablegunmaster | dinsdag 13 december 2011 @ 01:15 | |||||||
Ik krijg dezelfde foutmelding met jou query , ik probeer dit simpelweg met phpmyadmin uit te voeren en ik word er niet wijzer van. na 3 pagina's google doorzoeken op deze melding. | ||||||||
Light | dinsdag 13 december 2011 @ 07:40 | |||||||
Bevatten de tabellen al data? En zijn de kolommen wel gelijk? Wat levert dit op?
| ||||||||
Swetsenegger | dinsdag 13 december 2011 @ 21:22 | |||||||
Simpele vraag, ik een tabel (order_content) waar in elke row, naast andere gegevens, een product ID staat. En dit is een gekocht produkt. In een andere tabel (products) staat of een product actief is (NOT NULL or <>0) Nu wil ik een top 10 van de meest verkochte produkten die nog actief zijn. Kan iemand me even op weg helpen met de query(ies)? | ||||||||
Pakspul | dinsdag 13 december 2011 @ 21:37 | |||||||
Zoiets Haalt alle product informatie op en geeft als extratje nog mee het aantal keren dat product is verkocht (voorkomt in order_content) Je moet zelf evens in de WHERE de AND product.active = ja NOT NULL, weet niet precies hoe je het hebt. | ||||||||
Light | dinsdag 13 december 2011 @ 21:41 | |||||||
Gebruik je in products zowel NULL als 0 om aan te geven dat een product niet actief is? Is het niet handiger om daar 1 oplossing voor te kiezen, altijd 0 bij inactief en 1 bij actief? | ||||||||
Pakspul | dinsdag 13 december 2011 @ 21:43 | |||||||
idd, gebruik Tinyant(1) als boolean. | ||||||||
Light | dinsdag 13 december 2011 @ 21:44 | |||||||
Kleine mier? | ||||||||
Pakspul | dinsdag 13 december 2011 @ 21:49 | |||||||
ja, is de opvolger van een int | ||||||||
Swetsenegger | dinsdag 13 december 2011 @ 21:51 | |||||||
Het heeft een geschiedenis | ||||||||
Pakspul | dinsdag 13 december 2011 @ 21:55 | |||||||
Had je wat aan de query? | ||||||||
Swetsenegger | dinsdag 13 december 2011 @ 22:09 | |||||||
Yep! Met wat kleine aanpassingen. | ||||||||
Light | dinsdag 13 december 2011 @ 22:11 | |||||||
Alter Table ook | ||||||||
Swetsenegger | dinsdag 13 december 2011 @ 22:41 | |||||||
Echt, als het zo eenvoudig was had ik het gedaan . De table aanpassen is het minste van mijn zorg. Het cms aanpassen om die wijziging door te voeren is een groter probleem. | ||||||||
wipes66 | woensdag 14 december 2011 @ 01:30 | |||||||
Ik zocht een goede manier om wachtwoorden op te slaan. Van vinden jullie van deze methode? Hashen gebaseerd op tijd... md5 doet het 0,3 miljoen keer bij mij
| ||||||||
_Flash_ | woensdag 14 december 2011 @ 10:13 | |||||||
Ik vind het maar een riskante methode. Kom je niet in de problemen als er bijvoorbeeld meerdere mensen tegelijk willen inloggen, de processorkracht verdeeld wordt over die berekeningen en ze dus allemaal de juiste diepte niet halen? Soort van oplossing is natuurlijk wel om het aantal gebruikte loopjes ook in de tabel op te slaan, dan hoef je niet met die factor anderhalf te werken ;-) | ||||||||
Catbert | woensdag 14 december 2011 @ 10:50 | |||||||
Een busy-wait van een seconde lang, nee dat is fijn... | ||||||||
Faux. | woensdag 14 december 2011 @ 20:29 | |||||||
Hoe kan ik met PHP bij een pagina komen die beveiligd is met HTTP 401? | ||||||||
cablegunmaster | woensdag 14 december 2011 @ 20:54 | |||||||
Nou dan heb je de juiste variabelen nodig lijkt mij als ik het zo 1-2-3 lees. Is de pagina van jezelf? | ||||||||
Faux. | woensdag 14 december 2011 @ 20:58 | |||||||
Nee. Ik probeer nu een cURL-oplossing die ik ergens op internet gevonden heb. Even testen | ||||||||
The_Terminator | woensdag 14 december 2011 @ 21:27 | |||||||
En anders kan het ook door een header mee te sturen, zie: http://www.electrictoolbo(...)g-username-password/ | ||||||||
Faux. | woensdag 14 december 2011 @ 21:28 | |||||||
Dank je voor je bijdrage, maar de cURL-oplossing werkte | ||||||||
Pakspul | donderdag 15 december 2011 @ 08:20 | |||||||
Waarom gebruik je niet gewoon http://php.net/manual/en/function.crypt.php ? SHA-512 encryptie? In combinatie met afdwingen van lange wachtwoorden die sterk moeten zijn (meer dan acht symbolen lang en moet volgende bezitten: hoofdletters, kleine letters, cijfers en mogelijk symbolen) dan heb je redelijke garantie dat wanneer ze het wachtwoord hebben ze deze de eerste tijd niet zullen kraken. | ||||||||
Farenji | donderdag 15 december 2011 @ 09:40 | |||||||
En zorg voor een goede, lange salt zodat je ook geen last hebt van rainbow table attacks. Want een wachtwoord als "Secret1234!" voldoet aan je eisen maar staat vast wel in wat rainbow tabellen. | ||||||||
Scorpie | donderdag 15 december 2011 @ 10:31 | |||||||
Altijd met salts gaan werken. | ||||||||
Swetsenegger | donderdag 15 december 2011 @ 19:22 | |||||||
Dit werkt met wat aanpassingen perfect:
Maar nu... wil ik eigenlijk alleen de top tien van afgelopen jaar. De oder_date staat in de tabel 'orders' en je begrijpt het al, de order_id gebruik ik in de tabel order_content, waar ik dus voor elke product in die order een record schrijf. Dit betekent dus dat je voor elke row in de tabel order_content moet controleren of die hoort bij een order in orders met een orderdate in 2011. order_date is een datetime. Hier kom ik echt ff niet meer uit | ||||||||
Pakspul | donderdag 15 december 2011 @ 19:37 | |||||||
Volgens mij werkt het onderstaande gewoon met een datetime field
Wat zou betekenen dat je query er als volgt uit komt te zien:
| ||||||||
Swetsenegger | donderdag 15 december 2011 @ 19:54 | |||||||
Met wat aanpassingen lijkt het te werken, alleen duurt de query 59 seconden Ik ga even verder knutselen. Misschien is het handiger als ik met subqueries ga werken? Dat ik eerst alle ordercontent van 2011 eruit trek en met die resultset de count query doe. | ||||||||
Light | donderdag 15 december 2011 @ 22:06 | |||||||
Ik vind het altijd vervelend als een site mij afdwingt wat ik wel en niet in mijn wachtwoord mag hebben. Met een goede salt (en de eis dat het wachtwoord niet leeg mag zijn) moet je een heel eind kunnen komen. Je kunt de salt (of een deel van de salt) ook afhankelijk maken van het id van de user. | ||||||||
Light | donderdag 15 december 2011 @ 22:08 | |||||||
Klinkt alsof je een index moet toevoegen aan de tabel. Met EXPLAIN SELECT kun je zien hoe MySQL de query wil uitvoeren (en dat geeft ook informatie over waarom het zo lang duurt). | ||||||||
Swetsenegger | donderdag 15 december 2011 @ 22:45 | |||||||
| ||||||||
GlowMouse | donderdag 15 december 2011 @ 23:15 | |||||||
Schrijf gewoon COUNT(*), zet een index op order_content.product_id en kijk naar ansi style joins | ||||||||
Light | donderdag 15 december 2011 @ 23:24 | |||||||
Ik denk dat er geen index op orders.orderdate staat. Een index daar zal helpen. En verder wat GlowMouse zegt. | ||||||||
Swetsenegger | vrijdag 16 december 2011 @ 08:34 | |||||||
ANSI ken ik alleen van BBS systemen, glowmouse ;-) Ik ga er mee aan de slag en hou jullie op de hoogte. order_content.product_id had ik ondertussen een index opgezet maar dat helpt niet echt. | ||||||||
wipes66 | vrijdag 16 december 2011 @ 11:28 | |||||||
Dat is inderdaad een goede oplossing Je zou het ook clientside kunnen doen via javascript. Als je wilt inloggen vul je eerst het email adres in. Dat wordt het aantal loops opgehaald dat bij het email adres hoort en vervolgens wordt de boel (e-mail + ww) x aantal keer gehashed en naar de server verstuurd. via deze manier is een challenge response systeem ook mogelijk | ||||||||
Swetsenegger | vrijdag 16 december 2011 @ 17:47 | |||||||
Ik zit met de aanpassingen nog steeds op een query van 57 seconden. Ik heb alleen de ANSI join nog niet gedaan | ||||||||
das_phantom | vrijdag 16 december 2011 @ 20:33 | |||||||
Misschien meer een logica vraag dan php, maar goed: Ik heb gister met php en mysql een systeem gebouwd om lootjes te trekken. We hebben 5 personen in de database en bij elk lootje dat getrokken wordt, wordt die naam verwijderd. Uiteraard zorg ik ervoor met code dat niemand zichzelf kan trekken. Echter een probleem weet ik niet zo snel op te lossen. A trekt B B trekt A C trekt D D trekt C Persoon E kan dus niemand trekken. Nu kunnen we het net zo lang proberen dat het wel goed gaat, maar vind het mooier om zoiets te voorkomen met code. Iemand een suggestie? | ||||||||
Scorpie | vrijdag 16 december 2011 @ 20:55 | |||||||
Ik snap het probleem niet helemaal. | ||||||||
Pizzalucht | vrijdag 16 december 2011 @ 20:56 | |||||||
Dat hij een manier zoekt om iedereen aan een andere willekeurige persoon te koppelen. Je hebt 5 personen, en iedereen is aan iemand gekoppeld, maar niet aan zichzelf. Hoe doe je dat het beste, proberen totdat je de goede combi hebt, of is daar een soort algoritme voor. Dat is zijn vraag. | ||||||||
das_phantom | vrijdag 16 december 2011 @ 20:59 | |||||||
Klopt helemaal | ||||||||
Scorpie | vrijdag 16 december 2011 @ 21:05 | |||||||
Oh zo. Maak gewoon een resultset op basis van alle id`s van de gebruikers, minus je eigen, en laat hem daar 1tje van kiezen? | ||||||||
das_phantom | vrijdag 16 december 2011 @ 21:15 | |||||||
Ter info. Ik heb iedereen de url gegeven. Iedereen trekt het lootje wanneer diegene wil. De persoon selecteert zijn eigen naam en het systeem bekijkt dan in de database wie er nog in zit, en daaruit kiest hij de naam <> eigen naam. Als er nog maar een naam inzit en die is van diegene zelf, dan gaat het fout. | ||||||||
Scorpie | vrijdag 16 december 2011 @ 21:21 | |||||||
A heeft als optie B,C,D,E B heeft als optie A,C,D,E C heeft als optie A,B,D,E D heeft als optie A,B,C,E E heeft als optie A,B,C,D Hoe kan hij zichzelf kiezen dan? | ||||||||
das_phantom | vrijdag 16 december 2011 @ 23:02 | |||||||
Het gaat mis omdat als E aan de beurt is mogelijk alle opties al vergeven zijn. Het kan zo verlopen: A trekt B B trekt A C trekt D D trekt C E trekt? | ||||||||
GlowMouse | vrijdag 16 december 2011 @ 23:32 | |||||||
niet pas trekken als iemand de url aanroept, of bij het een na laatste loodje zorgen dat je niet in een foute situatie komt | ||||||||
ErikNijland | vrijdag 16 december 2011 @ 23:33 | |||||||
Oplossing voor dat lootjes trekken. Zet de personen in een random volgorde. Bijvoorbeeld: edacb En elke persoon krijgt de volgende persoon in de array: e krijgt d d krijgt a a krijgt c c krijgt b en bij b is er geen volgende daarom krijgt hij de eerste uit de array: e zo; en nu weekend | ||||||||
das_phantom | zaterdag 17 december 2011 @ 02:26 | |||||||
Goede suggesties. Ik ga er mee aan de slag! | ||||||||
mschol | zaterdag 17 december 2011 @ 10:47 | |||||||
bij lootjestrekken.nl moet iedereen eerst "deelnemen" (+verlanglijstje invullen kan ook), daarna regelt de site het lootjes trekken en stuurt iedereen een link is dat niet waar je naar opzoek bent? | ||||||||
Pakspul | zaterdag 17 december 2011 @ 11:24 | |||||||
Wat nou als randomizen van personen dezelfde lijst oplevert als je lijst waar je aan gaat koppelen? Dan krijgt iedereen zichzelf Ik zou een functie (class liever) maken die bijhoudt welke personen meedoen, random persoon toewijst aan iemand en daarbij rekening houdt dat het niet persoon is waar die aan toe wordt gewezen. | ||||||||
Swetsenegger | zaterdag 17 december 2011 @ 15:31 | |||||||
Iemand nog een idee? | ||||||||
YazooW | zaterdag 17 december 2011 @ 15:50 | |||||||
Het is niet zo dat hij 2 lijsten gaat koppelen. Hij heeft 1 lijst met personen a,b,c,d en e. Die lijst randomized hij, dus abcde wordt bijvoorbeeld bdcae. Vervolgens wordt de eerste letter gekoppeld aan de tweede, de tweede aan de derde, de derde aan de vierde, etc etc. Dus ongeacht of het randomizen iets heeft opgeleverd kan je nooit jezelf loten. | ||||||||
Swetsenegger | zaterdag 17 december 2011 @ 16:01 | |||||||
Deze lijkt m'n probleem op te lossen | ||||||||
GlowMouse | zaterdag 17 december 2011 @ 19:13 | |||||||
twee join stijlen door elkaar, lelijk hoor | ||||||||
Swetsenegger | zaterdag 17 december 2011 @ 19:19 | |||||||
jajaja
Zo dan. | ||||||||
GlowMouse | zaterdag 17 december 2011 @ 19:34 | |||||||
Je WHERE is nog te uitgebreid. Deze query zou ook niet sneller draaien dan de eerste. | ||||||||
Swetsenegger | zaterdag 17 december 2011 @ 19:46 | |||||||
Deze query draait in 37ms, mijn eerste zonder ANSI join in 57 seconden. Of bedoel je dat deze tov de vorige niet sneller draait? Dat klopt. Maar hoe kan ik de where clausule korter maken? Dit zijn de voorwaarden. -edit- duh
| ||||||||
GlowMouse | zaterdag 17 december 2011 @ 20:20 | |||||||
De joinvolgorde zal wel gewijzigd zijn, ANSI vs. theta-style heeft geen invloed. | ||||||||
Swetsenegger | zaterdag 17 december 2011 @ 20:28 | |||||||
wat bedoel je? Dat de laatste query en de eerste query net zo snel zouden moeten zijn? |