dat hele heredoc gebeuren ontgaat me een beetje eerlijk gezegd...quote:Op zondag 26 oktober 2008 18:26 schreef CraZaay het volgende:
Waarom gebruik je überhaupt heredoc, en niet gewoon quotes rond je string (die in PHP gewoon linebreaks mag hebben)? Scheelt weer wat code en is volgens mij net zo duidelijk?
Als het over MySQL gaat kun je altijd met EXPLAIN kijken wat er ongeveer gebeurd.quote:Op maandag 27 oktober 2008 11:16 schreef Xcalibur het volgende:
Pff, wat een gezeik met MATCH AGAINST![]()
Als ik een query doe op een aantal kolommen (MATCH(col1, col2, col3, etc.) duurt ie 1,6 seconden.
Als ik een query doe op MATCH(col1) AND MATCH(col2), etc. duurt ie maar 0,02 seconden, maar kan ik niet op meer dan 1 woord zoeken.
Een query op MATCH(col1) OR MATCH(col2) levert weer de juiste resultaten, maar duur ook 1,6 seconden
Nu doe ik 8 losse queries, die ieder 0,02 seconden duren, en daarvan voeg ik de resultaten samen![]()
Dat moet toch anders kunnen zou je denken...
Het probleem 1,5+ seconden van de 1,6 zit in de "copying to tmp table" actie, maar hoe ik dat kan voorkomen / versnellen wordt me niet duidelijk
Teveel indexen? Of misschien ergens FORCE INDEX gebruiken?quote:Op maandag 27 oktober 2008 11:50 schreef Xcalibur het volgende:
Ja, heb ik gedaan... indexen lijken allemaal goed te staan enzo![]()
Ik heb ergens de oplossing gevonden.quote:Op vrijdag 24 oktober 2008 17:51 schreef Xcalibur het volgende:
De waarde voor first_run moet voor ieder record nog bepaald worden, terwijl je hetzelfde record hier wel op probeert te selecteren, dat gaat niet
Je zou wel "WHERE last_action + 31:15 <= NOW()" (pseudocode) kunnen doen, dan heb je een harde waarde
Iemand?quote:Op vrijdag 24 oktober 2008 12:22 schreef TommyGun het volgende:
[..]
Dat werkt idd voor specificatie, maar niet voor afdeling vreemd genoeg.
[ code verwijderd ]
echo "<select name='afdeling[]'>\n";
1 2 3 4 5 6 | foreach(array(116, 118, 112) as $v) { print chr($v); } print "\n"; ?> |
Bijzonder handig voor grote lappen tekst.quote:Op zondag 26 oktober 2008 18:57 schreef Xcalibur het volgende:
[..]
dat hele heredoc gebeuren ontgaat me een beetje eerlijk gezegd...
Het print tvp, en het was niet voor jou bedoeldquote:Op dinsdag 28 oktober 2008 10:54 schreef TommyGun het volgende:
[..]
Was dit voor mij bedoeld? En zoja; waar dient dit voor?
B.v.d
Hoe bedoel je dat?quote:Op dinsdag 28 oktober 2008 10:57 schreef slacker_nl het volgende:
[..]
Het print tvp, en het was niet voor jou bedoeld
Overigens werkt je code niet omdat afdeling geen array is, maar een scalar value..
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 | $current_time = date("Y-m-d"); $con = mysql_connect("localhost","root","password"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("urendatabase", $con); print_r($_POST); for ($i = 0; $i < 5; ++$i){ $sql="INSERT INTO uren (userid, specid, afdelingid, uren, omschrijving, callnr, datum) VALUES ('$_POST[werknemer]','$_POST[specificatie][$i]','$_POST[afdeling][$i]','$_POST[uren][$i]','$_POST[omschrijving][$i]','$_POST[callnr][$i]','$current_time')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } } echo "Werkzaamheden toegevoegd"; echo "<br><br>"; echo("<form><input type=\"button\" value=\"Vorige pagina\" onclick=\"parent.location='index.php'\" /></form>"); echo("<form><input type=\"button\" value=\"Terug naar Home\" onclick=\"parent.location='../index.php'\" /></form>"); mysql_close($con) ?> |
1 2 3 4 5 6 7 | [specificatie] => Array ( [0] => 3 [1] => 1 [2] => 4 [3] => 2 [4] => 3 ) [afdeling] => Array ( [0] => 10 [1] => 16 [2] => 14 [3] => 17 [4] => 14 ) [uren] => Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 7 ) [callnr] => Array ( [0] => 2342 [1] => 4234 [2] => 4234 [3] => 5456 [4] => 7657 ) [omschrijving] => Array ( [0] => test1 [1] => test2 [2] => ttest3 [3] => test4 [4] => test5 ) [submit] => Submit ) |
Daarmee wilde ik zeggen dat je een string/int whatever behandeld alsof het een array is, wat het niet is (in je voorgaande voorbeeld). Iets is een scalar als het maar een (1) waarde kan bevatten, een string, integer, float, double, etc. Arrays zijn geen scalar values.quote:
Kennelijk heeft die user uren verspreid over meerdere afdelingen?!quote:Vreemd genoeg laat "afdeling" nu wel de array zijn terwijl ik niks heb aangepast.
Kloppen die waardes wel met Array[3] enzo?quote:In de DB:
[ afbeelding ]
Hoe kan je weten wat Array[1] is? Is het niet veel handiger om je uren gewoon als int op te slaan, je omschrijving als tekst, en je callnummer als int?quote:Op dinsdag 28 oktober 2008 11:56 schreef TommyGun het volgende:
Ja, de waardes kloppen. Het is juist de bedoeling dat je per afdeling en specificatie verschillende uren e.d. op kunt geven. Of begrijp ik je nu verkeerd?
Bedankt
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 | $current_time = date("Y-m-d"); $con = mysql_connect("localhost","root","password"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("urendatabase", $con); $werknemer = $_POST['werknemer']; $afdeling = $_POST['afdeling']; $uren = $_POST['uren']; $specificatie = $_POST['specificatie']; $omschrijving = $_POST['omschrijving']; $callnr = $_POST['callnr']; for ($i = 0; $i < 5; ++$i){ $sql="INSERT INTO uren (userid, specid, afdelingid, uren, omschrijving, callnr, datum) VALUES ('$werknemer', '$specificatie[$i]', '$afdeling[$i]', '$uren[$i]', '$omschrijving[$i]', '$callnr[$i]', '$current_time')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } } echo "Werkzaamheden toegevoegd"; echo "<br><br>"; echo("<form><input type=\"button\" value=\"Vorige pagina\" onclick=\"parent.location='index.php'\" /></form>"); echo("<form><input type=\"button\" value=\"Terug naar Home\" onclick=\"parent.location='../index.php'\" /></form>"); mysql_close($con) ?> |
Tja, da's ook lekker te zeggen..quote:Op dinsdag 28 oktober 2008 13:55 schreef Arn0 het volgende:
Hoi, ben een absolute beginner met MySQL en ik vroeg me af hoe groot de MySQL database van een IPB forum met +100 000 leden en +75 000 berichten? (het is voor een prijsvraag van iets)
Ik heb wel eens begrepen dan heel FOK! (volgens mij incl. alle subsites) een GB of 60 was.quote:Op dinsdag 28 oktober 2008 @ 13:55 schreef Arn0 het volgende:
Hoi, ben een absolute beginner met MySQL en ik vroeg me af hoe groot de MySQL database van een IPB forum met +100 000 leden en +75 000 berichten? (het is voor een prijsvraag van iets)
Ik denk echt veel en veel meer.quote:Op dinsdag 28 oktober 2008 15:21 schreef mcDavid het volgende:
[..]
Ik heb wel eens begrepen dan heel FOK! (volgens mij incl. alle subsites) een GB of 60 was.
90GB volgens mij wat ik laatste gehoord hebquote:Op dinsdag 28 oktober 2008 15:28 schreef PiRANiA het volgende:
[..]
Ik denk echt veel en veel meer.
Misschien het 3-dubbele.. minimaal..
hm, okee.. valt me meequote:Op dinsdag 28 oktober 2008 15:31 schreef JortK het volgende:
[..]
90GB volgens mij wat ik laatste gehoord heb
zou best kunnen, is al weer een poosje geleden dat ik het hoordequote:Op dinsdag 28 oktober 2008 @ 15:31 schreef JortK het volgende:
[..]
90GB volgens mij wat ik laatste gehoord heb
Take in mind dat FOK! onder de grootste internetcommunity's ter wereld valt heh!quote:Op dinsdag 28 oktober 2008 @ 15:27 schreef Arn0 het volgende:
Hmm ok, dan weet ik genoeg. Bedankt!
quote:Op zondag 16 juli 2006 21:40 schreef Danny het volgende:
forum: 40.1Gb
frontpage: 2.7Gb
fotoboek: 1.0Gb
fokgames: 481.1Mb
sport: 397.9Mb
weblog: 198.5Mb
Ik weet het, maar er waren keuzemogelijkheden en ik twijfelde tussen 300 MB en 1,1 GB (heb dat laatste maar genomen)quote:Take in mind dat FOK! onder de grootste internetcommunity's ter wereld valt heh!
Uit mijn eigen ervaring zou ik dus B kiezenquote:Op dinsdag 28 oktober 2008 18:14 schreef Arn0 het volgende:
Er zijn wel wat lange berichten op dat forum , dat wel, en dit waren de keuzemogelijkheden(heb even teruggekeken):
A. 9,6 MB
B. 148 MB
C. 1,6 GigaByte
D. 23,8 TeraByte
Heb dus voor C gekozen.
1 2 3 4 5 6 7 8 9 10 | $memcache_obj = memcache_connect('127.0.0.1', 11211); $delay_requests = memcache_get($memcache_obj, 'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']'); if ($delay_requests > 5){ memcache_set($memcache_obj, 'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 0, 10); die('Er is een fout opgetreden. U dient 10 seconden te wachten alvorens u de pagina kan herladen.'); } memcache_set($memcache_obj, 'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 0, 1); ?> |
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 | <script type="text/javascript"> // _w : ID // _h : 'h' (=hide(verbergen)), of 's' (=show(tonen)) function wisselen(_w,_h) { if (document.all) { if (_h=='s') eval("document.all."+_w+".style.visibility='visible';"); if (_h=='h') eval("document.all."+_w+".style.visibility='hidden';"); } else { if (_h=='s') eval("document.layers['"+_w+"'].visibility='show';"); if (_h=='h') eval("document.layers['"+_w+"'].visibility='hide';"); } } </script> </head><body> <!-- Invoegen van het script gebeurt door toevoegen van onClick: --> <form> Tonen <input name="r1" type="radio" checked value="" onClick="wisselen('deel1','s')"> Verbergen <input name="r1" type="radio" value="" onClick="wisselen('deel1','h')"> </form> <form> Jaar <input name="t1" type="text"> <label> <input type="submit" name="b1" id="b1" value="Invoeren"> </label> </form> <!-- Het formuliergedeelte dat je wil tonen/verbergen plaats je tussen <span>-tags: --> <span id="deel1" style="visibility:visible;position:relative;top:0;left:0"> <form> Hier een te verbergen of te tonen tekst. </form> </span> <span id="deel2"> <!-- en hier wil ik graag de tekst van t1 hebben --> </span> </body></html> |
euh, wat heeft dat precies met PHP te maken?quote:Op woensdag 29 oktober 2008 @ 01:17 schreef killko het volgende:
Ik zoek zoiets als het volgende, maar helaas werkt dit script alleen in Internet Explorer (niet in Chrome of Firefox iig). Weet iemand hoe het makkelijk in php kan of een betere javascript code?
[ code verwijderd ]
Ter aanvulling: en die eval() mag ook wel overal weg.quote:Op woensdag 29 oktober 2008 01:20 schreef mcDavid het volgende:
gewoon document.getElementById gebruiken ipv 'layers' of 'all' shizle. Weet niet waarom ze dat verzonnen hebt maar is nergens voor nodig in deze vorm.
Eeh, niks, maar ik dacht dat het misschien wel makkelijker in php kon.quote:Op woensdag 29 oktober 2008 01:20 schreef mcDavid het volgende:
[..]
euh, wat heeft dat precies met PHP te maken?
Zal't hier wel ff plaatsen.quote:
OK, zal het eens proberen.quote:-edit-
gewoon document.getElementById gebruiken ipv 'layers' of 'all' shizle. Weet niet waarom ze dat verzonnen hebt maar is nergens voor nodig in deze vorm.
1 2 3 4 5 6 7 8 9 10 | $memcache_obj = memcache_connect('127.0.0.1', 11211); $delay_requests = memcache_get($memcache_obj, 'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']'); if ($delay_requests > 5){ memcache_set($memcache_obj, 'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 0, 10); die('Er is een fout opgetreden. U dient 10 seconden te wachten alvorens u de pagina kan herladen.'); } memcache_set($memcache_obj, 'site[delay_requests]['.$_SERVER['REMOTE_ADDR'].']', ($delay_requests+1), 0, 1); ?> |
quote:Op woensdag 29 oktober 2008 22:35 schreef GlowMouse het volgende:
Ik neem aan dat je zelf weet wat die memcache-code doet. Of het afdoende beveiliging biedt, hangt van je site af. Zijn er pagina's die erg veel tijd kosten om te genereren, dan zal de beveiliging niet zo goed werken.
Daarnaast zit je al in PHP voordat deze code wordt uitgevoerd. Een mod voor Apache of wat firewall-regels kunnen dit efficiënter. Ook wil je wellicht een log bijhouden.
Voor de reguliere storage engines (MyISAM/InnoDB) is gemiddeld 35 rijen/seconde invoegen in een tabel geen enkel probleem. Probeer wel zoveel mogelijk rijen met één INSERT-query te behandelen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |