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
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |