Je hebt het goed begrepenquote:Op vrijdag 24 oktober 2008 00:35 schreef Dzy het volgende:
Lapo:
Aangezien hij die constructie met [] ook niet kende zal hij het nog wel niet zo lang doen, dus ook een vrij grote kans dat hij nog maar net begonnen is met programmeren, dan is dat allemaal nog niet zo vanzelfsprekend.
Bedankt, zal er eens mee gaan spelen.quote:Op vrijdag 24 oktober 2008 00:50 schreef CraZaay het volgende:
Even in een notendop danDe [] zorgt ervoor dat de inputs (of meer: hun waarden) als elementen in een array terecht komen. Met print_r() kun je de inhoud van een array human-readable tonen. Zo, dat was de les voor vandaag
(tevens TVP)
Dan neem ik deze TVP even van je overquote:Op vrijdag 24 oktober 2008 00:50 schreef CraZaay het volgende:
Even in een notendop danDe [] zorgt ervoor dat de inputs (of meer: hun waarden) als elementen in een array terecht komen. Met print_r() kun je de inhoud van een array human-readable tonen. Zo, dat was de les voor vandaag
(tevens TVP)
Doe ik meequote:Op vrijdag 24 oktober 2008 08:55 schreef JortK het volgende:
[..]
Dan neem ik deze TVP even van je over
Memcache was daar voor geloof ikquote:Op vrijdag 24 oktober 2008 10:24 schreef PiRANiA het volgende:
Wie weet hoe je het beste resultaten van queries kan cachen?
De output is als volgt:quote:Op vrijdag 24 oktober 2008 00:50 schreef CraZaay het volgende:
Even in een notendop danDe [] zorgt ervoor dat de inputs (of meer: hun waarden) als elementen in een array terecht komen. Met print_r() kun je de inhoud van een array human-readable tonen. Zo, dat was de les voor vandaag
(tevens TVP)
1 2 3 4 5 6 7 | [specificatie] => 2 [afdeling] => 24 [uren] => Array ( [0] => 8 [1] => 4 [2] => 3 [3] => 1 [4] => 2 ) [callnr] => Array ( [0] => 1234 [1] => 4321 [2] => 1243 [3] => 1343 [4] => 1344 ) [omschrijving] => Array ( [0] => omschrijving1 [1] => omschrijving2 [2] => omschrijving3 [3] => omschrijving4 [4] => omschrijving5 ) [submit] => Submit ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $query2 = mysql_query( "SELECT `specid`, `specificatie` FROM `specificatie` ORDER BY `specificatie` ASC" ) or die (mysql_error()); echo "<select name='specificatie'>\n"; while ($data = mysql_fetch_assoc($query2)) { echo "<option value='".$data['specid']."'>".$data['specificatie']."</option>\n"; } echo "</select>\n"; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $query2 = mysql_query( "SELECT `afdelingid`, `afdeling` FROM `afdelingen` ORDER BY `afdeling` ASC" ) or die (mysql_error()); echo "<select name='afdeling'>\n"; while ($data = mysql_fetch_assoc($query2)) { echo "<option value='".$data['afdelingid']."'>".$data['afdeling']."</option>\n"; } echo "</select>\n"; ?> |
Ik gebruik altijd memcached (nu bezig met een project met 4 memcached servers, samen goed voor 16GB gereserveerd geheugen voor memcachedquote:Op vrijdag 24 oktober 2008 10:24 schreef PiRANiA het volgende:
Wie weet hoe je het beste resultaten van queries kan cachen?
Waarom wil je dat? Wil je meerdere afdelingen aan whatever-je-doet hangen? Zo ja, dan heb je iets nodig waarmee je meerdere waarden kunt selecteren (dus geen standaard <select>). Wil je gewoon één afdeling hebben, dan heb je ook geen array nodig toch?quote:Op vrijdag 24 oktober 2008 11:03 schreef TommyGun het volgende:
Alles klopt in principe, behalve specificatie en afdeling. Ik krijg het niet voor elkaar om die in een array te zetten.
Serializen, hoe werkt dat?quote:Op vrijdag 24 oktober 2008 11:11 schreef CraZaay het volgende:
[..]
Ik gebruik altijd memcached (nu bezig met een project met 4 memcached servers, samen goed voor 16GB gereserveerd geheugen voor memcached), maar je zou het ook op schijf op kunnen slaan (serialized).
Je hebt een array/object/whatever en gooit het door serialize(), waarna het een string is geworden. Deze kun je bijvoorbeeld opslaan in een bestand (of database, of wherever). Later kun je deze string met unserialize() weer omzetten naar het originele type & structuur. Zo doet memcached het bijvoorbeeld ook op de achtergrond: je gooit er een object en een key in, deze wordt serialized opgeslagen in het geheugen onder "key", en later wanneer je de waarde van "key" terug vraagt weer unserialized.\quote:
De entries komen zo in de DB te staan:quote:Op vrijdag 24 oktober 2008 11:13 schreef CraZaay het volgende:
[..]
Waarom wil je dat? Wil je meerdere afdelingen aan whatever-je-doet hangen? Zo ja, dan heb je iets nodig waarmee je meerdere waarden kunt selecteren (dus geen standaard <select>). Wil je gewoon één afdeling hebben, dan heb je ook geen array nodig toch?
Dan heb je dus geen array nodig voor afdeling (etc), want die is voor iedere entry gelijk. Je kunt daarvoor bij iedere insert dezelfde waarde gebruiken (en hebt dus geen array nodig).quote:
Nee, alles kan verschillen, op de afbeelding idd niet te zien maar de dropdown menu's geven meerdere keuzes.quote:Op vrijdag 24 oktober 2008 11:35 schreef CraZaay het volgende:
[..]
Dan heb je dus geen array nodig voor afdeling (etc), want die is voor iedere entry gelijk. Je kunt daarvoor bij iedere insert dezelfde waarde gebruiken (en hebt dus geen array nodig).
Ah, ok.quote:Op vrijdag 24 oktober 2008 11:56 schreef TommyGun het volgende:
[..]
Nee, alles kan verschillen, op de afbeelding idd niet te zien maar de dropdown menu's geven meerdere keuzes.
Dat werkt idd voor specificatie, maar niet voor afdeling vreemd genoeg.quote:Op vrijdag 24 oktober 2008 12:08 schreef CraZaay het volgende:
[..]
Ah, ok.
Ik zie in "echo "<select name='specificatie'>\n";" geen [] achter specificatie. Is dat het probleem
1 2 3 4 5 6 7 | [specificatie] => Array ( [0] => 1 [1] => 4 [2] => 2 [3] => 1 [4] => 2 ) [afdeling] => 22 [uren] => Array ( [0] => uur1 [1] => uur2 [2] => uur3 [3] => uur4 [4] => uur5 ) [callnr] => Array ( [0] => call1 [1] => call2 [2] => call3 [3] => call4 [4] => call5 ) [omschrijving] => Array ( [0] => test1 [1] => test2 [2] => test3 [3] => test4 [4] => test5 ) [submit] => Submit ) |
MySQL beweert `first_run` niet te kennen welke eerder in de query gedefineerd staat.quote:SELECT *,ADDTIME(last_action,"31:15:00") AS `first_run` FROM background_scheduler_timeout WHERE `first_run` <= NOW();
1 |
Kan gebeurenquote:Op zaterdag 25 oktober 2008 14:43 schreef Twisted_Logic het volgende:
Sorry de query was toch goed, de datum invoer gaat nog niet helemaal goed, hij pakt opeens de lokale datum en tijd ipv de ingevoerde![]()
Had ik niet eerder gezien
Maar goed het werkt, en ik had dus in de query niks fout gedaan
1 |
Niet op deze manier, omdat je variabelen binnen de "" staan.quote:Op zondag 26 oktober 2008 00:28 schreef Irix het volgende:
Even een korte vraag:
[ code verwijderd ]
Gaat dit werken? Het gaat mij om het gedeelte goals=goals+$goals. Ik weet dat games=games+1 werkt, maar of het ook op deze manier kan weet ik niet. Zo nee, hoe zou ik de query moeten veranderen?
Juist omdat de variabelen binnen "" staan, gaat het wel werken.quote:Op zondag 26 oktober 2008 00:46 schreef ursel het volgende:
[..]
Niet op deze manier, omdat je variabelen binnen de "" staan.
Heb je een ander voorstel voor "verhoog de huidige waarde met x"?quote:Maar waarom zou je de berekening zelf binnen je query willen doen?
Ik ben eigenlijk zelf nooit echt een voorstander van geweest om in de UPDATE/INSERT query zelf al te veel "functionaliteit" te zetten.
Voor zover ik kan zien, werkt het gewoon. Je moet uiteraard wel zorgen dat je variabelen vooraf worden gecontroleerd zodat ze geldige data bevatten.quote:Op zondag 26 oktober 2008 00:28 schreef Irix het volgende:
Even een korte vraag:
[ code verwijderd ]
Gaat dit werken? Het gaat mij om het gedeelte goals=goals+$goals. Ik weet dat games=games+1 werkt, maar of het ook op deze manier kan weet ik niet. Zo nee, hoe zou ik de query moeten veranderen?
Mja, zoals ik eigenlijk zei :quote:Op zondag 26 oktober 2008 08:27 schreef Light het volgende:
[..]
Voor zover ik kan zien, werkt het gewoon. Je moet uiteraard wel zorgen dat je variabelen vooraf worden gecontroleerd zodat ze geldige data bevatten.
Doormiddel van een kleine functie welke voor je de berekeningen doet. Hierin verwerk je gelijk een validatie op je variabele en return je de uitgerekende waarde welke je in je query kan zetten. Met vaste "verhoogwaarde" zou ik het nog wel doen, maar met een variabele eigenlijk niet.quote:Ik ben eigenlijk zelf nooit echt een voorstander van geweest om in de UPDATE/INSERT query zelf al te veel "functionaliteit" te zetten.
Dan moet je dus eerst alles uitlezen, vervolgens de nieuwe waardes berekenen en dan alles terugzetten. Het kan, maar je doet een onnodige query en je maakt een atomaire actie niet meer atomair. Dus kans op fouten.quote:Op zondag 26 oktober 2008 12:15 schreef ursel het volgende:
[..]
Mja, zoals ik eigenlijk zei :
[..]
Doormiddel van een kleine functioe welke voor je de berekeningen doet. Hierin verwerk je gelijk een validatie op je variabele en return je de uitgerekende waarde welke je in je query kan zetten.
Ik gebruik het zelf niet, geef de voorkeur aan ''. En bij '' werkt het niet om variabelen in de string te zetten, die worden dan niet geparsed. Iets als een \n voor een newline werkt ook alleen tussen "", als je dat tussen '' zet krijg je gewoon \n te zien.quote:Zal vast wel persoonlijke voorkeur zijn anders..
Dat van die variabele tusse "" gebruik ik eigenlijk nooit en dacht dat het niet werkte / dan wel not done was.
Maar blijkbaar heb ik dat dus mis.
Mja, 9 van de 10 keer heb ik nagenoeg alle waarde welke ik wil inserten/updaten al ter beschikking dus valt die extra query in het niets.quote:Op zondag 26 oktober 2008 12:21 schreef Light het volgende:
[..]
Dan moet je dus eerst alles uitlezen, vervolgens de nieuwe waardes berekenen en dan alles terugzetten. Het kan, maar je doet een onnodige query en je maakt een atomaire actie niet meer atomair. Dus kans op fouten.
[..]
quote:Ik gebruik het zelf niet, geef de voorkeur aan ''. En bij '' werkt het niet om variabelen in de string te zetten, die worden dan niet geparsed. Iets als een \n voor een newline werkt ook alleen tussen "", als je dat tussen '' zet krijg je gewoon \n te zien.
Ik ook. Daarbij zijn single quotes makkelijker om te typen :)quote:Op zondag 26 oktober 2008 13:08 schreef Xcalibur het volgende:
Strings tussen enkele quotes worden niet geparsed op variabelen / andere meuk die erin staan... Dat zou dus een snelheidswinstje op moeten leveren, omdat PHP er niet over na hoeft te denken :)
Ik zet altijd alles tussen single quotes, tenzij ik echt een linebreak moet hebben oid
1 2 3 | echo 'string voor line break'."\n"; ?> |
quote:Op zondag 26 oktober 2008 13:17 schreef Light het volgende:
[..]
Ik ook. Daarbij zijn single quotes makkelijker om te typen
Als ik een linebreak aan het eind wil hebben doe ik ook nog wel eens
[ code verwijderd ]
1 2 3 4 5 | return <<<TEMPLATE <title> {$news['title']}</title> TEMPLATE; ?> |
Parse snelheid. PHP gaat geen moeite doen om vars te parsen binnen enkele quotes, terwijl dat wel geprobeerd gaat worden binnen dubbele quotes. Het netste is imo om het gebruik hierop af te stemmen, dus echo('bla'); binnen enkele quotes en echo("$var"); binnen dubbele quotes (of echo("{$object->var}"); met accolades erbij).quote:Op zondag 26 oktober 2008 12:32 schreef ursel het volgende:Dat heb ik zelf eigenlijk ook nooit begrepen. Gebruik zelf namelijk ook altijd de enkele quote.
Weet je misschien ook waarom dat zo is eigenlijk?![]()
Een non-breaking-space in een <title>?quote:Op zondag 26 oktober 2008 17:13 schreef Chandler het volgende:
Klein vraagje,
Stel ik heb het volgende:
[ code verwijderd ]
Hoe is het mogelijk om binnen de template een functie aan te roepen? bv {strtolower($news['title']);} dit werkt namelijk niet
Nee, in een heredoc-notatie kun je geen functies aanroepen.quote:Op zondag 26 oktober 2008 17:13 schreef Chandler het volgende:
Klein vraagje,
Stel ik heb het volgende:
[ code verwijderd ]
Hoe is het mogelijk om binnen de template een functie aan te roepen? bv {strtolower($news['title']);} dit werkt namelijk niet
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.
Jaquote:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $bloginfo_link = get_bloginfo('template_directory'); $image_folder = $bloginfo_link . '/images/sidebar'; $page = get_the_title(); if (file_exists($image_folder . '/'.$page.'.png')) { echo "<img src=\"$image_folder/".$page.".png\">"; } else { echo "<img src=\"$image_folder/Nieuws.png\">"; } ?> |
Ja, ik heb de afbeeldingen met hoofdletters geupload. Als ik dus echo $image_folder .'/'.$page.'.png') invoer, dan geeft hij die afbeelding weer. Dat stukje werkt dus, maar de check niet.quote:Op dinsdag 4 november 2008 20:35 schreef mcDavid het volgende:
hoofletters/kleine letters zijn correct in de bestandsnamen?
doe anders ff echo ($image_folder . '/'.$page.'.png');, dan kun je zien welk bestand hij precies probeert te checken.
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $bloginfo_link = get_bloginfo('template_directory'); $image_folder = $bloginfo_link . '/images/sidebar'; $images = 'wp-content/themes/mijnthema/images/sidebar'; $page = get_the_title(); if (file_exists($images.'/'.$page.'.png')) { echo "<img src=\"$image_folder/".$page.".png\">"; } else { echo "<img src=\"$image_folder/Nieuws.png\">"; } ?> |
1 |
Ik denk dat het fout gaat met $image_folder. Met file_exists() kijk je op het file system en als je diezelfde directory in een <img> gebruikt dan is het waarschijnlijk niet de goede directory.quote:Op dinsdag 4 november 2008 20:32 schreef Jo0Lz het volgende:
Ehm, ik heb even een vraag.
Ik heb een scriptje, dat ik gebruik om een plaatje op te roepen op basis van de titel van die pagina.
[ code verwijderd ]
Hij laat alleen het plaatje "Nieuws.png" zien. Terwijl, als ik de check weghaal, bij alle pagina's correct de afbeelding wordt weergegeven.
Iemand een idee, wat ik fout doe? Is die "if file_exists" zo goed?
Blijkbaar, faalt hij op dat punt, en laat hij de afbeelding "Nieuws.png" zien, terwijl dat "Welkom.png" moet zijn.
Als ik "echo $page" in het script verwerk, krijg ik wel de juiste terugkoppeling, namelijk "Welkom".
Met javascript de lokale datum/tijd ophalen en die in je database stoppen?quote:Op woensdag 5 november 2008 09:42 schreef Chandler het volgende:
Ik heb een vraag, ik wil statistieken achterhalen per website en opslaan in een database (dit gaat erg goed) maar nu zit ik met het volgende probleem.
Een site in Nederland heeft GMT 0 maar een site in america heeft heel andere tijden, nu gebruik ik NOW() in mijn MySQL queries maar wil eingelijk de tijd opslaan van de gebruiker zijn website, hoe moet ik dit realiseren?
GMT +1quote:Op woensdag 5 november 2008 09:42 schreef Chandler het volgende:
Ik heb een vraag, ik wil statistieken achterhalen per website en opslaan in een database (dit gaat erg goed) maar nu zit ik met het volgende probleem.
Een site in Nederland heeft GMT 0 maar een site in america heeft heel andere tijden, nu gebruik ik NOW() in mijn MySQL queries maar wil eingelijk de tijd opslaan van de gebruiker zijn website, hoe moet ik dit realiseren?
Dus je wil server-side iets client-side uitlezen?quote:Op woensdag 5 november 2008 11:07 schreef Chandler het volgende:
maar met javascript is geen optie, want het gaat om dynamisch gegenereerde afbeeldingen die kan helaas geen javascript uitlezen
Kan je het niet per website alleen de tijdsinstelling opslaan?quote:Op woensdag 5 november 2008 11:20 schreef Chandler het volgende:
Als dat mogelijk ismaar zelf wil ik nu inbouwen dat een gebruiker een keuze kan maken middels een select welke timezone hun site zit en dat ik deze timezone dan ga gebruiken maar ben er dus nog niet achter hoe ik dit m.b.t NOW() moet verwerken.
BV ik heb +1 (1 uur) hoe kan ik dit dan inserten bij NOW() (oftewel in combinatie van NOW +1)
Ik hoop dat jullie het snappen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function randomCode($len = 8) { $rts = ''; $str = ''; $a = array(65=>90,97=>122,48=>57); foreach ($a AS $i=>$v) { for ($x = $i; $x <= $v; $x++) { $rts .= chr($x); } } for ($i = 1; $i <= $len; $i++) { $str .= $rts[rand(1, strlen($rts)-1)]; } return $str; } ?> |
1 2 3 | function randomCode($len=8){$rts='';$str='';$a=array(65=>90,97=>122,48=>57);foreach($a AS $i=>$v){for $x=$i;$x<=$v;$x++){$rts.=chr($x);}}for ($i=1;$i<=$len;$i++){$str.=$rts[rand(1,strlen($rts)-1)];}return $str;} ?> |
Even een gedachtenkronkel, weet niet zeker of het het juiste resultaat oplevert:quote:Op woensdag 5 november 2008 14:50 schreef Chandler het volgende:
Dat wil ik dus, echter heb ik dan +1 -1 -5.5 etc qua uren staan, en hoe kan ik deze aan NOW() toevoegen qua uren?
1 2 3 | $rts = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; ?> |
1 2 3 4 | $rts = array_merge( range('A', 'Z'), range('a', 'z'), range('0', '9')); $rts = implode('', $rts); ?> |
Je maakt wachtwoorden zonder hoofdletter A? Of heb je een andere reden om in het stukjequote:Op woensdag 5 november 2008 14:50 schreef Chandler het volgende:
Dat wil ik dus, echter heb ik dan +1 -1 -5.5 etc qua uren staan, en hoe kan ik deze aan NOW() toevoegen qua uren?
Verder wil ik wel eens weten of deze routine korter kan om random wachtwoorden te geneneren
[ code verwijderd ]
en op 1 regel :P
[ code verwijderd ]
:D
1 2 3 | $rts[rand(1, strlen($rts)-1)] ?> |
Eigenljik hoef je er niet eens een string van te maken. De code werkt ook met een array.quote:Op woensdag 5 november 2008 19:03 schreef GlowMouse het volgende:
Het aanmaken van $rts kan korter door
[ code verwijderd ]
of anders door:
[ code verwijderd ]
ja, maar wat is efficiënter als het gaat om processorsnelheid?quote:Op woensdag 5 november 2008 19:03 schreef GlowMouse het volgende:
Het aanmaken van $rts kan korter door
[ code verwijderd ]
of anders door:
[ code verwijderd ]
De eerste oplossing van GlowMouse.quote:Op woensdag 5 november 2008 20:15 schreef PiRANiA het volgende:
[..]
ja, maar wat is efficiënter als het gaat om processorsnelheid?
1 2 3 | public $sub = array(); ?> |
1 2 3 4 5 6 7 8 9 | function GetSub() { $matches = array(); preg_match_all('pregstring',$this->data,$this->sub); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) ) |
1 2 3 4 5 6 7 8 9 10 11 12 | class JortK { public $sub = array(); function GetSub() { preg_match_all('/s/', 'asdfasdfasdf', $this->sub); } } $j = new JortK(); $j->GetSub(); print_r($j->sub); ?> |
1 2 3 4 5 6 7 8 9 10 | ( [0] => Array ( [0] => s [1] => s [2] => s ) ) |
Waarom niet gewoon dan SELECT veld1, veld2, veld3 FROM table doen?quote:Op donderdag 6 november 2008 15:18 schreef ursel het volgende:
Kan je een "SELECT * " SQL uitvoeren waarbij je 1 kolom exclude uit de resultaten?
Ik ben momenteel bezig om van ons archive-proces deze ook te gebruiken om producten te kunnen klonen.quote:Op donderdag 6 november 2008 15:28 schreef JortK het volgende:
[..]
Waarom niet gewoon dan SELECT veld1, veld2, veld3 FROM table doen?
Afhankelijk van je doel.quote:Op donderdag 6 november 2008 15:32 schreef Tijn het volgende:
Het is sowieso netter om geen "SELECT *" te gebruiken.
Want? Het is netter om 10 kolommen op te sommen wanneer je 10 kolommen hebt, i.p.v. *? Says who?quote:Op donderdag 6 november 2008 15:32 schreef Tijn het volgende:
Het is sowieso netter om geen "SELECT *" te gebruiken.
Tis eerder dat je de order kan garanderen als je niet * gebruikt, maar elk veld apart definieert. Anders kan het zijn dat iemand een table wijzigt en de order daarmee wijzigt, je app breekt omdat ie X verwacht daar waar hij Y krijgt.quote:Op donderdag 6 november 2008 16:11 schreef CraZaay het volgende:
[..]
Want? Het is netter om 10 kolommen op te sommen wanneer je 10 kolommen hebt, i.p.v. *? Says who?
Ik ken het hele concept van "breekbare order" niet, leg uit? Daarnaast lijkt het me niet eenvoudig om met een select iets te wijzigen in een tabelquote:Op donderdag 6 november 2008 17:10 schreef slacker_nl het volgende:
Tis eerder dat je de order kan garanderen als je niet * gebruikt, maar elk veld apart definieert. Anders kan het zijn dat iemand een table wijzigt en de order daarmee wijzigt, je app breekt omdat ie X verwacht daar waar hij Y krijgt.
De orde is de volgorde, bij * is de volgorde zoals de table is aangemaakt, als ik vervolgens twee alters op een table uitvoer waarbij de orde van de velden veranderd, bijv:quote:Op donderdag 6 november 2008 19:03 schreef CraZaay het volgende:
Ik ken het hele concept van "breekbare order" niet, leg uit? Daarnaast lijkt het me niet eenvoudig om met een select iets te wijzigen in een tabel
1 2 3 4 5 6 7 8 9 10 | if(!is_array($lines)) die("File kan niet worden geopend."); foreach($lines as $line) { list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line); $name = urldecode($name); $name = addslashes($name); mysql_query("INSERT INTO village SET id='$id', name='$name', x='$x', y='$y', player='$player', points='$points', rank='$rank'"); } |
wat doe ik verkeerd?quote:File kan niet worden geopend.
Waarschijnlijk ondersteunt gzfile() het http://-protocol niet.quote:Op donderdag 6 november 2008 21:05 schreef rulerofdeath het volgende:
hallo![]()
ik probeer de inhoud van een bestand in mijn database te krijgen en gebruik hiervoor deze code:
[ code verwijderd ]
ik krijg telkens
[..]
wat doe ik verkeerd?
Als je expliciet aangeeft dat je "SELECT val FROM ..." wilt, en deze kolom bevat opeens de data die voorheen bekend was als val2, dan heb je toch alsnog hetzelfde probleem, of begrijp ik je verkeerd?quote:Op donderdag 6 november 2008 20:01 schreef slacker_nl het volgende:
De volgorde is id, val, val2. Als ik nou val2 naar val rename en val naar val2 dan wordt de volgorde:
id, val2, val
Logisch, maar als ik dan een applicatie heb die select * from blaat uitvoert en bij val altijd koe of paard terugkrijgt (om maar een willekeurig iets te zeggen), maar nu omdat het val2 is, wordt dit boer of boerin. M'n applicatie verwacht dit niet, dan breek ik de applicatie (en niet de database uiteraard!). Als je checks op de data uitvoert zullen die checks failen, omdat je impliciet uitgaat van een bepaalde volgorde. Als je dit expliciet aangeeft in je query heb je dit hele probleem niet.
De melding zegt het al, je systeem/profiel heeft te weinig geheugen voor deze opdracht. Of je moet meer geheugen aanvragen of je moet je script op een andere manier gaan realiseren (bv via commandline de zip file extracten en dan rustig aan inlezen)quote:Op donderdag 6 november 2008 21:48 schreef rulerofdeath het volgende:
ik krijg nu een andere melding, ik zit nu ook bij een andere provider:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1048576 bytes) in /var/www/vhosts/biertafel.eu/httpdocs/index.php on line 1
(lijnnummer aangepast aan codefragment)
Je begrijpt me verkeerd, stel... iemand dumpt de database, maakt wijzigingen in de dump, dropped de originele table en creeert opnieuw de table, alleen zijn val en val2 van volgorde gewijzigd. Bij select * is de volgorde van val en val2 dus anders dan jij in eerste instantie verwacht.. Als je select val, val2 gebruikt veranderd er niks, en heb je dus ook geen problemen met deze wijziging..quote:Op donderdag 6 november 2008 21:53 schreef CraZaay het volgende:
[..]
Als je expliciet aangeeft dat je "SELECT val FROM ..." wilt, en deze kolom bevat opeens de data die voorheen bekend was als val2, dan heb je toch alsnog hetzelfde probleem, of begrijp ik je verkeerd?
Dan maakt het idd weinig uit, maar dat schreef Slacker ook al. Hij heeft het dan over hashes, maar da's gewoon hetzelfde.quote:Op donderdag 6 november 2008 23:27 schreef ursel het volgende:
Ik begrijp dus eigenlijk dat het niet mogelijk is om een kolom te excluden??
@slacker, Maar als je nou een associative array fetched?? Dan maakt dit toch ook niet uit? Of zie ik iets over het hoofd?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |