abonnement Unibet Coolblue
pi_104159529


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
pi_104159541
quote:
0s.gif Op woensdag 9 november 2011 13:36 schreef Scorpie het volgende:

[..]

Arrays & loops _O_
Concatenatie en empty() checks :(
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.
  woensdag 9 november 2011 @ 13:47:31 #3
84244 Scorpie
Abject en infaam!
pi_104159732
quote:
0s.gif Op woensdag 9 november 2011 13:41 schreef Pakspul het volgende:

[..]

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.
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.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_104159874
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 :P) 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.
  woensdag 9 november 2011 @ 13:57:42 #5
305897 remi1986
This MF is infected by madness
pi_104160084
quote:
0s.gif Op woensdag 9 november 2011 13:51 schreef Pakspul het volgende:
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 :P) 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.
Ben ik het nog niet mee eens, want je kan een rij toevoegen met js, maar wie zegt dat deze is ingevuld?
pi_104160255
quote:
0s.gif Op woensdag 9 november 2011 13:57 schreef remi1986 het volgende:

[..]

Ben ik het nog niet mee eens, want je kan een rij toevoegen met js, maar wie zegt dat deze is ingevuld?
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.
  woensdag 9 november 2011 @ 14:14:11 #7
305897 remi1986
This MF is infected by madness
pi_104160692
quote:
0s.gif Op woensdag 9 november 2011 14:02 schreef Pakspul het volgende:

[..]

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.
Dat ben ik dan wel weer met je eens ^O^

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 ]
pi_104191894
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.
pi_104191935
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 :P
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 10 november 2011 @ 08:38:15 #10
84244 Scorpie
Abject en infaam!
pi_104191999
quote:
0s.gif Op donderdag 10 november 2011 08:32 schreef Pizzalucht het volgende:
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 :P
Ik mag hopen dat het niet alleen zo voelt, maar ook zo is en je dat kan meten.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_104192041
quote:
14s.gif Op donderdag 10 november 2011 08:38 schreef Scorpie het volgende:

[..]

Ik mag hopen dat het niet alleen zo voelt, maar ook zo is en je dat kan meten.
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 ;)
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 10 november 2011 @ 08:45:33 #12
84244 Scorpie
Abject en infaam!
pi_104192104
quote:
0s.gif Op donderdag 10 november 2011 08:41 schreef Pizzalucht het volgende:

[..]

Het gaat om een forum, iedereen zegt dat hij veel sneller is, dus daar hoef ik het niet voor te meten ;)
Hm, ik ben blij dat ik niet zo`n instelling op mijn werk laat zien.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_104192148
quote:
15s.gif Op donderdag 10 november 2011 08:45 schreef Scorpie het volgende:

[..]

Hm, ik ben blij dat ik niet zo`n instelling op mijn werk laat zien.
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.
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 10 november 2011 @ 08:50:40 #14
84244 Scorpie
Abject en infaam!
pi_104192173
quote:
0s.gif Op donderdag 10 november 2011 08:48 schreef Pizzalucht het volgende:

[..]

Het lijkt wel alsof jij op dit forum zit om op iedereen te zeiken, is het ooit goed volgens jou?
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'.

quote:
Het was een weloverwogen actie, en we hadden veel onderzoek gedaan naar de oorzaak van de traagheid van de database.
Dus je hebt wel gemeten?
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_104192192
quote:
0s.gif Op donderdag 10 november 2011 08:50 schreef Scorpie het volgende:

[..]

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?
Ik heb gemeten op MyISAM ja, maar die resultaten heb ik niet meer.
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 10 november 2011 @ 08:54:57 #16
84244 Scorpie
Abject en infaam!
pi_104192231
quote:
0s.gif Op donderdag 10 november 2011 08:52 schreef Pizzalucht het volgende:

[..]

Ik heb gemeten op MyISAM ja, maar die resultaten heb ik niet meer.
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.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_104192260
quote:
14s.gif Op donderdag 10 november 2011 08:54 schreef Scorpie het volgende:

[..]

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.
Ja, maar geen resultaten om te vergelijken.

En sorry dan, het is vroeg :P
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 10 november 2011 @ 09:07:20 #18
84244 Scorpie
Abject en infaam!
pi_104192441
quote:
0s.gif Op donderdag 10 november 2011 08:57 schreef Pizzalucht het volgende:

[..]

Ja, maar geen resultaten om te vergelijken.

En sorry dan, het is vroeg :P
:*
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  donderdag 10 november 2011 @ 11:18:14 #19
75592 GlowMouse
l'état, c'est moi
pi_104195484
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 10 november 2011 @ 12:16:13 #20
58834 Catbert
The evil HR Director.
pi_104197549
quote:
0s.gif Op donderdag 10 november 2011 11:18 schreef GlowMouse het volgende:
InnoDB is heel vaak de betere keuze.
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.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 10 november 2011 @ 12:22:08 #21
75592 GlowMouse
l'état, c'est moi
pi_104197767
quote:
0s.gif Op donderdag 10 november 2011 12:16 schreef Catbert het volgende:

[..]

Als je veel updates doet, sure, maar als je vooral veel leest en geen transacties nodig hebt is MyISAM vaak sneller.
Het verschil is slechts enkele procenten, niet de moeite waard tegenover de voordelen die InnoDB biedt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 10 november 2011 @ 12:40:14 #22
58834 Catbert
The evil HR Director.
pi_104198364
quote:
0s.gif Op donderdag 10 november 2011 12:22 schreef GlowMouse het volgende:
Het verschil is slechts enkele procenten, niet de moeite waard tegenover de voordelen die InnoDB biedt.
InnoDB houdt toch geen rowcounts bij voor tabellen? Of doet 'ie dat wel tegenwoordig? Gebruik al jaren geen MySQL meer...
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_104199416
quote:
0s.gif Op donderdag 10 november 2011 11:18 schreef GlowMouse het volgende:
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.
Met 256mb geheugen zit je helaas aan MyISAM vast.

of heb je nog een protip?
  donderdag 10 november 2011 @ 13:40:32 #24
75592 GlowMouse
l'état, c'est moi
pi_104200247
quote:
0s.gif Op donderdag 10 november 2011 12:40 schreef Catbert het volgende:

[..]

InnoDB houdt toch geen rowcounts bij voor tabellen? Of doet 'ie dat wel tegenwoordig? Gebruik al jaren geen MySQL meer...
Je hebt nooit een rowcount nodig. Een rowcount bestaat ook helemaal niet.
quote:
0s.gif Op donderdag 10 november 2011 13:15 schreef Thomass het volgende:

[..]

Met 256mb geheugen zit je helaas aan MyISAM vast.

of heb je nog een protip?
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 10 november 2011 @ 13:51:39 #25
63192 ursel
"Het Is Hier Fantastisch!
pi_104200566
quote:
0s.gif Op donderdag 10 november 2011 11:18 schreef GlowMouse het volgende:
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.
Heb je daar ook mooie tutorials voor qua settings? :7
  donderdag 10 november 2011 @ 13:57:31 #26
75592 GlowMouse
l'état, c'est moi
pi_104200745
quote:
0s.gif Op donderdag 10 november 2011 13:51 schreef ursel het volgende:

[..]

Heb je daar ook mooie tutorials voor qua settings? :7
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104200994
quote:
0s.gif Op donderdag 10 november 2011 11:18 schreef GlowMouse het volgende:
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.
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)
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 10 november 2011 @ 14:17:16 #28
58834 Catbert
The evil HR Director.
pi_104201378
quote:
0s.gif Op donderdag 10 november 2011 13:40 schreef GlowMouse het volgende:
Je hebt nooit een rowcount nodig. Een rowcount bestaat ook helemaal niet.
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.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 10 november 2011 @ 14:22:13 #29
75592 GlowMouse
l'état, c'est moi
pi_104201529
quote:
0s.gif Op donderdag 10 november 2011 14:17 schreef Catbert het volgende:

[..]

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.
je leest niet goed ;(
quote:
0s.gif Op donderdag 10 november 2011 14:04 schreef Pizzalucht het volgende:

[..]

Ik heb niet de config van pastebin geplukt, ik heb de config van de eigenaar van pastebin :*
groot verschil ;(
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104201582
quote:
0s.gif Op donderdag 10 november 2011 13:40 schreef GlowMouse het volgende:

[..]

Je hebt nooit een rowcount nodig. Een rowcount bestaat ook helemaal niet.

[..]
quote:
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.
Op mijn vps wel :P

De memoryfootprint van innodb is veel hoger dan die van myisam, vandaar mijn vraag.
  donderdag 10 november 2011 @ 14:29:13 #31
75592 GlowMouse
l'état, c'est moi
pi_104201757
met geheugentekort kan innodb juist heel goed presteren mbv page-compressie
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104224137
Ik kom ergens niet uit.

1
2
3
4
5
6
7
8
9
10
11
12
<?php
   $sql 
"SELECT 
                pagina.id AS paginaid, 
                pagina.title AS paginatitle, 
                pagina.link AS paginalink,
                buttons.button_id AS button_id,
                buttons.id AS id
            FROM 'pagina'
            JOIN  buttons
            ON pagina.id = buttons.id
            ORDER BY `paginatitle`  ASC;"
;
?>

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.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  donderdag 10 november 2011 @ 22:19:10 #33
75592 GlowMouse
l'état, c'est moi
pi_104224367
FROM 'pagina'

zonder quotes.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104224538
Helaas geen verandering. Ik ben echt een ramp met JOIN.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  donderdag 10 november 2011 @ 22:23:46 #35
75592 GlowMouse
l'état, c'est moi
pi_104224649
wat is 'de foutmelding' dan?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104224725
Hij laat mijn if(!$result){ echo "foutmelding" }; zien. Hij kan de query dus niet uitvoeren.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  donderdag 10 november 2011 @ 22:26:00 #37
75592 GlowMouse
l'état, c'est moi
pi_104224790
zo debug je geen queries
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104225071
Als ik de query draai in mijn phpMyAdmin werkt het gewoon.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_104225257
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. :') !!!!
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_104225342
:N en dat kan moderator zijn :N :P
Just say hi!
pi_104225420
quote:
0s.gif Op donderdag 10 november 2011 22:34 schreef Chandler het volgende:
:N en dat kan moderator zijn :N :P
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.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_104225526
quote:
9s.gif Op donderdag 10 november 2011 22:33 schreef boem-dikkie het volgende:
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. :') !!!!
keer tijd om je db class uit te breiden? Zodat hij dit soort dingen aangeeft.
pi_104226354
quote:
1s.gif Op donderdag 10 november 2011 22:37 schreef Pakspul het volgende:

[..]

keer tijd om je db class uit te breiden? Zodat hij dit soort dingen aangeeft.
Dat heeft niet perse zo veel zin want de hele database class stond nog niet op die pagina.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  donderdag 10 november 2011 @ 23:00:03 #44
75592 GlowMouse
l'état, c'est moi
pi_104226792
quote:
14s.gif Op donderdag 10 november 2011 22:24 schreef boem-dikkie het volgende:
Hij laat mijn if(!$result){ echo "foutmelding" }; zien. Hij kan de query dus niet uitvoeren.
zulke dingen doe je ook in je db-class
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104226992
quote:
10s.gif Op donderdag 10 november 2011 22:52 schreef boem-dikkie het volgende:

[..]

Dat heeft niet perse zo veel zin want de hele database class stond nog niet op die pagina.
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. :)
pi_104227401
Ah duidelijk. Toch maar eens naar kijken.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_104258465
1
2
3
4
5
SELECT
  TIME_FORMAT(TIMEDIFF(landingtime,starttime),"%k:%i") 
    AS flighttime
ORDER BY flighttime  <<<<<<---------------
LIMIT 0,10
Is dit een garantie voor een trage query of moet ik een andere oorzaak zoeken waarom mijn query 8 seconden nodig heeft?

(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 ]
  zaterdag 12 november 2011 @ 12:53:35 #48
75592 GlowMouse
l'état, c'est moi
pi_104282605
quote:
0s.gif Op vrijdag 11 november 2011 19:32 schreef KomtTijd... het volgende:

[ code verwijderd ]

Heeft iemand enig idee hoe ik dat kan verbeteren? Flighttime opslaan in een extra kolom kan natuurlijk
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104291609
Dan denk ik dat ik liever voor dat eerste gaat. Worden de andere query's waarschijnlijk ook weer een tikkeltje sneller van.
pi_104318028
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.
  zondag 13 november 2011 @ 16:00:45 #51
75592 GlowMouse
l'état, c'est moi
pi_104319192
je kunt ook je query en je tabellen hier posten
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104346643
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SELECT     
    floco_flight_id,         (int)
    airplane,                (varchar)
    firstpilot_feu_id,       (int)
    secondpilot_feu_id,      (int)
    starttime,               (datetime)
    landingtime,             (datetime)
    startmethod,             (varchar)
    flighttype,              (varchar)
    club,                    (boolean)
    own,                     (boolean)
    flighttime,              (time)
    DATE(starttime) 
        AS datum,
    feu1.data 
        AS firstpilot_name,
    feu2.data 
        AS secondpilot_name
FROM flightdb_flights
LEFT JOIN feusers_properties AS feu1
    ON (firstpilot_feu_id = feu1.userid)
        AND (feu1.title = 'realname')
LEFT JOIN feusers_properties AS feu2
    ON (secondpilot_feu_id = feu2.userid)
        AND (feu2.title = 'realname')
WHERE (YEAR(starttime) = '2011' 
    AND airplane IN ('PH454','PH974','PH1006','PH1210','PH1382','PH1417','PH1433')
    AND flighttime > '01:05:00')
ORDER BY flighttime desc
LIMIT 0,10
Dit is de query. De tabel flightdb_flights laat zich raden. Voor de duidelijkheid heb ik de datatypes er even achter gezet. Deze heeft nu een index op (firstpilot_feu_id, secondpilot_feu_id), op (flighttime) en op (starttime). Er zitten nu een goeie 10.000 records in, ik reken op ongeveer 5000 records per jaar.

feusers_properties had ik al eens gepost, deze heb ik een index gegeven op (userid,title):
1
2
3
4
5
userid | title | data
1      | name  | piet
2      | name  | jan
1      | adres | hoofdstraat 21
3      | name  | henk

-edit-
een andere query die veel vaker voorkomt is dezelfde, maar dan eindigend op:
1
2
3
WHERE (YEAR(starttime) = '2011' 
    AND (firstpilot_feu_id = '2' OR secondpilot_feu_id = '2'))
ORDER BY starttime
en ook:
1
2
WHERE (DATE(starttime) = '2011-10-30')
ORDER BY starttime
waarbij de datum en userid uiteraard kunnen verschillen. Deze query's zijn allebei wel snel.

[ Bericht 10% gewijzigd door KomtTijd... op 14-11-2011 11:57:07 ]
  maandag 14 november 2011 @ 11:56:48 #53
58834 Catbert
The evil HR Director.
pi_104347349
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.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_104347445
quote:
0s.gif Op maandag 14 november 2011 11:56 schreef Catbert het volgende:
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.
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.
  maandag 14 november 2011 @ 12:03:50 #55
58834 Catbert
The evil HR Director.
pi_104347548
Doe eens een query explain?

Sowieso is een query op 10k records complete peanuts.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_104348014
quote:
0s.gif Op maandag 14 november 2011 12:03 schreef Catbert het volgende:
Doe eens een query explain?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
pear_ResultSet Object
(
    [emptyTimeStamp] => &nbsp;
    [emptyDate] =>  &nbsp;
    [datetime] => 
    [connectionId] => Resource id #25
    [fields] => Array
        (
            [id] => 1
            [select_type] => SIMPLE
            [table] => flightdb_flights
            [type] => range
            [possible_keys] => flighttime,airplane
            [key] => flighttime
            [key_len] => 4
            [ref] => 
            [rows] => 466
            [Extra] => Using where; Using temporary; Using filesort
        )

    [resultId] => Resource id #248
    [_currentRow] => 0
    [_numOfRows] => 3
    [_numOfFields] => 10
    [fetchMode] => 1
    [EOF] => 
    [record] => Array
        (
        )

)
ik zit me nog even in te lezen hoe ik dit moet vertalen...

-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.

quote:
Sowieso is een query op 10k records complete peanuts.
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 ]
  maandag 14 november 2011 @ 12:52:18 #57
75592 GlowMouse
l'état, c'est moi
pi_104348802
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?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 14 november 2011 @ 13:01:17 #58
58834 Catbert
The evil HR Director.
pi_104349047
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...

quote:
0s.gif Op maandag 14 november 2011 12:20 schreef KomtTijd... het volgende:
Dat leek mij ook, daarom is het ook irritant dat het zo traag gaat.
Nou waarom het zo traag gaat is wel duidelijk. De vraag is waarom hij voor dat execution plan kiest...
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_104349390
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).

quote:
0s.gif Op maandag 14 november 2011 12:52 schreef GlowMouse het volgende:
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

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...
1
2
3
4
5
6
7
8
9
10
11
12
13
    1     floco_flight_id         bigint(19)
    2     airplane                 varchar(80)
    3     firstpilot_id             int(11)
    4     secondpilot_id             int(11)
    5     starttime                 datetime             
    6     landingtime             datetime 
    7     startmethod             varchar(20)
    8     flighttype                 varchar(20)
    9     club                     tinyint(1)
    10     own                     tinyint(1)
    11     firstpilot_feu_id         int(11)
    12     secondpilot_feu_id         int(11)
    13     flighttime                 time
dit is écht de hele tabel dan.
1
2
3
4
1     id     int(11)             
2     userid     int(11) 
3     title     varchar(100)     
4     data     longtext
En dit de hele tabel feusers_properties
quote:
>> AND airplane IN ('PH454','PH974','PH1006','PH1210','PH1382','PH1417','PH1433')
hoe selectief is dat?
Niet bepaald, denk dat je dan nog 90% over hebt.
pi_104349754
quote:
0s.gif Op maandag 14 november 2011 13:01 schreef Catbert het volgende:

[..]

Nou waarom het zo traag gaat is wel duidelijk. De vraag is waarom hij voor dat execution plan kiest...
Je hebt het hier dus over "using temporary", neem ik aan?
Dan weet ik dat ik dat voortaan in de gaten moet houden.
  maandag 14 november 2011 @ 13:31:38 #61
58834 Catbert
The evil HR Director.
pi_104349895
quote:
3s.gif Op maandag 14 november 2011 13:28 schreef KomtTijd... het volgende:
Je hebt het hier dus over "using temporary", neem ik aan?
Dan weet ik dat ik dat voortaan in de gaten moet houden.
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.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_104350048
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. :@
  maandag 14 november 2011 @ 13:50:26 #63
75592 GlowMouse
l'état, c'est moi
pi_104350539
SHOW CREATE TABLE laat ook je indices zien.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104385345
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.
:? :? :? :? :?
  dinsdag 15 november 2011 @ 09:23:16 #65
230788 n8n
Pragmatisch
pi_104385691
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?
Specialization is for insects”.—Robert Heinlein
  dinsdag 15 november 2011 @ 09:25:50 #66
137776 boem-dikkie
Jedi Mind Baby!
pi_104385749
quote:
7s.gif Op dinsdag 15 november 2011 09:23 schreef n8n het volgende:
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?
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.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  dinsdag 15 november 2011 @ 09:29:33 #67
91039 mstx
2x1/2 = 1/2 x 1/2
pi_104385821
quote:
7s.gif Op dinsdag 15 november 2011 09:23 schreef n8n het volgende:
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?
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.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  dinsdag 15 november 2011 @ 09:38:30 #68
63192 ursel
"Het Is Hier Fantastisch!
pi_104386025
quote:
0s.gif Op dinsdag 15 november 2011 09:05 schreef Darkomen het volgende:
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.
:? :? :? :? :?
Vanuit welke user stuur je hem handmatig aan en vanuit welke user via de scheduled task?
pi_104386057
Zou beide de zelfde user moeten zijn, maar moet ook niet uitmaken, de 2de windows task draait namelijk wel.
  dinsdag 15 november 2011 @ 09:40:16 #70
84244 Scorpie
Abject en infaam!
pi_104386058
quote:
0s.gif Op dinsdag 15 november 2011 09:05 schreef Darkomen het volgende:
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.
:? :? :? :? :?
Rechtenprobleem op de map ivm taak scheduler en account waaronder deze draait.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_104386160
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.
  dinsdag 15 november 2011 @ 10:04:49 #72
58834 Catbert
The evil HR Director.
pi_104386663
quote:
7s.gif Op dinsdag 15 november 2011 09:23 schreef n8n het volgende:
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?
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?
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  dinsdag 15 november 2011 @ 10:06:33 #73
230788 n8n
Pragmatisch
pi_104386722
Ok duidelijk, dan heb ik weer iets om me over in te lezen. bedankt
Specialization is for insects”.—Robert Heinlein
  dinsdag 15 november 2011 @ 10:07:43 #74
230788 n8n
Pragmatisch
pi_104386763
quote:
14s.gif Op dinsdag 15 november 2011 09:25 schreef boem-dikkie het volgende:

[..]

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.
dat doe ik ook wel, had alleen geen idee hoe ik een sessie aan kon maken
Specialization is for insects”.—Robert Heinlein
pi_104387928
1/bin/sh: /home/frietkot/domains/naam.nl/public_html/includes/cronjobs/cronjob_aanmaningen.php: Permission denied
Eeuhm... :P Admin vragen op de server perhaps denk ik nu :D
Redacted
pi_104388012
quote:
0s.gif Op dinsdag 15 november 2011 10:56 schreef cablegunmaster het volgende:

[ code verwijderd ]

Eeuhm... :P Admin vragen op de server perhaps denk ik nu :D
Je moet 'cronjob_aanmaningen.php' zo chmodden dat je rechten hebt om het uit te voeren.
pi_104388047
quote:
0s.gif Op dinsdag 15 november 2011 10:59 schreef The_Terminator het volgende:

[..]

Je moet 'cronjob_aanmaningen.php' zo chmodden dat je rechten hebt om het uit te voeren.
Done :).
Redacted
  dinsdag 15 november 2011 @ 11:27:22 #78
75592 GlowMouse
l'état, c'est moi
pi_104388772
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
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104395629
quote:
0s.gif Op dinsdag 15 november 2011 11:27 schreef GlowMouse het volgende:
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
Iets in die richting :). merkte al dat het script niks van me php snapte :). Dankje :D
Hopelijk werkt het nu :P 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 ).
Redacted
pi_104399916
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 :).
Redacted
  woensdag 16 november 2011 @ 16:19:56 #81
63192 ursel
"Het Is Hier Fantastisch!
pi_104439837
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.
  donderdag 17 november 2011 @ 08:18:10 #82
25889 Sitethief
Fulltime Flapdrol
pi_104464719
Voor de weergave van tekst gebruik ik
1
2
3
<?php
htmlentities
($data[$key],ENT_COMPAT,"ISO-8859-1",false);
?>
Helaas heeft die niet alle characters (zie hier). UTF-8 is ook niet de oplossing...

quote:
“That’s a ‘magic’ sock.”
Wordt
quote:
�That’s a �magic� sock.�
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?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_104464830
UFT-8? ... ik lees dus niet goed.

Wat gebeurd er als je zonder dat invuld?
  donderdag 17 november 2011 @ 08:39:46 #84
25889 Sitethief
Fulltime Flapdrol
pi_104464913
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.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 17 november 2011 @ 08:52:39 #85
25889 Sitethief
Fulltime Flapdrol
pi_104465093
Ik zou natuurlijk de tekens die htmlentities niet convert zelf kunnen omzetten naar bijvoorbeeld
1
Of
1
, maar het handige aan htmlentities is juist dat die voor jou de juist special entity codes zoekt bij je characters...
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 17 november 2011 @ 09:03:17 #86
25889 Sitethief
Fulltime Flapdrol
pi_104465282
Dan maar zo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
/**
     * Converts smart quotes (&#8220;,&#8221;,&#8216;,&#8217;) and em-dash
     *
     * This function is needed because ISO-8859-1 (and by extend ISO-8859-15)
     * doesn't support these characters, so we need to convert them ourselves.
     *
     * @param string $text
     * @return string
     */
    
function CleanupSmartQuotes($text){
        
$badwordchars = array(
                            
chr(145),
                            
chr(146),
                            
chr(147),
                            
chr(148),
                            
chr(151)
                            );
        
$fixedwordchars = array(
                            
"'",
                            
"'",
                            
'&quot;',
                            
'&quot;',
                            
'&mdash;'
                            
);
        return 
str_replace($badwordchars,$fixedwordchars,$text);
    }
?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 17 november 2011 @ 11:03:37 #87
75592 GlowMouse
l'état, c'est moi
pi_104468248
quote:
0s.gif Op donderdag 17 november 2011 08:39 schreef Sitethief het volgende:
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.
Stuur je pagina dan ook netjes als UTF-8 door.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 17 november 2011 @ 11:06:32 #88
58834 Catbert
The evil HR Director.
pi_104468316
quote:
0s.gif Op donderdag 17 november 2011 11:03 schreef GlowMouse het volgende:
Stuur je pagina dan ook netjes als UTF-8 door.
Dat, zelf zooi gaan replacen is gewoon dom.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 17 november 2011 @ 11:15:56 #89
84244 Scorpie
Abject en infaam!
pi_104468562
quote:
0s.gif Op donderdag 17 november 2011 11:06 schreef Catbert het volgende:

[..]

Dat, zelf zooi gaan replacen is gewoon dom.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_104474659
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?

1
2
3
4
5
6
7
8
function feedToBrowser($file, $formatID)
{
    header("Content-type: " . toImageHeader($formatID));
    header("Content-length: " . filesize($file));
    header("Expires: Mon, 1 Jul 2027 05:00:00 GMT\n");     // doorsturen
    readfile($file);
    exit();
}
Waar ga ik de fout in?
Just say hi!
pi_104475461
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/
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 17 november 2011 @ 14:57:25 #92
58834 Catbert
The evil HR Director.
pi_104475830
Je headers spreken elkaar wel tegen trouwens. Je content expired niet maar je mag 't niet cachen.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_104490824
Ok, maar het zou toch moeten werken?
Just say hi!
pi_104492123
Weet je zeker dat je nergens output hebt? Ookal is het maar een spatie.
💍 💍 💍 💍 💍 💍 🍌 ☎
pi_104492397
En ja, een enter voor- of na je <?php ?> tags is óók output!
pi_104492462
quote:
14s.gif Op donderdag 17 november 2011 21:31 schreef KomtTijd... het volgende:
En ja, een enter voor- of na je <?php ?> tags is óók output!
Daar doelde ik (voornamelijk) op ja :9
💍 💍 💍 💍 💍 💍 🍌 ☎
pi_104494294
Klopt!!! grrrr..

Met ob_end_clean(); heb ik die opgeruimd en de headers werken weer naar behoren! :)
Just say hi!
pi_104501532
Ik hoop voor je dat je niet direct alle bestanden in de DB opslaat. :o .
Het kan maar is niet aan te raden.
Redacted
pi_104503010
LOL maar natuurlijk niet! :) daarvoor is een server toch? ;)
Just say hi!
  vrijdag 18 november 2011 @ 10:12:42 #100
75592 GlowMouse
l'état, c'est moi
pi_104504984
quote:
0s.gif Op vrijdag 18 november 2011 01:45 schreef cablegunmaster het volgende:
Ik hoop voor je dat je niet direct alle bestanden in de DB opslaat. :o .
je ziet ''readfile' staan?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104528556
1
2
3
4
5
<?php
$string 
"[onzin] [tk] Mooie auto!";
$parsed preg_replace("/\[(*+.)\]/","<span class='topictag'>\\1</span>",$string);
echo 
$parsed;
?>
Hoe zou dit moeten werken?

Compilation failed: nothing to repeat at offset 3 :P
pi_104528826
Wat moet (*+.) matchen? Bedoel je niet (.+) ofzo?
  vrijdag 18 november 2011 @ 21:13:48 #103
75592 GlowMouse
l'état, c'est moi
pi_104529037
En zoek op greediness.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104530758
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. :P Iets meer info mag wel... ;)

[ Bericht 38% gewijzigd door GSMboy op 18-11-2011 21:57:08 ]
pi_104530917
In dit specifieke geval? (^[\[\]]+)

kortom: match één of meer karakters (+), die niet (^) voorkomt in de lijst tussen [], kortom die niet [ of ] zijn.
pi_104542966
quote:
0s.gif Op vrijdag 18 november 2011 10:12 schreef GlowMouse het volgende:

[..]

je ziet ''readfile' staan?
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.
Redacted
pi_104543473
quote:
0s.gif Op zaterdag 19 november 2011 05:28 schreef cablegunmaster het volgende:

[..]

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.
Zijn beide oplossingen toen getest en met elkaar vergeleken?
pi_104543549
quote:
3s.gif Op vrijdag 18 november 2011 21:45 schreef KomtTijd... het volgende:
In dit specifieke geval? (^[\[\]]+)

kortom: match één of meer karakters (+), die niet (^) voorkomt in de lijst tussen [], kortom die niet [ of ] zijn.
Een ^ aan het begin van een regex betekent iets anders dan een ^ als eerste teken tussen []. Bedoel je misschen
1([^\[\]]+)
  zaterdag 19 november 2011 @ 11:46:36 #109
75592 GlowMouse
l'état, c'est moi
pi_104546037
quote:
0s.gif Op zaterdag 19 november 2011 09:05 schreef Light het volgende:

[..]

Zijn beide oplossingen toen getest en met elkaar vergeleken?
dat hoeft niet, files van een harddisk kunnen door een webserver veel efficiënter geserveerd worden
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104546138
quote:
0s.gif Op zaterdag 19 november 2011 09:14 schreef Light het volgende:

[..]

Een ^ aan het begin van een regex betekent iets anders dan een ^ als eerste teken tussen []. Bedoel je misschen
[ code verwijderd ]

De regex begint al met een /, volgens mij match jij nu níét [ en wél ]. Niet getest overigens.
  zaterdag 19 november 2011 @ 12:32:08 #111
75592 GlowMouse
l'état, c'est moi
pi_104547474
jullie hebben het allebei fout

"/\\[[^\\]]/"

ongetest :P
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104548952
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$data_L 
mysql_query($query_L);

while(
$row mysql_fetch_assoc($data_L))
{
    
$query_R "SELECT * FROM `Rechts` WHERE 'Name'=".$row['Name']." AND 'Size'=".$row['Size'];
    
$data_R mysql_query($query_R);

    if(
mysql_num_rows($data_R) >= 1)
    {
        
//doe iets
    
}
    else
    {
        
$query_R "SELECT * FROM `Rechts` WHERE 'Name'=".$row['Name']." AND 'Size'=".$row['Size']." AND 'location=".$row['location'];
        
$data_R2 mysql_query($query_R2);
        if(...)
        
//enzovoort
    
}
}
?>
ik heb alleen het idee dat dit veel te inefficient is :+ en dat beter moet kunnen.. :P

iemand tips waar ik eventueel naar kan kijken/zoeken?
  zaterdag 19 november 2011 @ 13:34:04 #113
75592 GlowMouse
l'état, c'est moi
pi_104549323
je database-opzet lijkt me al fout
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas zaterdag 19 november 2011 @ 13:37:58 #114
862 Arcee
Look closer
pi_104549433
quote:
0s.gif Op zaterdag 19 november 2011 13:20 schreef mschol het volgende:
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)
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.
pi_104550732
quote:
14s.gif Op zaterdag 19 november 2011 13:34 schreef GlowMouse het volgende:
je database-opzet lijkt me al fout
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)

quote:
0s.gif Op zaterdag 19 november 2011 13:37 schreef Arcee het volgende:

[..]

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.
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 ]
  zaterdag 19 november 2011 @ 16:49:28 #116
298746 Dalando
18, niet meer gefrustreerd
pi_104555186
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.
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zaterdag 19 november 2011 @ 16:54:18 #117
218617 YazooW
bel de wouten!
pi_104555350
Gewoon met str_replace?
  zaterdag 19 november 2011 @ 16:54:54 #118
298746 Dalando
18, niet meer gefrustreerd
pi_104555373
quote:
0s.gif Op zaterdag 19 november 2011 16:54 schreef YazooW het volgende:
Gewoon met str_replace?
preg_ of str_ ja, maar hoe?
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zaterdag 19 november 2011 @ 16:57:20 #119
218617 YazooW
bel de wouten!
pi_104555461
De replace value gewoon leeg laten lijkt mij.
  zaterdag 19 november 2011 @ 16:58:23 #120
298746 Dalando
18, niet meer gefrustreerd
pi_104555497
quote:
0s.gif Op zaterdag 19 november 2011 16:57 schreef YazooW het volgende:
De replace value gewoon leeg laten lijkt mij.
No shit. En nu nog de reguliere expressie .

Ik kwam op dit:

1
2
3
<?php
$bericht 
preg_replace("/<a (.*)>(.*)<\/a>/iU"""$bericht);
?>

Maar hier kan nogsteeds iets doorheen komen.
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zaterdag 19 november 2011 @ 17:17:31 #121
75592 GlowMouse
l'état, c'est moi
pi_104556071
quote:
7s.gif Op zaterdag 19 november 2011 16:49 schreef Dalando het volgende:
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.
is het html? Strip_tags is wel handig.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 19 november 2011 @ 19:49:04 #122
298746 Dalando
18, niet meer gefrustreerd
pi_104561373
quote:
0s.gif Op zaterdag 19 november 2011 17:17 schreef GlowMouse het volgende:

[..]

is het html? Strip_tags is wel handig.
Dat is precies wat ik zoek. Nooit van die functie gehoord :')

Bedankt GM _O_
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zaterdag 19 november 2011 @ 19:58:29 #123
298746 Dalando
18, niet meer gefrustreerd
pi_104561751
Eigenlijk niet helemaal wat ik zoek, ik wil ook nog de HTML die er in zit nog verwijderen..
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
pi_104566328
Doet hij ook toch?
💍 💍 💍 💍 💍 💍 🍌 ☎
pi_104570421
quote:
0s.gif Op zaterdag 19 november 2011 21:41 schreef Pizzalucht het volgende:
Doet hij ook toch?
Met strip_tags() maak je van
1foo <a href="bar">bar</a> baz
de gewone string "foo bar baz". Ik denk dat Dalando "foo baz" wil krijgen, en dan heb je weinig aan strip_tags.
  zaterdag 19 november 2011 @ 23:32:54 #126
75592 GlowMouse
l'état, c'est moi
pi_104570987
En dan krijg op een dag xhtml-input. Als hij dat wil, kun je beter een domtree parser gebruiken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104572338
DOMDocument moet goed genoeg zijn. Die heeft gewoon een getElementsByTagName method.
  zondag 20 november 2011 @ 14:15:51 #128
298746 Dalando
18, niet meer gefrustreerd
pi_104585434
Maar hoe gebruik ik die?
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  maandag 21 november 2011 @ 16:14:33 #129
218617 YazooW
bel de wouten!
pi_104633320
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?
  maandag 21 november 2011 @ 16:18:00 #130
75592 GlowMouse
l'état, c'est moi
pi_104633471
importeer via de command line
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 21 november 2011 @ 16:48:29 #131
218617 YazooW
bel de wouten!
pi_104634839
En hoe doe ik dat dan? Heb daar totaal geen ervaring mee.
Ik run mijn MySQL/PHP trouwens via Xampp.
  maandag 21 november 2011 @ 16:49:15 #132
305897 remi1986
This MF is infected by madness
pi_104634875
Je kan ook bigdump gebruiken

http://www.ozerov.de/bigdump/
pi_104634964
Of gewoon het vinkje aanzetten bij "Sta het onderbreken van de import toe wanneer het script herkent dat de tijdslimiet nadert."
  maandag 21 november 2011 @ 16:52:11 #134
218617 YazooW
bel de wouten!
pi_104635040
quote:
14s.gif Op maandag 21 november 2011 16:50 schreef KomtTijd... het volgende:
Of gewoon het vinkje aanzetten bij "Sta het onderbreken van de import toe wanneer het script herkent dat de tijdslimiet nadert."
Alle keren dat ik het heb geprobeerd stond die optie aangevinkt.
Ben het nu aan het proberen met die "bigdump" die hierboven gepost is.
  maandag 21 november 2011 @ 17:00:17 #135
218617 YazooW
bel de wouten!
pi_104635512
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 *O*
  dinsdag 22 november 2011 @ 09:19:47 #136
305897 remi1986
This MF is infected by madness
pi_104665624
quote:
0s.gif Op maandag 21 november 2011 17:00 schreef YazooW het volgende:
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 *O*
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! ^O^
pi_104665758
quote:
0s.gif Op dinsdag 22 november 2011 09:19 schreef remi1986 het volgende:

[..]

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! ^O^
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 :P
  dinsdag 22 november 2011 @ 11:03:00 #138
75592 GlowMouse
l'état, c'est moi
pi_104668001
quote:
0s.gif Op dinsdag 22 november 2011 09:27 schreef Pakspul het volgende:

[..]

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 :P
Dat laatste kan soberzo niet.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 22 november 2011 @ 11:04:35 #139
305897 remi1986
This MF is infected by madness
pi_104668042
En met de Linux terminal gaat het sowieso supersnel dat het vaak niet eens nodig is :)
  dinsdag 22 november 2011 @ 22:44:03 #140
37634 wobbel
Da WoBBeL King
pi_104699971
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
  dinsdag 22 november 2011 @ 22:45:13 #141
75592 GlowMouse
l'état, c'est moi
pi_104700063
Dat kan, dan moet je 2x joinen en een alias gebruiken voor tabel B en voor naam uit tabel B.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_104702841
Dat lijkt wel verrot veel op wat ik de laatste tijd mee bezig ben geweest! Voorbeeldje van wat glowmouse bedoelt:

1
2
3
4
5
6
    SELECT     *
        FROM flightdb_flights
        LEFT JOIN feusers_properties AS feu1
            ON (firstpilot_feu_id = feu1.userid)
        LEFT JOIN feusers_properties AS feu2
            ON (secondpilot_feu_id = feu2.userid)
  dinsdag 22 november 2011 @ 23:39:21 #143
75592 GlowMouse
l'état, c'est moi
pi_104702894
quote:
0s.gif Op dinsdag 22 november 2011 22:45 schreef GlowMouse het volgende:
Dat kan, dan moet je 2x joinen en een alias gebruiken voor tabel B en voor naam uit tabel B.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 26 november 2011 @ 20:06:37 #144
298746 Dalando
18, niet meer gefrustreerd
pi_104852724
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?
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zaterdag 26 november 2011 @ 20:09:56 #145
75592 GlowMouse
l'état, c'est moi
pi_104852879
Momenteel loopt dat via php, maar er zijn experimenten met node.js.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zondag 27 november 2011 @ 11:19:31 #146
37634 wobbel
Da WoBBeL King
pi_104870321
Tsenk joe for joellie help!!
  zondag 27 november 2011 @ 15:25:56 #147
298746 Dalando
18, niet meer gefrustreerd
pi_104878948
quote:
0s.gif Op zaterdag 26 november 2011 20:09 schreef GlowMouse het volgende:
Momenteel loopt dat via php, maar er zijn experimenten met node.js.
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?
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
pi_104879157
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.
- - = |randommusicvideos | = - - | - - = | prettyendless | = - -
  zondag 27 november 2011 @ 15:33:59 #149
298746 Dalando
18, niet meer gefrustreerd
pi_104879224
quote:
0s.gif Op zondag 27 november 2011 15:32 schreef RPG het volgende:
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.
Dus je hebt een html pagina waar je bepaalde elementen vanaf wilt krijgen?
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
pi_104879456
quote:
7s.gif Op zondag 27 november 2011 15:33 schreef Dalando het volgende:

[..]

Dus je hebt een html pagina waar je bepaalde elementen vanaf wilt krijgen?
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 :P
- - = |randommusicvideos | = - - | - - = | prettyendless | = - -
  dinsdag 29 november 2011 @ 10:30:20 #151
267443 Cue_
Cuecumbergirl
pi_104958776
Even een array vraagje

Ik heb een array met de gegevens ($data)
1
2
3
4
5
6
7
8
Array
(
    [27-11-2011] => 392.97
    [26-11-2011] => 385.71
    [24-11-2011] => 516.98
    [23-11-2011] => 513.14
    [22-11-2011] => 516.01
)

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?
  dinsdag 29 november 2011 @ 10:38:16 #152
91039 mstx
2x1/2 = 1/2 x 1/2
pi_104959002
1
2
3
4
5
6
7
8
9
10
11
<?php
$datums 
= array('22-11-2011''23-11-2011''24-11-2011''25-11-2011''26-11-2011''27-11-2011');
$xas=array();
foreach ( 
$datums as $v ) {
 if ( isset(
$data[$v]) ) {
  
$xas[$v] = $data[$v];
 } else {
  
$xas[$v] = 0;
 }
}
?>
Zoiets?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  dinsdag 29 november 2011 @ 10:49:08 #153
267443 Cue_
Cuecumbergirl
pi_104959319
:D idd O+

Dit er van gemaakt uiteindelijk:
1
2
3
4
5
6
7
8
9
10
foreach ( $d as $v) {
 if ( isset($data[$v]) ) {
 array_push($yas,$data[$v]);

 } else {
   array_push($yas, 0);
 }
 array_push($xas,substr($v,0,5));
;
}
pi_104960923
quote:
0s.gif Op dinsdag 29 november 2011 10:38 schreef mstx het volgende:

[ code verwijderd ]

Zoiets?
Ik zou het zo doen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$data 
= array('27-11-2011' => 392.97'26-11-2011' => 385.71'24-11-2011' => 516.98'23-11-2011' => 513.14'22-11-2011' => 516.01);

$data_full = array();

$data_dates array_keys($data);
$date_start strtotime(implode('-'array_reverse(explode('-'end($data_dates)))));
$date_end strtotime(implode('-'array_reverse(explode('-'reset($data_dates)))));

$data_full[date('d-m-Y'$date_start)] = $data[date('d-m-Y'$date_start)];

while(
$date_start $date_end) {
    
$date_start += 86400;
    
    if(!isset(
$data[date('d-m-Y'$date_start)])) {
        
$data_full[date('d-m-Y'$date_start)] = 0;
    }else{
        
$data_full[date('d-m-Y'$date_start)] = $data[date('d-m-Y'$date_start)];
    }
}

$data_full array_reverse($data_full);

print_r($data_full);
?>
  dinsdag 29 november 2011 @ 12:15:36 #155
267443 Cue_
Cuecumbergirl
pi_104962254
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.
  dinsdag 29 november 2011 @ 12:16:15 #156
84244 Scorpie
Abject en infaam!
pi_104962281
quote:
0s.gif Op dinsdag 29 november 2011 12:15 schreef Cue_ het volgende:
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.
Dreamweaver is een ontwikkeltool en geen pakket. En voor zo`n foto gallery kan je kijken naar coppermine.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  dinsdag 29 november 2011 @ 12:23:44 #157
267443 Cue_
Cuecumbergirl
pi_104962555
quote:
0s.gif Op dinsdag 29 november 2011 12:16 schreef Scorpie het volgende:
Dreamweaver is een ontwikkeltool en geen pakket. En voor zo`n foto gallery kan je kijken naar coppermine.
Doel ook meer op ontwikkeltools. Want het liefst zou ie het zelf maken (evt met hulp van mij).
pi_104963516
quote:
0s.gif Op zondag 27 november 2011 15:39 schreef RPG het volgende:

[..]

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 :P
Iemand die me op weg kan helpen?
- - = |randommusicvideos | = - - | - - = | prettyendless | = - -
  dinsdag 29 november 2011 @ 12:55:30 #159
305897 remi1986
This MF is infected by madness
pi_104963729
quote:
1s.gif Op dinsdag 29 november 2011 12:50 schreef RPG het volgende:

[..]

Iemand die me op weg kan helpen?
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?
pi_104966691
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.
- - = |randommusicvideos | = - - | - - = | prettyendless | = - -
  dinsdag 29 november 2011 @ 20:56:52 #161
218617 YazooW
bel de wouten!
pi_104983780
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$i
=0;
$pix=1;
$divId=1;
$posLeft=0;
$posTop=0;

$var="px";
while(
$i<=800)
  {
  echo 
"<div id=\"$divId\" style=\"position:absolute; height:$pix$var; width:$pix$var; background:#000000; top:$posTop$var; left:$posLeft$var;\"></div>";

  
$divId++;
  
$posLeft++;
  
$i++;
  }
?>

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?
  dinsdag 29 november 2011 @ 20:59:53 #162
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_104983952
quote:
0s.gif Op dinsdag 29 november 2011 20:56 schreef YazooW het volgende:

[ code verwijderd ]

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?
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.
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  dinsdag 29 november 2011 @ 21:00:22 #163
75592 GlowMouse
l'état, c'est moi
pi_104983973
of beter, een for-loop
1
2
3
4
5
6
7
<?php
for($i=0$i<800$i++) {
  for(
$j=0$j<800$j++) {
    
// maak hier je div met coördinaten (i,j)
  
}
}
?>
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 29 november 2011 @ 21:00:50 #164
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_104984006
Liever nog een for loop idd. Maar dan met de eerste uiteraard <600 (zal typfoutje zijn)
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  dinsdag 29 november 2011 @ 21:08:25 #165
218617 YazooW
bel de wouten!
pi_104984446
Thanks, het is gelukt!
Lijkt nu trouwens wel een beetje op een slideIn van jQuery hoe mijn browser nu die divjes opbouwt _O-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$pix
=1;
$divId=1;

$var="px";

for(
$i=0$i<600$i++) {
  for(
$j=0$j<800$j++) {
    echo 
"<div id=\"$divId\" style=\"position:absolute; height:$pix$var; width:$pix$var; background:#000000; top:$j$var; left:$i$var;\"></div>";

  
$divId++;
  
  }
}
?>

Nu zit ik alleen nog met het gedeelte van die variabelen in de div.
Even een voorbeeld hoe ik de top invul:
1top:$j$var
Op dit moment werkt het zo wel, maar dit kan ook anders volgens mij, om de een of andere manier lijkt mij dat dit niet de juiste manier is.
  dinsdag 29 november 2011 @ 21:12:16 #166
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_104984688
quote:
0s.gif Op dinsdag 29 november 2011 21:08 schreef YazooW het volgende:
Thanks, het is gelukt!
Lijkt nu trouwens wel een beetje op een slideIn van jQuery hoe mijn browser nu die divjes opbouwt _O-
[ code verwijderd ]

Nu zit ik alleen nog met het gedeelte van die variabelen in de div.
Even een voorbeeld hoe ik de top invul:
[ code verwijderd ]

Op dit moment werkt het zo wel, maar dit kan ook anders volgens mij, om de een of andere manier lijkt mij dat dit niet de juiste manier is.
Waarom hoog je de top steeds op? Die hoort toch constant te zijn, aangezien het een rij betreft?
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  dinsdag 29 november 2011 @ 21:14:05 #167
218617 YazooW
bel de wouten!
pi_104984787
quote:
0s.gif Op dinsdag 29 november 2011 21:12 schreef U.N.K.L.E. het volgende:

[..]

Waarom hoog je de top steeds op? Die hoort toch constant te zijn, aangezien het een rij betreft?
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.
  dinsdag 29 november 2011 @ 21:15:05 #168
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_104984837
quote:
0s.gif Op dinsdag 29 november 2011 21:14 schreef YazooW het volgende:

[..]

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.
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.
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  dinsdag 29 november 2011 @ 21:15:53 #169
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_104984874
De $j wordt steeds verhoogt (tot hij 800 bereikt). Je top loopt dus op van 0 tot 800px. Dat kan nooit de bedoeling zijn.
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  dinsdag 29 november 2011 @ 21:16:49 #170
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_104984933
[div style="top:0px"] .. [div style="top:800px"] krijg e je nu
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  dinsdag 29 november 2011 @ 21:22:35 #171
218617 YazooW
bel de wouten!
pi_104985218
$i en $j bij top en left omgedraaid.
  dinsdag 29 november 2011 @ 21:24:30 #172
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_104985333
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.
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  dinsdag 29 november 2011 @ 21:25:29 #173
218617 YazooW
bel de wouten!
pi_104985390
Ik wil juist met pixels werken omdat ik alle pixels individueel wil gaan aansturen.
  dinsdag 29 november 2011 @ 21:26:33 #174
85514 ralfie
!Yvan eht nioj
pi_104985444
quote:
0s.gif Op dinsdag 29 november 2011 21:25 schreef YazooW het volgende:
Ik wil juist met pixels werken omdat ik alle pixels individueel wil gaan aansturen.
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?
  dinsdag 29 november 2011 @ 21:28:03 #175
218617 YazooW
bel de wouten!
pi_104985526
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.
  dinsdag 29 november 2011 @ 21:34:24 #176
218617 YazooW
bel de wouten!
pi_104985866
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.
  woensdag 30 november 2011 @ 12:22:22 #177
343369 Laser.
Love Always Shines
pi_105002754
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.
  woensdag 30 november 2011 @ 12:31:41 #178
75592 GlowMouse
l'état, c'est moi
pi_105003049
wat heb je al?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 30 november 2011 @ 12:35:55 #179
343369 Laser.
Love Always Shines
pi_105003158
Momenteel dit:

1
2
3
if(preg_match('/\PL/', $_POST['veld'])){
     print 'error veld';
}

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:

1
2
3
        if(!preg_match('#^[a-z. ]+$#i', $_POST['initialen'])){
            print 'error initialen';
        }


[ Bericht 35% gewijzigd door Laser. op 30-11-2011 12:41:01 ]
  woensdag 30 november 2011 @ 12:42:09 #180
75592 GlowMouse
l'état, c'est moi
pi_105003328
\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 $.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 30 november 2011 @ 17:12:13 #181
330093 McCandless
I'm supertramp
pi_105012520
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?
  woensdag 30 november 2011 @ 17:13:42 #182
75592 GlowMouse
l'état, c'est moi
pi_105012576
Je database lay-out.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 30 november 2011 @ 17:16:19 #183
330093 McCandless
I'm supertramp
pi_105012678
quote:
0s.gif Op woensdag 30 november 2011 17:13 schreef GlowMouse het volgende:
Je database lay-out.
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?
  woensdag 30 november 2011 @ 17:22:24 #184
75592 GlowMouse
l'état, c'est moi
pi_105012889
Al je data staat in Excel?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 30 november 2011 @ 17:24:37 #185
75592 GlowMouse
l'état, c'est moi
pi_105012957
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)
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_105013018
Een Excel bestand gebruiken als database voor je webshop?
💍 💍 💍 💍 💍 💍 🍌 ☎
pi_105013166
quote:
5s.gif Op woensdag 30 november 2011 17:12 schreef McCandless het volgende:
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?
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.
  woensdag 30 november 2011 @ 17:33:40 #188
330093 McCandless
I'm supertramp
pi_105013264
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. :).
pi_105038861
Hoe krijg ik de dagen van een specifieke week uit 'n jaar? Ik heb momenteel:
1
2
3
4
5
<?php
    
for($day 1$day <= 7$day++) {
        
$days[] = date('m/d/Y'strtotime($year"W" $week_number $day)) . "\n";
    }
?>
Deze werkt bij sommige weeknummers wel, maar bijv. als het jaar 2011 is, en het week nummer 1, dan krijg ik de volgende array:
1array(7) { [0]=> string(11) "03/14/2011 " [1]=> string(11) "03/21/2011 " [2]=> string(11) "03/28/2011 " [3]=> string(11) "04/04/2011 " [4]=> string(11) "04/11/2011 " [5]=> string(11) "04/18/2011 " [6]=> string(11) "04/25/2011 " } 


[ Bericht 0% gewijzigd door Diabox op 01-12-2011 03:18:18 ]
pi_105040332
Waarschijnlijk is niet duidelijk welke string er precies in strtotime wordt gebruikt, of de string is niet eenduidig om te zetten naar een timestamp.
1
2
3
4
5
6
<?php
for($day 1$day <= 7$day++) {
    
$formatted sprintf('%4d-W%d-%d'$year$week_number$day);
    
$days[] = date('m/d/Y'strtotime($formatted)) . "\n";
}
?>
En waarom voeg je een \n toe achter die datum? Dat kan bij het weergeven ook nog wel. (Ik zou denk ik ook gewoon kiezen om timestamps (of DateTime objecten) door te geven en de exacte notatie op het scherm pas bij daadwerkelijke weergave bepalen.)
pi_105043202
quote:
2s.gif Op woensdag 30 november 2011 17:33 schreef McCandless het volgende:
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.
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.

quote:
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. :).
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.
pi_105051815
quote:
0s.gif Op donderdag 1 december 2011 07:44 schreef Light het volgende:
Waarschijnlijk is niet duidelijk welke string er precies in strtotime wordt gebruikt, of de string is niet eenduidig om te zetten naar een timestamp.
[ code verwijderd ]

En waarom voeg je een \n toe achter die datum? Dat kan bij het weergeven ook nog wel. (Ik zou denk ik ook gewoon kiezen om timestamps (of DateTime objecten) door te geven en de exacte notatie op het scherm pas bij daadwerkelijke weergave bepalen.)
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:
1array(7) { [0]=> string(11) "01/01/1970 " [1]=> string(11) "01/01/1970 " [2]=> string(11) "01/01/1970 " [3]=> string(11) "01/01/1970 " [4]=> string(11) "01/01/1970 " [5]=> string(11) "01/01/1970 " [6]=> string(11) "01/01/1970 " }

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
  donderdag 1 december 2011 @ 16:51:59 #193
343369 Laser.
Love Always Shines
pi_105058254
-edit-
opgelost!

[ Bericht 99% gewijzigd door Laser. op 01-12-2011 17:26:55 ]
pi_105069551
quote:
0s.gif Op donderdag 1 december 2011 03:04 schreef Diabox het volgende:
Hoe krijg ik de dagen van een specifieke week uit 'n jaar? Ik heb momenteel:
[ code verwijderd ]

Deze werkt bij sommige weeknummers wel, maar bijv. als het jaar 2011 is, en het week nummer 1, dan krijg ik de volgende array:
[ code verwijderd ]

$week_number moet met een 0 beginnen indien hij <2 digits is. bij week 01 werkt het dus gewoon, of week 10. etc.
Of toch du vader?
pi_105070240
quote:
2s.gif Op donderdag 1 december 2011 20:54 schreef Luchtkoker het volgende:

[..]

$week_number moet met een 0 beginnen indien hij <2 digits is. bij week 01 werkt het dus gewoon, of week 10. etc.
Thanks, voeg nu 'n 0 toe als <2 digits. Was me niet opgevallen dat ie het wel deed bij weken bestaande uit 2 digits :')
pi_105082630
quote:
0s.gif Op donderdag 1 december 2011 21:06 schreef Diabox het volgende:

[..]

Thanks, voeg nu 'n 0 toe als <2 digits. Was me niet opgevallen dat ie het wel deed bij weken bestaande uit 2 digits :')
Gewoon W%d vervangen door W%02d is dan de makkelijkste oplossing. :)
pi_105084771
quote:
0s.gif Op vrijdag 2 december 2011 00:36 schreef Light het volgende:

[..]

Gewoon W%d vervangen door W%02d is dan de makkelijkste oplossing. :)
^O^
pi_105103195
quote:
15s.gif Op woensdag 30 november 2011 17:26 schreef Pizzalucht het volgende:
Een Excel bestand gebruiken als database voor je webshop?
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.

quote:
0s.gif Op woensdag 30 november 2011 17:31 schreef Diabox het volgende:

[..]

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.
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
class Klant{

function 
insertKlant($data){
//functie
 
global $db;
}

function 
deleteKlant($id){
//functie
return true;
}
}
?>

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 ]
Redacted
pi_105104831
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 :P), maar gewoon volledig Engels. En schrijf vanaf het begin af aan gewoon goede documentatie bij je code.
pi_105130648
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? :P

[ Bericht 15% gewijzigd door cablegunmaster op 03-12-2011 13:34:10 ]
Redacted
pi_105136026
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class Customer {
    private 
$name;
    public function 
getName() { return $this->name; }
    public function 
setName($name) { $this->name $name; }

    private 
$address;
    public function 
getAddress() { return $this->address; }
    public function 
setAddress($address) { $this->address $address; }
    
// More properties ... :)

    
public function __construct($name ''$address '')
    {
        
$this->setName($name);
        
$this->setAddress($address);
    }

    public function 
save()
    {
        
// save logic here
    
}

    public function 
delete()
    {
        
// delete logic here
    
}
}
?>

En ja, je kunt objecten in een sessie opslaan. Dan moet je ze serializen.
pi_105248716
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?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$adres 
strip_tagsget_the_term_list($post->ID'adres') );
$postcode strip_tagsget_the_term_list($post->ID'postcode') );  
$httpadres "http://maps.google.com/maps/api/geocode/json?address=";
$httpadres .= str_replace(" ""+"$adres);
$httpadres .= "+";
$httpadres .= str_replace(" ""+"$postcode);
$httpadres .= "&sensor=false";

$geocode=file_get_contents($httpadres);

$outputjson_decode($geocode);

$lat $output->results[0]->geometry->location->lat;
$long $output->results[0]->geometry->location->lng;
?>

Ik echo nu ook $httpadres, dat blijkt gewoon een correcte link te zijn.

edit: gister werkte de code nog wel
  dinsdag 6 december 2011 @ 13:15:57 #203
91039 mstx
2x1/2 = 1/2 x 1/2
pi_105249044
quote:
0s.gif Op dinsdag 6 december 2011 13:05 schreef _superboer_ het volgende:
edit: gister werkte de code nog wel
Teveel requests gedaan?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_105249154
quote:
0s.gif Op dinsdag 6 december 2011 13:15 schreef mstx het volgende:

[..]

Teveel requests gedaan?
Hoe worden requests geteld? Gaat het om dan om het aantal requests vanaf de domein japansesushi.nl of vanaf mijn ip-adres?
  dinsdag 6 december 2011 @ 13:21:30 #205
91039 mstx
2x1/2 = 1/2 x 1/2
pi_105249276
quote:
0s.gif Op dinsdag 6 december 2011 13:18 schreef _superboer_ het volgende:

[..]

Hoe worden requests geteld? Gaat het om dan om het aantal requests vanaf de domein japansesushi.nl of vanaf mijn ip-adres?
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.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_105249319
quote:
0s.gif Op dinsdag 6 december 2011 13:21 schreef mstx het volgende:

[..]

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.
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.
  dinsdag 6 december 2011 @ 15:26:25 #207
75592 GlowMouse
l'état, c'est moi
pi_105254067
quote:
0s.gif Op dinsdag 6 december 2011 13:18 schreef _superboer_ het volgende:

[..]

Hoe worden requests geteld?
Wie doet de request bij Google?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_105254761
Hij(met php op de server) doet de requests, met file_get_contents. Ik zou even iets van caching doen op het resultaat ;)
💍 💍 💍 💍 💍 💍 🍌 ☎
  dinsdag 6 december 2011 @ 20:06:50 #209
52200 ViPeRII
It's a good day to die
pi_105267342
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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
mysql_query('INSERT INTO toll_free_cross_corporation 
            (`LINE_NO`, 
             `CORPORATION_ID`,
             `BILL_PLAYER_ID`,
             `NODE_NO`,
             `ACCOUNT_NO`,
             `PAGE_NO`,
             `INVOICE_NO`,
             `INVOICE_DATE`,
             `ACCOUNTING_CODE`,
             `ACCOUNTING_DESCRIPTION`,
             `ACCOUNTING_ID_DESCRIPTION`,
             `NUMBER_CALLED_FROM`,
             `DATE_CALLED`,
             `TIME_CALLED`,
             `CALLER_NUMBER`,
             `PLACE_CALLED_FROM`,
             `MINUTES_CALLED`,
             `ROUTED_FROM_NETWORK`,
             `ROUTED_FROM_NCP`,
             `ROUTED_FROM_RATE`,
             `ROUTED_FROM_TYPE`,
             `USAGE`,
             `PAYPHONE_USE_CHARGE`,
             `SURCHARGE`,
             `TOTAL`,
             `END_TIME`,
             `CALCULATED_RATE`,
             `MINUTES_TRANSLATED_TO_SECONDS`,
             `START_DATE_TIME_TIMESTAMP`,
             `END_DATE_TIME_TIMESTAMP`
        ) VALUES '.implode(',', $sql)) or die (mysql_errno() . ": ". mysql_error());
?>
Lijn 31 is volgens mij
) 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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
    foreach( $toll_free_cross_corporation_data_array as $row ) 
    {
            $sql[] = '("'.mysql_real_escape_string($row['LINE_NO']).'", 
                   "'.mysql_real_escape_string($row['CORPORATION_ID']).'",
                       "'.mysql_real_escape_string($row['BILL_PLAYER_ID']).'",
                   "'.mysql_real_escape_string($row['NODE_NO']).'",
                   "'.mysql_real_escape_string($row['ACCOUNT_NO']).'",
                   "'.mysql_real_escape_string($row['PAGE_NO']).'",
                               "'.mysql_real_escape_string($row['INVOICE_NO']).'",
                        "'.mysql_real_escape_string($row['INVOICE_DATE']).'",
                   "'.mysql_real_escape_string($row['ACCOUNTING_CODE']).'",
                   "'.mysql_real_escape_string($row['ACCOUNTING_DESCRIPTION']).'",
                   "'.mysql_real_escape_string($row['ACCOUNTING_ID_DESCRIPTION']).'",
                   "'.mysql_real_escape_string($row['NUMBER_CALLED_FROM']).'",
                   "'.mysql_real_escape_string($row['DATE_CALLED']).'",
                   "'.mysql_real_escape_string($row['TIME_CALLED']).'",
                   "'.mysql_real_escape_string($row['CALLER_NUMBER']).'",
                   "'.mysql_real_escape_string($row['PLACE_CALLED_FROM']).'",
                   "'.mysql_real_escape_string($row['MINUTES_CALLED']).'",
                   "'.mysql_real_escape_string($row['ROUTED_FROM_NETWORK']).'",
                   "'.mysql_real_escape_string($row['ROUTED_FROM_NCP']).'",
                   "'.mysql_real_escape_string($row['ROUTED_FROM_RATE']).'",
                   "'.mysql_real_escape_string($row['ROUTED_FROM_TYPE']).'",
                   "'.mysql_real_escape_string($row['USAGE']).'",
                   "'.mysql_real_escape_string($row['PAYPHONE_USE_CHARGE']).'",
                   "'.mysql_real_escape_string($row['SURCHARGE']).'",
                   "'.mysql_real_escape_string($row['TOTAL']).'",
                   "'.mysql_real_escape_string($row['END_TIME']).'",
                   "'.mysql_real_escape_string($row['CALCULATED_RATE']).'",
                   "'.mysql_real_escape_string($row['MINUTES_TRANSLATED_TO_SECONDS']).'",
                   "'.mysql_real_escape_string($row['START_DATE_TIME_TIMESTAMP']).'",
                   "'.mysql_real_escape_string($row['END_DATE_TIME_TIMESTAMP']).'"
                 )';
            }

?>

En de database is opgebouwd met de volgende gegevens:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
CREATE TABLE IF NOT EXISTS `toll_free_cross_corporation` 
(
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `LINE_NO` text NOT NULL,
  `PAGE_NO` int(11) NOT NULL,
  `CORPORATION_ID` text NOT NULL,
  `BILL_PLAYER_ID` text NOT NULL,
  `NODE_NO` text NOT NULL,
  `ACCOUNT_NO` text NOT NULL,
  `INVOICE_NO` text NOT NULL,
  `INVOICE_DATE` date NOT NULL,
  `ACCOUNTING_CODE` text NOT NULL,
  `ACCOUNTING_DESCRIPTION` text NOT NULL,
  `ACCOUNTING_ID_DESCRIPTION` text NOT NULL,
  `NUMBER_CALLED_FROM` text NOT NULL,
  `DATE_CALLED` date NOT NULL,
  `TIME_CALLED` time NOT NULL,
  `CALLER_NUMBER` text NOT NULL,
  `PLACE_CALLED_FROM` text NOT NULL,
  `MINUTES_CALLED` decimal(6,2) NOT NULL,
  `ROUTED_FROM_NETWORK` varchar(1) NOT NULL,
  `ROUTED_FROM_NCP` varchar(1) NOT NULL,
  `ROUTED_FROM_RATE` varchar(1) NOT NULL,
  `ROUTED_FROM_TYPE` varchar(2) NOT NULL,
  `USAGE` decimal(6,2) NOT NULL,
  `PAYPHONE_USE_CHARGE` decimal(6,2) NOT NULL,
  `SURCHARGE` decimal(6,2) NOT NULL,
  `TOTAL` decimal(6,2) NOT NULL,
  `END_TIME` time NOT NULL,
  `CALCULATED_RATE` decimal(4,4) NOT NULL,
  `MINUTES_TRANSLATED_TO_SECONDS` int(11) NOT NULL,
  `START_DATE_TIME_TIMESTAMP` text NOT NULL,
  `END_DATE_TIME_TIMESTAMP` text NOT NULL,
  PRIMARY KEY (`ID`)    
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";

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.
-- ViPeRII --
  dinsdag 6 december 2011 @ 20:46:18 #210
75592 GlowMouse
l'état, c'est moi
pi_105269268
verander mysql_query in echo en kijk wat eruit komt

let ook op je datatypes, text om een datum op te slaan is raar
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 december 2011 @ 20:54:19 #211
52200 ViPeRII
It's a good day to die
pi_105269659
quote:
14s.gif Op dinsdag 6 december 2011 20:46 schreef GlowMouse het volgende:
verander mysql_query in echo en kijk wat eruit komt

let ook op je datatypes, text om een datum op te slaan is raar
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...
-- ViPeRII --
  dinsdag 6 december 2011 @ 20:55:28 #212
75592 GlowMouse
l'état, c'est moi
pi_105269705
MySQL heeft ook een datumtype.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 december 2011 @ 21:15:09 #213
52200 ViPeRII
It's a good day to die
pi_105270575
Die gebruik ik ook ;)
-- ViPeRII --
pi_105282202
--edit
opgelost so far

[ Bericht 48% gewijzigd door Teeno op 07-12-2011 01:53:37 ]
pi_105283143
quote:
0s.gif Op dinsdag 6 december 2011 21:15 schreef ViPeRII het volgende:
Die gebruik ik ook ;)
Daar is anders niets van te zien in het create-statement van toll_free_cross_corporation.
pi_105293519
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
1
2
3
4
5
if (file_exists(DIR_DATABASE . $driver . '.php')) {
            require_once(DIR_DATABASE . $driver . '.php');
        } else {
            exit('Error: Could not find database file ' . DIR_DATABASE . $driver . '.php!');
        }
Geeft het volgende terug;
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.
  woensdag 7 december 2011 @ 14:06:50 #217
75592 GlowMouse
l'état, c'est moi
pi_105293804
Zoek op cwd of stel een absoluut pad in.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_105294137
quote:
0s.gif Op woensdag 7 december 2011 14:06 schreef GlowMouse het volgende:
Zoek op cwd of stel een absoluut pad in.
Het moet em ergens in de includes zitten, want als ik het volgende aanpas
1
2
// define('DIR_DATABASE', DIR_SYSTEM.'database/');
define('DIR_DATABASE', $_SERVER['DOCUMENT_ROOT'].'/OpenCart/system/database');
Loopt ie weer vast op de volgende
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
1
2
3
4
5
6
// DIR
define('INCLUDE_PATH', $_SERVER['DOCUMENT_ROOT'].'/OpenCart');

define('DIR_CATALOG', 'catalog/');
define('DIR_APPLICATION', DIR_CATALOG);
define('DIR_SYSTEM', 'system/');

Het setten van de INCLUDE_PATH in index.php gebeurt na de require_once('config.php');
1
2
// Set Include Path
ini_set('include_path', INCLUDE_PATH);

Wat zie ik over het hoofd :)
  woensdag 7 december 2011 @ 14:28:43 #219
75592 GlowMouse
l'état, c'est moi
pi_105294723
Ook de map voor je language file absoluut instellen dan maar. Of stel DIR_SYSTEM absoluut in.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_105294848
quote:
0s.gif Op woensdag 7 december 2011 14:28 schreef GlowMouse het volgende:
Ook de map voor je language file absoluut instellen dan maar. Of stel DIR_SYSTEM absoluut in.
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 ]
pi_105297274
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.
Redacted
  woensdag 7 december 2011 @ 15:40:34 #222
91039 mstx
2x1/2 = 1/2 x 1/2
pi_105297379
quote:
0s.gif Op woensdag 7 december 2011 15:37 schreef cablegunmaster het volgende:
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.
Verander /index\.php eens naar /index.php

Of probeer het anders eens zo:
1RewriteRule ^producten/(.*)/(.*)/$ /index.php?page=producten&gid=$1&product=$2 [L]
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  woensdag 7 december 2011 @ 15:42:37 #223
75592 GlowMouse
l'état, c'est moi
pi_105297470
^/?producten/(.*)/?(.*)/$
Die eerste .* kan nu 303/45 matchen
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_105297489
quote:
0s.gif Op woensdag 7 december 2011 15:42 schreef GlowMouse het volgende:
^/?producten/(.*)/?(.*)/$
Die eerste .* kan nu 303/45 matchen
Dat zal hem wel zijn. hoe kan ik dat voorkomen?
vraagteken weghalen :P

Solved :)

quote:
0s.gif Op woensdag 7 december 2011 15:40 schreef mstx het volgende:

[..]

Verander /index\.php eens naar /index.php

Of probeer het anders eens zo:
[ code verwijderd ]

Dankje :). zag hem net staan en had het ook net zo gedaan en dat werkte O+
Redacted
pi_105326589
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:

1
2
3
4
5
6
<?php
$videoplayer
->setSource('http://blabla.mpg');
$videoplayer->setDimensions($x$y);
$videoplayer->etc;
$videoplayer->start(); 
?>

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?
pi_105326612
quote:
0s.gif Op donderdag 8 december 2011 02:20 schreef Diabox het volgende:
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:
[ code verwijderd ]

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?
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.
Of toch du vader?
pi_105326617
quote:
2s.gif Op donderdag 8 december 2011 02:23 schreef Luchtkoker het volgende:

[..]

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.
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. ^O^
  donderdag 8 december 2011 @ 11:51:19 #228
305897 remi1986
This MF is infected by madness
pi_105332201
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

1
2
3
4
<?php
$controlegetal 
10112310549223002232100;
$controlegetal 98 - ($controlegetal 97);     //een echo hierna geeft 20
?>
pi_105332361
http://code.google.com/p/php-iban/

Volgende vond ik op php.net:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
function controleer_iban($iban) {
    $iban = str_replace(array(" ", "  ", "   ", "\t"), "", $iban);
    $iban = strtoupper(str_replace(" ", "", $iban));
    if(strlen($iban)>34)
        return false;
    $acceptabel = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0";
    $acceptabel = explode(" ", $acceptabel);
    for($i = 0; $i<strlen($iban); $i++) {
        if(in_array(substr($iban, $i, 1), $acceptabel) === false)
            return false;
    }
    $alfa = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z";
    $alfa = explode(" ", $alfa);
    for($i = 1; $i<27; $i++) {
        $alfa_replace[] = $i+9;
    }
    $controlegetal = str_replace($alfa, $alfa_replace, substr($iban, 4, strlen($iban)-4).substr($iban, 0, 2)."00");
    $controlegetal = 98 - (int)bcmod($controlegetal,97);
    if((int)$controlegetal === (int)substr($iban, 2, 2))
        return true;
    else
        return false;   
}
?>
💍 💍 💍 💍 💍 💍 🍌 ☎
  donderdag 8 december 2011 @ 12:05:21 #230
305897 remi1986
This MF is infected by madness
pi_105332672
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.
  donderdag 8 december 2011 @ 12:14:53 #231
75592 GlowMouse
l'état, c'est moi
pi_105333061
Het probleem is dat als jij 182316110001234567232100 invoert, er niet als 182316110001234567232100 mee wordt gerekend. Doe dit maar eens:
1
2
3
4
<?php
$a 
182316110001234567232100;
var_dump($a);
?>
Wat je kunt doen zonder bcmod, is het getal als string opslaan en dan zelf een staartdeling uitvoeren.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 8 december 2011 @ 12:20:15 #232
305897 remi1986
This MF is infected by madness
pi_105333234
quote:
0s.gif Op donderdag 8 december 2011 12:14 schreef GlowMouse het volgende:
Het probleem is dat als jij 182316110001234567232100 invoert, er niet als 182316110001234567232100 mee wordt gerekend. Doe dit maar eens:
[ code verwijderd ]

Wat je kunt doen zonder bcmod, is het getal als string opslaan en dan zelf een staartdeling uitvoeren.
Ik krijg inderdaad

1
2
3
<?php
string
(24"101123100549223002232100"
?>

Als ik vervolgens dat deel door 97 (dat bedoel je met staartdeling toch?) dan krijg ik

1
2
3
<?php
9.5086309658297E+16
?>

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 :P
  donderdag 8 december 2011 @ 12:23:56 #233
75592 GlowMouse
l'état, c'est moi
pi_105333330
Mensen die bang zijn van een staartdeling.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 8 december 2011 @ 12:30:34 #234
305897 remi1986
This MF is infected by madness
pi_105333524
quote:
9s.gif Op donderdag 8 december 2011 12:23 schreef GlowMouse het volgende:
Mensen die bang zijn van een staartdeling.
Het is niet dat ik er bang voor ben, maar dit is dan veel makkelijker

quote:
These functions are only available if PHP was configured with --enable-bcmath
  donderdag 8 december 2011 @ 18:26:22 #235
292596 Faux.
Fan van zichzelf
pi_105345887
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?
Hier schreef tong80 het volgende:
Faux is een FOK!held, zoals dat vroeger Gellarboy en Brechtje waren. Users die je koestert.
pi_105346245
quote:
0s.gif Op donderdag 8 december 2011 12:14 schreef GlowMouse het volgende:
Het probleem is dat als jij 182316110001234567232100 invoert, er niet als 182316110001234567232100 mee wordt gerekend. Doe dit maar eens:
[ code verwijderd ]

Wat je kunt doen zonder bcmod, is het getal als string opslaan en dan zelf een staartdeling uitvoeren.
Ik krijg trouwens als type float terug, ligt dat aan het feit dat ik 64bit OS heb ?
pi_105347297
quote:
0s.gif Op donderdag 8 december 2011 18:38 schreef Pakspul het volgende:

[..]

Ik krijg trouwens als type float terug, ligt dat aan het feit dat ik 64bit OS heb ?
Nee, dat komt omdat het getal groter is dan PHP_INT_MAX.
  vrijdag 9 december 2011 @ 09:50:47 #238
305897 remi1986
This MF is infected by madness
pi_105368271
quote:
0s.gif Op donderdag 8 december 2011 19:06 schreef Light het volgende:

[..]

Nee, dat komt omdat het getal groter is dan PHP_INT_MAX.
Anyway het is "opgelost". In ieder geval de functie werkt. PHP is opnieuw compiled met bc_math support :P
  vrijdag 9 december 2011 @ 14:30:22 #239
267443 Cue_
Cuecumbergirl
pi_105377458
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)
  vrijdag 9 december 2011 @ 14:33:15 #240
267443 Cue_
Cuecumbergirl
pi_105377579
laat maar denk ik :)
  zondag 11 december 2011 @ 11:24:03 #241
52200 ViPeRII
It's a good day to die
pi_105446432
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 :P
Hij moet dus zichzelf gaan itereren, maar als ik dat doe, krijg ik meer resultaten terug dan dat er rijen in mijn tabel zitten.
1
2
3
4
5
6
N_ID    |   CALLING_CARD_NO    |    CALLED_FROM   | START_TIMESTAMP   | END_TIMESTAMP
1       |     0123             |    BOSTON        | 1230000           | 1230020
2       |     0123             |    BOSTON        | 1230040           | 1230060
3       |     0123             |    CHINA         | 1230080           | 1230100
4       |     0123             |    NETHERLANDS   | 1245000           | 1245010
5       |     0124             |    TAIWAN        | 1230000           | 1230100
Waarbij dan dus rij 2 + 3 geselecteerd zouden moeten worden, maar niet 4 omdat die dan buitend mijn zoekgebied valt (buiten de 2 uur), en 2 + 3 eigenlijk om dat ik de resultaten meteen wil hebben, maar als ik het ID bijvoorbeeld heb van 3 omdat die foutief is, denk ik dat ik er ook nog wel uit kan komen. Wie kan mij helpen?

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
-- ViPeRII --
pi_105487492
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? :P
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.
Redacted
pi_105512469
quote:
0s.gif Op maandag 12 december 2011 11:43 schreef cablegunmaster het volgende:
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? :P
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.
Als er een foreign key op acc_id moet, moet je de tabel users wijzigen.
1
2
ALTER TABLE `users` ADD FOREIGN KEY (`acc_id`) REFERENCES `accounts` (`id`)
    ON DELETE CASCADE ON UPDATE RESTRICT;
pi_105513910
quote:
0s.gif Op zondag 11 december 2011 11:24 schreef ViPeRII het volgende:
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 :P
Hij moet dus zichzelf gaan itereren, maar als ik dat doe, krijg ik meer resultaten terug dan dat er rijen in mijn tabel zitten.
[ code verwijderd ]

Waarbij dan dus rij 2 + 3 geselecteerd zouden moeten worden, maar niet 4 omdat die dan buitend mijn zoekgebied valt (buiten de 2 uur), en 2 + 3 eigenlijk om dat ik de resultaten meteen wil hebben, maar als ik het ID bijvoorbeeld heb van 3 omdat die foutief is, denk ik dat ik er ook nog wel uit kan komen. Wie kan mij helpen?

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
Zoiets, denk ik.
1
2
3
4
5
6
7
8
9
10
SELECT n1 . * , n2 . *
FROM card n1
INNER JOIN card n2 ON n1.calling_card_no = n2.calling_card_no
WHERE n1.called_from <> n2.called_from
AND n2.id = (
    SELECT min( id )
    FROM card n
    WHERE n.id > n1.id
    AND n.calling_card_no = n1.calling_card_no
)
pi_105522473
quote:
0s.gif Op maandag 12 december 2011 21:46 schreef Light het volgende:

[..]

Als er een foreign key op acc_id moet, moet je de tabel users wijzigen.
[ code verwijderd ]
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.
Redacted
pi_105524371
quote:
0s.gif Op dinsdag 13 december 2011 01:15 schreef cablegunmaster het volgende:

[..]

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.
Bevatten de tabellen al data? En zijn de kolommen wel gelijk?

Wat levert dit op?
1
2
3
4
5
6
7
8
9
10
11
12
SELECT table_schema, table_name, column_name, column_type
FROM information_schema.columns
WHERE table_schema='db_name'
AND (
  (
    table_name = 'users' AND column_name = 'acc_id'
  )
  OR
  (
    table_name =  'accounts' AND column_name = 'id'
  )
)
  FOK!-Schrikkelbaas dinsdag 13 december 2011 @ 21:22:12 #247
1972 Swetsenegger
Egocentrische Narcist
pi_105551985
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)?
pi_105552845
1
2
3
4
5
6
SELECT product.*, count(order_content.ProductID) as productcount
FROM product, order_content
WHERE product.ID = order_content.ProductID
GROUP BY product.ID
ORDER BY productcount
LIMIT 0, 10

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.
pi_105553045
quote:
5s.gif Op dinsdag 13 december 2011 21:22 schreef Swetsenegger het volgende:
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)?
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?
pi_105553129
quote:
0s.gif Op dinsdag 13 december 2011 21:41 schreef Light het volgende:

[..]

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?
idd, gebruik Tinyant(1) als boolean.
pi_105553171
quote:
0s.gif Op dinsdag 13 december 2011 21:43 schreef Pakspul het volgende:

[..]

idd, gebruik Tinyant(1) als boolean.
Kleine mier? ;)
pi_105553497
quote:
0s.gif Op dinsdag 13 december 2011 21:44 schreef Light het volgende:

[..]

Kleine mier? ;)
ja, is de opvolger van een int :P
  FOK!-Schrikkelbaas dinsdag 13 december 2011 @ 21:51:46 #253
1972 Swetsenegger
Egocentrische Narcist
pi_105553639
quote:
0s.gif Op dinsdag 13 december 2011 21:41 schreef Light het volgende:

[..]

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?
Het heeft een geschiedenis :)
pi_105553862
quote:
0s.gif Op dinsdag 13 december 2011 21:51 schreef Swetsenegger het volgende:

[..]

Het heeft een geschiedenis :)
Had je wat aan de query?
  FOK!-Schrikkelbaas dinsdag 13 december 2011 @ 22:09:59 #255
1972 Swetsenegger
Egocentrische Narcist
pi_105554748
quote:
0s.gif Op dinsdag 13 december 2011 21:55 schreef Pakspul het volgende:

[..]

Had je wat aan de query?
Yep! Met wat kleine aanpassingen.
pi_105554848
quote:
0s.gif Op dinsdag 13 december 2011 21:51 schreef Swetsenegger het volgende:

[..]

Het heeft een geschiedenis :)
Alter Table ook ;)
  FOK!-Schrikkelbaas dinsdag 13 december 2011 @ 22:41:17 #257
1972 Swetsenegger
Egocentrische Narcist
pi_105556845
quote:
0s.gif Op dinsdag 13 december 2011 22:11 schreef Light het volgende:

[..]

Alter Table ook ;)
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.
pi_105562771
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 :P

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
define
('TIMEDHASH_MAX_TIME_SECONDS'1);
    
define('TIMEDHASH_ALGORITHM''sha256');
    
    function 
get_timedhash($str) {
    
        
$start_time microtime(true);
        
$end_time $start_time+TIMEDHASH_MAX_TIME_SECONDS;
        
$a0;
        
$new_str $str;
        
        while(
microtime(true) < $end_time) {
            
$new_str hash(TIMEDHASH_ALGORITHM$new_str.$a);
            
$a++;
        }
        
        return 
$new_str;
    
    }
    
    function 
match_timedhash($hash,$str) {
        
        
$max_time_seconds TIMEDHASH_MAX_TIME_SECONDS*1.5;
                
        
$start_time microtime(true);
        
$end_time $start_time+$max_time_seconds;
                
        
$a0;
        
$new_str $str;
                
        while(
microtime(true) < $end_time) {
                
            
$new_str hash(TIMEDHASH_ALGORITHM$new_str.$a);
                    
            if (
$new_str == $hash) return true;
                    
            
$a++;
                    
        }

        return 
false;
        
    }
    
    echo 
$hash get_timedhash('test');
    echo 
' ';
    
var_dump(match_timedhash($hash'test'));
    
    die();
?>
..///
  woensdag 14 december 2011 @ 10:13:29 #259
12348 _Flash_
Heeft altijd blackjack
pi_105567367
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 ;-)
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
  woensdag 14 december 2011 @ 10:50:21 #260
58834 Catbert
The evil HR Director.
pi_105568341
Een busy-wait van een seconde lang, nee dat is fijn...
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  woensdag 14 december 2011 @ 20:29:19 #261
292596 Faux.
Fan van zichzelf
pi_105590425
Hoe kan ik met PHP bij een pagina komen die beveiligd is met HTTP 401?
Hier schreef tong80 het volgende:
Faux is een FOK!held, zoals dat vroeger Gellarboy en Brechtje waren. Users die je koestert.
pi_105591894
quote:
7s.gif Op woensdag 14 december 2011 20:29 schreef Faux. het volgende:
Hoe kan ik met PHP bij een pagina komen die beveiligd is met HTTP 401?
Nou dan heb je de juiste variabelen nodig lijkt mij als ik het zo 1-2-3 lees.
Is de pagina van jezelf?
Redacted
  woensdag 14 december 2011 @ 20:58:13 #263
