abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 17:19:44 #1
1972 Swetsenegger
Egocentrische Narcist
pi_107796650


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
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:19:20 #2
1972 Swetsenegger
Egocentrische Narcist
pi_107806276
Ik heb wel een leuk vraagstuk. Voor een website heb ik verschillende categorieën voor producten:

tassen, business, travel, kids, accessoires, overige

Maar omdat producten onder verschillende categorieën kunnen voorkomen (bv onder tassen en business of onder travel en accessoires, of tassen, travel en accessoires, etc) heb ik een rekenkundig truukje verzonnen om de meuk in 1 integer in de db op te slaan

1
2
3
4
5
6
1=tassen
2=business
4=travel
8=kids
16=accessoires
32=overige

En op die manier kan je elke mogelijke combinatie eenvoudig in de database opslaan door de waarden simpelweg op te tellen, bv:

1
2
3
4
3 = tassen + business
48= accessoires + overige
33= tassen + overige
28= travel + kids + accessoires

Volledige lijstje:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
1=tassen
2=business
3=tassen + business
4=travel
5=tassen+travel
6=business+travel
7=tassen +business+travel
8=kids
9=tassen+kids
10=business+kids
11=tassen+business+kids
12=travel+kids
13=tassen+travel+kids
14=business+travel+kids
15=tassen+business+travel+kids
16=accessoires
17=tassen+accessoires
18=bussines+accessoires
19=tassen+business+accessoires
20=travel+accessoires
21=tassen+travel+accessoires
22=business+travel+accessoires
23=tassen+business+travel+accessoires
24=kids+accessoires
25=tassen+kids+accessoires
26=business+kids+accessoires
27=tassen+business+kids+accessoires
28=travel+kids+accessoires
29=tassen+travel+kids+accessoires
30=business+travel+kids+accessoires
31= tassen+business+travel+kids+accessoires
32=overige
33=tassen+overige
34=business+overige
35=tassen+business+overige
36=travel+overige
37=tassen+travel+overige
38=business+travel+overige
39=tassen+business+travel+overige
40=kids+overige
41=tassen+kids+overige
42=business+kids+overige
43=tassen+business+kids+overige
44=travel+kids+overige
45=tassen+travel+kids+overige
46=business+travel+kids+overige
47=tassen+business+travel+kids+overige
48=accessoires+overige
49=tassen+accessoires+overige
50=business+accessoires+overige
51=tassen+business+accessoires+overige
52=travel+accessoires+overige
53=tassen+travel+accessoires+overige
54=business+travel+accessoires+overige
55=tassen+business+travel+accessoires+overige
56=kids+accessoires+overige
57=tassen+kids+accessoires+overige
58=business+kids+accessoires+overige
59=tassen+business+kids+accessoires+overige
60=travel+kids+accessoires+overige
61=tassen+travel+kids+accessoires+overige
62=business+travel+kids+accessoires+overige
63=tassen+business+travel+kids+accessoires+overige

Naar de database schrijven doe ik dmv aangevinkte checkboxen met de waarden 1,2,4,8,16,32 simpelweg bij elkaar op te tellen.
Uit de database trekken dmv een simpele switch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
switch($page){
            case 
"tassen":
                
$category="1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63";
                break;
            case 
"business":
                
$category="2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31,34,35,38,39,42,43,46,47,50,51,54,55,58,59,62,63";
                break;
            case 
"travel":
                
$category="4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31,36,37,38,39,44,45,46,47,52,53,54,55,60,61,62,63";
                break;
            case 
"kids":
                
$category="8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31,40,41,42,43,44,45,46,47,56,57,58,59,60,61,62,63";
                break;
            case 
"accessoires":
                
$category="16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63";
                break;
            case 
"overige":
                
$category="32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63";
                break;
            }
?>

So far so good... Máár... Ik moet de invoer ook kunnen editten. Dus aan de hand van bv "56" moet ik de juiste checkboxen in de edit mode weer "pre-checken' zodat de beheerder weet welke categorieen hij in eerste instantie geselecteerd had.

Nu kan ik natuurlijk voor alle 63 mogelijkheden een switch schrijven:

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
switch ($row['category']){

case 
"1":
$array=array(1);
break;

case
"2":
$array=array(2);
break;

case
"3":
$array=array(1,2);
break;

case
"4":
$array=array(4);
break;

case
"5":
$array=array(2,3);
break;

case
"6":
$array=array(2,4);
break;

case
"7":
$array=array(1,2,4);
break;

case
"8":
$array=array(8);
break;

}
?>
etc, etc
Maar dat lijkt me wat omslachtig :')
Iemand een handiger idee?
pi_107806371
Ja, gebruik een koppeltabel.
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:23:29 #4
1972 Swetsenegger
Egocentrische Narcist
pi_107806548
quote:
14s.gif Op donderdag 9 februari 2012 21:20 schreef Scorpie het volgende:
Ja, gebruik een koppeltabel.
Mjah nonsens, je kan overal wel een koppeltabel voor aan gaan maken. dit werkt net zo effectief.

-edit- Veruidelijking, Ik gebruik voor ALLES wat uitbreidbaar is een koppeltabel. Deze categorieën zijn doelbewust zo gekozen en worden niet uitgebreid en zijn dus een vast onderdeel van productkenmerken. Uitbreiding zou ook een compleet andere vormgeving betekenen en is nadrukkelijk zo doorgesproken dus gaat ook niet gebeuren :)
pi_107806679
quote:
0s.gif Op donderdag 9 februari 2012 21:23 schreef Swetsenegger het volgende:

[..]

Mjah nonsens, je kan overal wel een koppeltabel voor aan gaan maken. dit werkt net zo effectief.
Ja, het werkt inderdaad perfect, een beetje rekensommen gaan bijhouden in PHP om je koppelingen die je op een dramatische manier je database infietst bij te houden, om nog maar te zwijgen van de persoon na jou die die meuk van je mag gaan onderhouden en een groot WTF moment gaat krijgen bij het zien van deze handel.
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:26:49 #6
1972 Swetsenegger
Egocentrische Narcist
pi_107806744
quote:
14s.gif Op donderdag 9 februari 2012 21:25 schreef Scorpie het volgende:

[..]

Ja, het werkt inderdaad perfect, een beetje rekensommen gaan bijhouden in PHP om je koppelingen die je op een dramatische manier je database infietst bij te houden, om nog maar te zwijgen van de persoon na jou die die meuk van je mag gaan onderhouden en een groot WTF moment gaat krijgen bij het zien van deze handel.
Dit is anders een beproefde methode die ook regelmatig gebruikt wordt om rollen en rechten bij te houden. Er worden helemaal geen 'rekensommen' bijgehouden.
pi_107806833
quote:
0s.gif Op donderdag 9 februari 2012 21:26 schreef Swetsenegger het volgende:

[..]

Dit is anders een beproefde methode die ook regelmatig gebruikt wordt om rollen en rechten bij te houden. Er worden helemaal geen 'rekensommen' bijgehouden.
En daarom werkt het in jouw geval dus niet.

[ Bericht 0% gewijzigd door #ANONIEM op 09-02-2012 21:28:43 ]
pi_107806850
Gebruik toch gewoon koppeltabellen :') . Je gaat toch het wiel niet opnieuw uitvinden?
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:30:43 #9
1972 Swetsenegger
Egocentrische Narcist
pi_107806953
quote:
14s.gif Op donderdag 9 februari 2012 21:28 schreef Scorpie het volgende:

[..]

En daarom werkt het in jouw geval dus niet.
Het werkt prima, ik kan er ook even met een loopje doorheen. Daar ging mijn vraag over :')
quote:
7s.gif Op donderdag 9 februari 2012 21:29 schreef Devv het volgende:
Gebruik toch gewoon koppeltabellen :') . Je gaat toch het wiel niet opnieuw uitvinden?
Wiel uitvinden? Dit wordt al jaren zo gebruikt man.
pi_107807049
quote:
0s.gif Op donderdag 9 februari 2012 21:30 schreef Swetsenegger het volgende:

[..]

Het werkt prima, ik kan er ook even met een loopje doorheen. Daar ging mijn vraag over :')

[..]

Wiel uitvinden? Dit wordt al jaren zo gebruikt man.
Maar jij gaat code schrijven om relaties te leggen tussen gegevens die je later sowieso in een relationele database gaat opslaan 8)7 . Of snap ik het gewoon niet?
pi_107807070
Oke, wees lekker eigenwijs. I pity the fool die na jou de tyfuszooi mag opruimen en een extra categorie mag gaan toevoegen _O-
pi_107807191
als je die lijstjes die je gebruikt in je select, in een array zet kun je daar dmv foreach doorheen lopen en dan gewoon array[] = 1 doen enzo. Gebruik alsjeblieft een koppeltabel.
pi_107807206
quote:
14s.gif Op donderdag 9 februari 2012 21:32 schreef Scorpie het volgende:
Oke, wees lekker eigenwijs. I pity the fool die na jou de tyfuszooi mag opruimen en een extra categorie mag gaan toevoegen _O-
Dit dus. Het is een leuke oefening, maar ik zou het persoonlijk niet in productiecode gebruiken. Ik krijg nu al hoofdpijn van het bovenstaande concept.
  donderdag 9 februari 2012 @ 21:35:11 #14
75592 GlowMouse
l'état, c'est moi
pi_107807208
quote:
14s.gif Op donderdag 9 februari 2012 21:20 schreef Scorpie het volgende:
Ja, gebruik een koppeltabel.
dit. En als je echt eigenwijs bent, kijk je op http://www.php.net/manual/en/language.operators.bitwise.php
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:35:16 #15
1972 Swetsenegger
Egocentrische Narcist
pi_107807216
quote:
14s.gif Op donderdag 9 februari 2012 21:32 schreef Scorpie het volgende:
Oke, wees lekker eigenwijs. I pity the fool die na jou de tyfuszooi mag opruimen en een extra categorie mag gaan toevoegen _O-
Als er een extra categorie toegevoegd moet worden moet de hele voorkant gewijzigd worden....
pi_107807272
quote:
0s.gif Op donderdag 9 februari 2012 21:35 schreef Swetsenegger het volgende:

[..]

Als er een extra categorie toegevoegd moet worden moet de hele voorkant gewijzigd worden....
En dat is relevant omdat? Wilde je gewoon uit rancune het principe 'dynamisch' niet toepassen, of vond je het gewoon teveel moeite?

[ Bericht 8% gewijzigd door #ANONIEM op 09-02-2012 21:36:34 ]
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:36:47 #17
1972 Swetsenegger
Egocentrische Narcist
pi_107807311
Och kijk alle heren gelijk weer op hun hoge paarden zitten. Geen idee van wat er verder op die website gebeurt maar direct hun mond vol :')

Echt dit topic is vervallen tot betweters die niemand meer wat willen uitleggen maar alleen hun e-piemel willen showen.
  donderdag 9 februari 2012 @ 21:37:16 #18
75592 GlowMouse
l'état, c'est moi
pi_107807350
ik had je een hele mooie hint gegeven
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:37:49 #19
1972 Swetsenegger
Egocentrische Narcist
pi_107807388
quote:
5s.gif Op donderdag 9 februari 2012 21:36 schreef Scorpie het volgende:

[..]

En dat is relevant omdat? Wilde je gewoon uit rancune het principe 'dynamisch' niet toepassen, of vond je het gewoon teveel moeite?
Wat is het nut van eenvoudig een extra categorie toe te kunnen voegen als vervolgens de hele voorkant EN achterkant op de schop kan?

Kijk nu is bv afgesproken dat er max 3 foto's aan een product hangen. Maar die staan uiteraard in een koppeltabel want je kan er op wachten dat dat er 4 moeten worden. Eenvoudig uit te breiden.
Kleuren per artikel: koppeltabel. Merk: koppeltabel.

In dit geval is het een FIXED onderdeel van de volledige navigatie op de website. Het is simpelweg niet eenvoudig aan te passen. Kan het in een koppeltabel? Vast wel, heb ik een redelijk ingewikkelde query nodig om de meuk eruit te trekken.

[ Bericht 27% gewijzigd door Swetsenegger op 09-02-2012 21:42:58 ]
pi_107807582
quote:
0s.gif Op donderdag 9 februari 2012 21:37 schreef Swetsenegger het volgende:

[..]

Wat is het nut van eenvoudig een extra categorie toe te kunnen voegen als vervolgens de hele voorkant EN achterkant op de schop kan?
Dan kan je je beter afvragen waarom je de voorkant en achterkant op de schop moet gooien bij zoiets simpels als een extra categorie, iets dat je natuurlijk op je vingers kan natellen dat er in de toekomst zoiets gaat gebeuren. Waarom is er geen rekening mee gehouden in het initiele ontwerp en ontwikkelfase?

Maar goed, ik ben toch maar een betweter die zijn e-piemel wil tonen ofzo.

[ Bericht 9% gewijzigd door #ANONIEM op 09-02-2012 21:41:25 ]
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:44:18 #21
1972 Swetsenegger
Egocentrische Narcist
pi_107807813
quote:
0s.gif Op donderdag 9 februari 2012 21:40 schreef Scorpie het volgende:

[..]

Dan kan je je beter afvragen waarom je de voorkant en achterkant op de schop moet gooien bij zoiets simpels als een extra categorie, iets dat je natuurlijk op je vingers kan natellen dat er in de toekomst zoiets gaat gebeuren. Waarom is er geen rekening mee gehouden in het initiele ontwerp en ontwikkelfase?

Maar goed, ik ben toch maar een betweter die zijn e-piemel wil tonen ofzo.
Omdat de klant 6 hoofdcategorieen verkoopt. Al 50 jaar. En er geen categorie bijkomt.

Ik heb het de klant meerdere malen uitgelegd. De klant wil het zo. Wie ben ik om vol te houden dat ze na 50 jaar toch ECHT binnen nu en 2 jaar de boel volledig anders gaan doen.
pi_107807935
De vraag is: Waarom wil je een niet-flexibele oplossing toepassen terwijl die (blijkbaar) lastiger is dan de algemeen gebruikte flexibele oplossing? Wat is in hemelsnaam het nadeel?
pi_107807955
quote:
0s.gif Op donderdag 9 februari 2012 21:44 schreef Swetsenegger het volgende:

[..]

Omdat de klant 6 hoofdcategorieen verkoopt. Al 50 jaar. En er geen categorie bijkomt.

Ik heb het de klant meerdere malen uitgelegd. De klant wil het zo. Wie ben ik om vol te houden dat ze na 50 jaar toch ECHT binnen nu en 2 jaar de boel volledig anders gaan doen.
Jij bent als het goed is de professional die ondanks het verhaal van de klant rekening houdt met een dynamische omgeving en een applicatie zo opzet dat het niet alleen nu goed werkt, maar ook in de toekomst is voorbereid op wijzigingen, uitbreidingen en verandering in vraag en gebruik van diezelfde applicatie. Daar wordt je voor betaald imo.
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:50:42 #24
1972 Swetsenegger
Egocentrische Narcist
pi_107808194
quote:
14s.gif Op donderdag 9 februari 2012 21:46 schreef KomtTijd... het volgende:
De vraag is: Waarom wil je een niet-flexibele oplossing toepassen terwijl die (blijkbaar) lastiger is dan de algemeen gebruikte flexibele oplossing? Wat is in hemelsnaam het nadeel?
Hij is helemaal niet lastiger :? Alles draait al, ik had alleen een leuk vraagstukje voor het editten van producten. Niks spannend.

Zoals gezegd is dit ook een methode die vaak gebruikt wordt om rechten en rollen te definiëren. Komt niet uit de lucht vallen ofzo.

quote:
0s.gif Op donderdag 9 februari 2012 21:46 schreef Scorpie het volgende:

[..]

Jij bent als het goed is de professional die ondanks het verhaal van de klant rekening houdt met een dynamische omgeving en een applicatie zo opzet dat het niet alleen nu goed werkt, maar ook in de toekomst is voorbereid op wijzigingen, uitbreidingen en verandering in vraag en gebruik van diezelfde applicatie. Daar wordt je voor betaald imo.
"Ja ik kan in de database binnen 2 tellen een categorie toevoegen. Vervolgens hebben we een week werk om de volledige navigatie en vormgeving te wijzigen"

Ergo, nut = 0.

En weet je... er is misschien zelfs wel wat te zeggen voor het niet volledig dynamisch opzetten. Zie bv deze website. De klant is volledig vrij in categorieën. Hij maakt een menu item aan en kan daar producten inhangen. Vervolgens krijg je echt een draak van een menu met 88 mogelijkheden.

Wel zonde, want ik heb een enorm geile beheer module voor de navigatie geschreven.


Volledig dynamisch en vrij te beheren. In principe is alleen de vormgeving de uiteindelijke beperking.

[ Bericht 3% gewijzigd door Swetsenegger op 09-02-2012 22:05:53 ]
  donderdag 9 februari 2012 @ 21:53:31 #25
302853 themole
graaft totaal door.
pi_107808364
Gast als een extra categorie je in de front end een week werk kost heb je een heel fout design gemaakt. :')
Niet altijd serieus
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 21:56:33 #26
1972 Swetsenegger
Egocentrische Narcist
pi_107808548
quote:
14s.gif Op donderdag 9 februari 2012 21:53 schreef themole het volgende:
Gast als een extra categorie je in de front end een week werk kost heb je een heel fout design gemaakt. :')
'Zucht'
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 23:04:17 #27
1972 Swetsenegger
Egocentrische Narcist
pi_107811946
Speciaal voor jullie alles omgebouwd naar een koppeltabel.
  donderdag 9 februari 2012 @ 23:05:40 #28
85514 ralfie
!Yvan eht nioj
pi_107811995
Tering, niemand hier van binary operators gehoord?

stel, getal = 7

checkbox1.checked = getal & 2^1 //geeft getal >0, dus waar
checkbox2.checked = getal & 2^2 //geeft getal >0, dus waar
checkbox3.checked = getal & 2^3 //geeft getal >0, dus waar
checkboxX.checked = getal & (2^X) //geeft getal 0, dus onwaar

etc
  FOK!-Schrikkelbaas donderdag 9 februari 2012 @ 23:09:16 #29
1972 Swetsenegger
Egocentrische Narcist
pi_107812166
quote:
0s.gif Op donderdag 9 februari 2012 23:05 schreef ralfie het volgende:
Tering, niemand hier van binary operators gehoord?

stel, getal = 7

checkbox1.checked = getal & 2^1 //geeft getal >0, dus waar
checkbox2.checked = getal & 2^2 //geeft getal >0, dus waar
checkbox3.checked = getal & 2^3 //geeft getal >0, dus waar
checkboxX.checked = getal & (2^X) //geeft getal 0, dus onwaar

etc
Ja die optie was al door glowmouse geopperd en zou ook prima werken.
  donderdag 9 februari 2012 @ 23:09:37 #30
75592 GlowMouse
l'état, c'est moi
pi_107812193
en je vergeet 2^0
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 9 februari 2012 @ 23:11:20 #31
85514 ralfie
!Yvan eht nioj
pi_107812253
quote:
7s.gif Op donderdag 9 februari 2012 23:09 schreef GlowMouse het volgende:
en je vergeet 2^0
Na 22:00 kun je geen werkende code meer van mij verwachten
  donderdag 9 februari 2012 @ 23:14:16 #32
75592 GlowMouse
l'état, c'est moi
pi_107812377
quote:
12s.gif Op donderdag 9 februari 2012 23:11 schreef ralfie het volgende:

[..]

Na 22:00 kun je geen werkende code meer van mij verwachten
en nog wat, ^ is de bitwise xor, je zoekt pow(2,x)
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_107812567
quote:
18s.gif Op donderdag 9 februari 2012 23:04 schreef Swetsenegger het volgende:
Speciaal voor jullie alles omgebouwd naar een koppeltabel.
Graag gedaan.
  vrijdag 10 februari 2012 @ 07:41:15 #34
4159 GI
Nee ik heet geen JOE
pi_107816808
Los van het makkelijke onderhoud dat bij toevoegingen plaats zou kunnen vinden is het natuurlijk best prettig dat het makkelijk voor het editten te gebruiken is ;)
  FOK!-Schrikkelbaas vrijdag 10 februari 2012 @ 08:22:32 #35
1972 Swetsenegger
Egocentrische Narcist
pi_107817131
De enige reden waarom ik het gedaan heb is om tot in lengte van dagen hier het gezeik te voorkomen "misschien moet je een koppeltabel proberen" als ik ooit een vraag stel...
pi_107817490
quote:
0s.gif Op vrijdag 10 februari 2012 08:22 schreef Swetsenegger het volgende:
De enige reden waarom ik het gedaan heb is om tot in lengte van dagen hier het gezeik te voorkomen "misschien moet je een koppeltabel proberen" als ik ooit een vraag stel...
Geef nou maar gewoon toe dat het op die manier een heel stuk makkelijker was om je eigen vraag te beantwoorden, gekkie dat je er bent.
  FOK!-Schrikkelbaas vrijdag 10 februari 2012 @ 08:58:16 #37
1972 Swetsenegger
Egocentrische Narcist
pi_107817554
quote:
10s.gif Op vrijdag 10 februari 2012 08:54 schreef Scorpie het volgende:

[..]

Geef nou maar gewoon toe dat het op die manier een heel stuk makkelijker was om je eigen vraag te beantwoorden, gekkie dat je er bent.
Eh nee hoor, dat was al klaar :')
Daarna heb ik het in een half uur tijd naar een koppeltabel omgebouwd.
pi_107817787
quote:
13s.gif Op vrijdag 10 februari 2012 08:58 schreef Swetsenegger het volgende:

[..]

Eh nee hoor, dat was al klaar :')
Daarna heb ik het in een half uur tijd naar een koppeltabel omgebouwd.
Ik weet nou niet of ik moet :D of moet :'( om dit.
  vrijdag 10 februari 2012 @ 09:32:31 #39
267443 Cue_
Cuecumbergirl
pi_107818168
Ik zit een beetje te googlen naar hoe je het beste van die speciale tekens kan behandelen bij het schrijven naar/ophalen uit de database. Maar er zijn diverse methoden wat ik zie en daarbij zijn ze vaak enkel voro een bepaalde teken (in veel gevallen enkel voor hoe om te gaan met quotes). Maar ik moet voor elke speciale karakter,dus zowel alle ' " als éûèïë etc etc.

Tips?
  FOK!-Schrikkelbaas vrijdag 10 februari 2012 @ 09:42:51 #40
1972 Swetsenegger
Egocentrische Narcist
pi_107818401
quote:
5s.gif Op vrijdag 10 februari 2012 09:32 schreef Cue_ het volgende:
Ik zit een beetje te googlen naar hoe je het beste van die speciale tekens kan behandelen bij het schrijven naar/ophalen uit de database. Maar er zijn diverse methoden wat ik zie en daarbij zijn ze vaak enkel voro een bepaalde teken (in veel gevallen enkel voor hoe om te gaan met quotes). Maar ik moet voor elke speciale karakter,dus zowel alle ' " als éûèïë etc etc.

Tips?
htmlentities
En kijk ook naar mysql_real_escape_string

[ Bericht 7% gewijzigd door Swetsenegger op 10-02-2012 09:58:33 ]
  vrijdag 10 februari 2012 @ 10:04:02 #41
267443 Cue_
Cuecumbergirl
pi_107818931
quote:
Als ik die hmtlentities doe, krijg ik nu heel leuk dat mijn waarde die hij naar de db schrijft bv trailernr='&IQUEST;&EGRAVE;&EUML;&UCIRC;X&ACIRC;&CCEDIL;'AS', wordt.
Dit is alleen niet wenselijk om als waarde in m'n database te hebben.

Maak gebruik van een oracle database, dus die tweede tip gaat niet echt werken.
  FOK!-Schrikkelbaas vrijdag 10 februari 2012 @ 10:07:13 #42
1972 Swetsenegger
Egocentrische Narcist
pi_107818992
quote:
0s.gif Op vrijdag 10 februari 2012 10:04 schreef Cue_ het volgende:

[..]

Als ik die hmtlentities doe, krijg ik nu heel leuk dat mijn waarde die hij naar de db schrijft bv trailernr='&IQUEST;&EGRAVE;&EUML;&UCIRC;X&ACIRC;&CCEDIL;'AS', wordt.
Dit is alleen niet wenselijk om als waarde in m'n database te hebben.
Dan begrijp ik blijkbaar niet wat je wil :? Als je die values uitleest en parsed worden ze in je html keurig in hun entity weer gegeven.

Als je echt éâä etc in de db zo wil opslaan moet je zorgen dat je character set goed staat in je db. En in je uiteindelijke html ook natuurlijk anders krijg je nog steeds onleesbare tekens.
  vrijdag 10 februari 2012 @ 10:17:56 #43
4159 GI
Nee ik heet geen JOE
pi_107819205
utf8_encode en utf8_decode lijken me hierbij een betere oplossing.
  FOK!-Schrikkelbaas vrijdag 10 februari 2012 @ 10:19:45 #44
1972 Swetsenegger
Egocentrische Narcist
pi_107819239
quote:
3s.gif Op vrijdag 10 februari 2012 10:17 schreef GI het volgende:
utf8_encode en utf8_decode lijken me hierbij een betere oplossing.
Dan moet je db wel in utf-8 staan neem ik aan en niet in latin oid?
  vrijdag 10 februari 2012 @ 10:21:11 #45
58834 Catbert
The evil HR Director.
pi_107819266
Gewoon als unicode (met utf8 character set) aan je DB voeren. HTML entities is niet de juiste oplossing want dan kan je er niet meer op zoeken.

quote:
0s.gif Op vrijdag 10 februari 2012 10:19 schreef Swetsenegger het volgende:
Dan moet je db wel in utf-8 staan neem ik aan en niet in latin oid?
Die kolom moet wel als character set UTF8 hebben. En je moet volgens mij ook in de DB connection met "SET character_set_client = utf8" aangeven dat je UTF8 wil praten. Even ervanuitgaande dat het over MySQL gaat.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  vrijdag 10 februari 2012 @ 10:24:29 #46
4159 GI
Nee ik heet geen JOE
pi_107819343
Is dat zo ?

Ik heb een tabel

) ENGINE=InnoDB DEFAULT CHARSET=latin1

en daar prop ik gewoon utf8coderingen in en die komen er ook gewoon weer goed uit ?
  vrijdag 10 februari 2012 @ 10:41:48 #47
75592 GlowMouse
l'état, c'est moi
pi_107819756
quote:
3s.gif Op vrijdag 10 februari 2012 10:24 schreef GI het volgende:
Is dat zo ?

Ik heb een tabel

) ENGINE=InnoDB DEFAULT CHARSET=latin1

en daar prop ik gewoon utf8coderingen in en die komen er ook gewoon weer goed uit ?
Wat je erin stopt, komt er altijd hetzelfde uit. Het voordeel van als je het goed doet, is dat stringfuncties in de database ook goed werken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_107957927
Ik heb met mysql een master-slave replicatie. De master is een aardige bag (Quadcore xeon, hardware raid). De slave is van iets mindere snelheid (Atom, software raid).

In een uurtje heb ik op de master een tabel gevuld met een aantal indexen van een kleine 1.5 miljoen records. Maar sindsdien ligt m'n slave al ver achter. De oorzaak die ik lijk te zien is dat de slave het qua hardeschijf IO gewoon niet bij kan benen (CPU user: 3%, sys: 3%, wait: 100%)

Hoe kan ik deze server zo goed mogelijk tunen dat snelheid van de schijven zo weinig mogelijk impact hebt? Ik heb geprobeerd zoveel mogelijk geheugen mee te geven in de config, maar het baatte niet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-locking

key_buffer_size = 1024M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 4M
read_buffer_size = 4M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 128M
thread_cache_size = 4
query_cache_size= 16M
thread_concurrency = 2

-edit-

Het tijdelijk verwijderen van keys op de slave zie ik niet geheel zitten.
pi_107958997
quote:
0s.gif Op dinsdag 14 februari 2012 07:11 schreef Keiichi het volgende:
Ik heb met mysql een master-slave replicatie. De master is een aardige bag (Quadcore xeon, hardware raid). De slave is van iets mindere snelheid (Atom, software raid).

In een uurtje heb ik op de master een tabel gevuld met een aantal indexen van een kleine 1.5 miljoen records. Maar sindsdien ligt m'n slave al ver achter. De oorzaak die ik lijk te zien is dat de slave het qua hardeschijf IO gewoon niet bij kan benen (CPU user: 3%, sys: 3%, wait: 100%)

Hoe kan ik deze server zo goed mogelijk tunen dat snelheid van de schijven zo weinig mogelijk impact hebt? Ik heb geprobeerd zoveel mogelijk geheugen mee te geven in de config, maar het baatte niet:
[ code verwijderd ]

-edit-

Het tijdelijk verwijderen van keys op de slave zie ik niet geheel zitten.
De master voert dingen uit in meerdere threads, de slave moet dit doen in 1 thread(de replication thread). De slave moet dus eigenlijk beter of gelijk aan de master zijn qua hardware als je een redelijk beladen database hebt...
💍 💍 💍 💍 💍 💍 🍌 ☎
pi_107959275
De master had die inserts ook vanuit 1 thread gedaan (1 verbinding, sequentieel queries inserts gedaan). Alleen lijkt het op de slave met disk io spaak te lopen. (Anders zou ie qua cpu wel volladen moeten zijn)
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')