292596 Faux.
Fan van zichzelf
pi_105592087
quote:
0s.gif Op woensdag 14 december 2011 20:54 schreef cablegunmaster het volgende:

[..]

Nou dan heb je de juiste variabelen nodig lijkt mij als ik het zo 1-2-3 lees.
Is de pagina van jezelf?
Nee. Ik probeer nu een cURL-oplossing die ik ergens op internet gevonden heb. Even testen :)
Hier schreef tong80 het volgende:
Faux is een FOK!held, zoals dat vroeger Gellarboy en Brechtje waren. Users die je koestert.
pi_105593499
quote:
7s.gif Op woensdag 14 december 2011 20:58 schreef Faux. het volgende:

[..]

Nee. Ik probeer nu een cURL-oplossing die ik ergens op internet gevonden heb. Even testen :)
En anders kan het ook door een header mee te sturen, zie: http://www.electrictoolbo(...)g-username-password/
  woensdag 14 december 2011 @ 21:28:53 #265
292596 Faux.
Fan van zichzelf
pi_105593566
quote:
0s.gif Op woensdag 14 december 2011 21:27 schreef The_Terminator het volgende:

[..]

En anders kan het ook door een header mee te sturen, zie: http://www.electrictoolbo(...)g-username-password/
Dank je voor je bijdrage, maar de cURL-oplossing werkte :)
Hier schreef tong80 het volgende:
Faux is een FOK!held, zoals dat vroeger Gellarboy en Brechtje waren. Users die je koestert.
pi_105606406
quote:
0s.gif Op woensdag 14 december 2011 01:30 schreef wipes66 het volgende:
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 :P
[ code verwijderd ]

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.
pi_105607500
quote:
0s.gif Op donderdag 15 december 2011 08:20 schreef Pakspul het volgende:

[..]

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.
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.
  donderdag 15 december 2011 @ 10:31:14 #268
84244 Scorpie
Abject en infaam!
pi_105608642
quote:
0s.gif Op woensdag 14 december 2011 01:30 schreef wipes66 het volgende:
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 :P
[ code verwijderd ]

Altijd met salts gaan werken.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
  FOK!-Schrikkelbaas donderdag 15 december 2011 @ 19:22:52 #269
1972 Swetsenegger
Egocentrische Narcist
pi_105626454
quote:
0s.gif Op dinsdag 13 december 2011 21:37 schreef Pakspul het volgende:

[ code verwijderd ]

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.
Dit werkt met wat aanpassingen perfect:

1
2
3
4
5
6
SELECT produkten.*, count(order_content.product_id) as productcount
FROM produkten, order_content
WHERE produkten.product_id = order_content.product_id AND produkten.product_menu IS NOT NULL AND produkten.product_menu<>0
GROUP BY produkten.product_id
ORDER BY productcount DESC
LIMIT 0, 10

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 :{
pi_105627187
Volgens mij werkt het onderstaande gewoon met een datetime field
1
2
WHERE orders between order_date ('2010/01/01', 'yyyy/mm/dd')
AND order_date ('2010/12/31', 'yyyy/mm/dd');

Wat zou betekenen dat je query er als volgt uit komt te zien:

1
2
3
4
5
6
7
8
SELECT produkten.*, count(order_content.product_id) as productcount
FROM produkten, order_content
WHERE produkten.product_id = order_content.product_id AND produkten.product_menu IS NOT NULL  
AND orders between order_date ('2010/01/01', 'yyyy/mm/dd') AND order_date ('2010/12/31', 'yyyy/mm/dd')
AND produkten.product_menu<>0
GROUP BY produkten.product_id
ORDER BY productcount DESC
LIMIT 0, 10
  FOK!-Schrikkelbaas donderdag 15 december 2011 @ 19:54:28 #271
1972 Swetsenegger
Egocentrische Narcist
pi_105627973
Met wat aanpassingen lijkt het te werken, alleen duurt de query 59 seconden :P

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.
pi_105634847
quote:
0s.gif Op donderdag 15 december 2011 08:20 schreef Pakspul het volgende:

[..]

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.
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.
pi_105634924
quote:
14s.gif Op donderdag 15 december 2011 19:54 schreef Swetsenegger het volgende:
Met wat aanpassingen lijkt het te werken, alleen duurt de query 59 seconden :P

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.
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).
  FOK!-Schrikkelbaas donderdag 15 december 2011 @ 22:45:20 #274
1972 Swetsenegger
Egocentrische Narcist
pi_105636855
quote:
0s.gif Op donderdag 15 december 2011 22:08 schreef Light het volgende:

[..]

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).
  donderdag 15 december 2011 @ 23:15:47 #275
75592 GlowMouse
l'état, c'est moi
pi_105638434
Schrijf gewoon COUNT(*), zet een index op order_content.product_id en kijk naar ansi style joins
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_105638836
quote:
Ik denk dat er geen index op orders.orderdate staat. Een index daar zal helpen. En verder wat GlowMouse zegt.
  FOK!-Schrikkelbaas vrijdag 16 december 2011 @ 08:34:56 #277
1972 Swetsenegger
Egocentrische Narcist
pi_105646453
quote:
0s.gif Op donderdag 15 december 2011 23:15 schreef GlowMouse het volgende:
Schrijf gewoon COUNT(*), zet een index op order_content.product_id en kijk naar ansi style joins
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.
pi_105650281
quote:
0s.gif Op woensdag 14 december 2011 10:13 schreef _Flash_ het volgende:
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 ;-)
Dat is inderdaad een goede oplossing :P 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 :7
..///
  FOK!-Schrikkelbaas vrijdag 16 december 2011 @ 17:47:54 #279
1972 Swetsenegger
Egocentrische Narcist
pi_105663478
quote:
0s.gif Op vrijdag 16 december 2011 08:34 schreef Swetsenegger het volgende:

[..]

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.
Ik zit met de aanpassingen nog steeds op een query van 57 seconden. Ik heb alleen de ANSI join nog niet gedaan
pi_105669714
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?
  vrijdag 16 december 2011 @ 20:55:46 #281
84244 Scorpie
Abject en infaam!
pi_105670803
Ik snap het probleem niet helemaal.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_105670857
quote:
0s.gif Op vrijdag 16 december 2011 20:55 schreef Scorpie het volgende:
Ik snap het probleem niet helemaal.
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.
💍 💍 💍 💍 💍 💍 🍌 ☎
pi_105670978
Klopt helemaal
  vrijdag 16 december 2011 @ 21:05:33 #284
84244 Scorpie
Abject en infaam!
pi_105671318
quote:
0s.gif Op vrijdag 16 december 2011 20:56 schreef Pizzalucht het volgende:

[..]

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.
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?
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_105671823
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.
  vrijdag 16 december 2011 @ 21:21:59 #286
84244 Scorpie
Abject en infaam!
pi_105672190
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?
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_105677168
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?
  vrijdag 16 december 2011 @ 23:32:38 #288
75592 GlowMouse
l'état, c'est moi
pi_105678552
quote:
0s.gif Op vrijdag 16 december 2011 21:15 schreef das_phantom het volgende:
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.
niet pas trekken als iemand de url aanroept, of bij het een na laatste loodje zorgen dat je niet in een foute situatie komt
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_105678609
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
pi_105683052
Goede suggesties. Ik ga er mee aan de slag!
pi_105686848
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?
pi_105687577
quote:
0s.gif Op vrijdag 16 december 2011 23:33 schreef ErikNijland het volgende:
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
Wat nou als randomizen van personen dezelfde lijst oplevert als je lijst waar je aan gaat koppelen? Dan krijgt iedereen zichzelf :P

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.
  FOK!-Schrikkelbaas zaterdag 17 december 2011 @ 15:31:10 #293
1972 Swetsenegger
Egocentrische Narcist
pi_105693953
quote:
0s.gif Op vrijdag 16 december 2011 17:47 schreef Swetsenegger het volgende:

[..]

Ik zit met de aanpassingen nog steeds op een query van 57 seconden. Ik heb alleen de ANSI join nog niet gedaan
Iemand nog een idee?
  zaterdag 17 december 2011 @ 15:50:02 #294
218617 YazooW
bel de wouten!
pi_105694464
quote:
0s.gif Op zaterdag 17 december 2011 11:24 schreef Pakspul het volgende:

[..]

Wat nou als randomizen van personen dezelfde lijst oplevert als je lijst waar je aan gaat koppelen? Dan krijgt iedereen zichzelf :P

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.
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.
  FOK!-Schrikkelbaas zaterdag 17 december 2011 @ 16:01:02 #295
1972 Swetsenegger
Egocentrische Narcist
pi_105694771
1
2
3
4
5
6
7
SELECT produkten.*, count(*) as productcount
FROM produkten, order_content
JOIN orders on (orders.order_id=order_content.order_id)
WHERE produkten.product_id = order_content.product_id AND produkten.product_menu IS NOT NULL AND produkten.product_menu<>0 AND orders.wishlist=0 AND orders.activated=1 AND orders.orderdate between ('2011-01-01 0:0:0') AND ('2012-01-01 0:0:0')
GROUP BY produkten.product_id
ORDER BY productcount DESC
LIMIT 0, 5

Deze lijkt m'n probleem op te lossen :)
  zaterdag 17 december 2011 @ 19:13:30 #296
75592 GlowMouse
l'état, c'est moi
pi_105700576
twee join stijlen door elkaar, lelijk hoor
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas zaterdag 17 december 2011 @ 19:19:25 #297
1972 Swetsenegger
Egocentrische Narcist
pi_105700742
quote:
0s.gif Op zaterdag 17 december 2011 19:13 schreef GlowMouse het volgende:
twee join stijlen door elkaar, lelijk hoor
:D jajaja

1
2
3
4
5
6
7
8
SELECT produkten.*, count(*) as productcount
FROM order_content
JOIN orders on (orders.order_id=order_content.order_id)
JOIN produkten on (produkten.product_id=order_content.product_id)
WHERE produkten.product_id = order_content.product_id AND produkten.product_menu IS NOT NULL AND produkten.product_menu<>0 AND orders.wishlist=0 AND orders.activated=1 AND orders.orderdate between ('2011-01-01 0:0:0') AND ('2012-01-01 0:0:0')
GROUP BY produkten.product_id
ORDER BY productcount DESC
LIMIT 0, 5

Zo dan.
  zaterdag 17 december 2011 @ 19:34:03 #298
75592 GlowMouse
l'état, c'est moi
pi_105701239
Je WHERE is nog te uitgebreid. Deze query zou ook niet sneller draaien dan de eerste.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas zaterdag 17 december 2011 @ 19:46:42 #299
1972 Swetsenegger
Egocentrische Narcist
pi_105701732
quote:
0s.gif Op zaterdag 17 december 2011 19:34 schreef GlowMouse het volgende:
Je WHERE is nog te uitgebreid. Deze query zou ook niet sneller draaien dan de eerste.
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

1
2
3
4
5
6
7
8
SELECT produkten.*, count(*) as productcount
FROM order_content
JOIN orders on (orders.order_id=order_content.order_id)
JOIN produkten on (produkten.product_id=order_content.product_id)
WHERE produkten.product_menu IS NOT NULL AND produkten.product_menu<>0 AND orders.wishlist=0 AND orders.activated=1 AND orders.orderdate between ('2011-01-01 0:0:0') AND ('2012-01-01 0:0:0')
GROUP BY produkten.product_id
ORDER BY productcount DESC
LIMIT 0, 5
  zaterdag 17 december 2011 @ 20:20:17 #300
75592 GlowMouse
l'état, c'est moi
pi_105703028
De joinvolgorde zal wel gewijzigd zijn, ANSI vs. theta-style heeft geen invloed.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas zaterdag 17 december 2011 @ 20:28:21 #301
1972 Swetsenegger
Egocentrische Narcist
pi_105703328
quote:
0s.gif Op zaterdag 17 december 2011 20:20 schreef GlowMouse het volgende:
De joinvolgorde zal wel gewijzigd zijn, ANSI vs. theta-style heeft geen invloed.
wat bedoel je? Dat de laatste query en de eerste query net zo snel zouden moeten zijn?
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')