Dzy | vrijdag 24 oktober 2008 @ 00:33 | |||||
![]() cd niet bijgeleverd 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 ![]() Vorige delen: 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, Zie ook: Tutorials: Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP | ||||||
Dzy | vrijdag 24 oktober 2008 @ 00:35 | |||||
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. | ||||||
ursel | vrijdag 24 oktober 2008 @ 00:50 | |||||
Ook weer even koekeloeren.. ![]() | ||||||
CraZaay | vrijdag 24 oktober 2008 @ 00:50 | |||||
Even in een notendop dan ![]() ![]() | ||||||
TommyGun | vrijdag 24 oktober 2008 @ 07:26 | |||||
quote:Je hebt het goed begrepen | ||||||
TommyGun | vrijdag 24 oktober 2008 @ 07:26 | |||||
quote:Bedankt, zal er eens mee gaan spelen. | ||||||
JortK | vrijdag 24 oktober 2008 @ 08:55 | |||||
quote:Dan neem ik deze TVP even van je over ![]() | ||||||
Lamzak_ | vrijdag 24 oktober 2008 @ 09:21 | |||||
TVPhp | ||||||
qu63 | vrijdag 24 oktober 2008 @ 09:42 | |||||
quote:Doe ik mee ![]() | ||||||
Chandler | vrijdag 24 oktober 2008 @ 09:43 | |||||
THP ![]() | ||||||
PiRANiA | vrijdag 24 oktober 2008 @ 10:24 | |||||
Wie weet hoe je het beste resultaten van queries kan cachen? | ||||||
ursel | vrijdag 24 oktober 2008 @ 10:28 | |||||
quote:Memcache was daar voor geloof ik ![]() | ||||||
Mordreth | vrijdag 24 oktober 2008 @ 10:31 | |||||
tvp ![]() | ||||||
TommyGun | vrijdag 24 oktober 2008 @ 11:03 | |||||
quote:De output is als volgt:
Alles klopt in principe, behalve specificatie en afdeling. Ik krijg het niet voor elkaar om die in een array te zetten. Deze worden als volgt aangeroepen: <td width=\"10%\">";include("spec.php");echo "</td> <td width=\"20%\">";include("afd.php");echo "</td> spec.php
afd.php
Hoe kan ik dit doen? B.v.d | ||||||
CraZaay | vrijdag 24 oktober 2008 @ 11:11 | |||||
quote:Ik gebruik altijd memcached (nu bezig met een project met 4 memcached servers, samen goed voor 16GB gereserveerd geheugen voor memcached ![]() | ||||||
CraZaay | vrijdag 24 oktober 2008 @ 11:13 | |||||
quote: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? | ||||||
JortK | vrijdag 24 oktober 2008 @ 11:15 | |||||
quote:Serializen, hoe werkt dat? | ||||||
CraZaay | vrijdag 24 oktober 2008 @ 11:24 | |||||
quote: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.\ Het mooie van memcached is ten eerste natuurlijk dat het geheugen rete-snel is (sneller dan welke schijf dan ook) en dat je een pool kunt maken van meerdere servers. Is het geheugen vol, dan wordt de oudste entry weer verwijderd. Waar je natuurlijk wel rekening mee moet houden is dat je moet checken of iets al in de cache zit, dus in je model (als je dat gebruikt) "indien X in geheugen zit, geef dan de waarde terug, zo niet voer dan deze code uit en sla het resultaat op als X". Je kunt dan als je memcached gebruikt nog aangeven na hoeveel tijd het vanzelf geinvalideerd (verwijdert) moet worden, of dit op oneindig zetten. In het laatste geval moet je bij een update niet vergeten om het resultaat van je select handmatig te invalideren. Memcached is de enige reden waarom grote sites kunnen bestaan zonder downtime ![]() [ Bericht 19% gewijzigd door CraZaay op 24-10-2008 11:34:00 ] | ||||||
TommyGun | vrijdag 24 oktober 2008 @ 11:32 | |||||
quote:De entries komen zo in de DB te staan: http://www.uploader.gamergun.com/files/1/urendb.PNG Dmv dit formulier: http://www.uploader.gamergun.com/files/1/ureninvoer.PNG Stel dat een medewerker alle 5 de regels invult, dan moeten er dus 5 entries in de DB komen met zijn medewerker ID en de andere gegevens. Is het zo duidelijker? Bedankt | ||||||
CraZaay | vrijdag 24 oktober 2008 @ 11:35 | |||||
quote: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). | ||||||
TommyGun | vrijdag 24 oktober 2008 @ 11:56 | |||||
quote:Nee, alles kan verschillen, op de afbeelding idd niet te zien maar de dropdown menu's geven meerdere keuzes. | ||||||
CraZaay | vrijdag 24 oktober 2008 @ 12:08 | |||||
quote:Ah, ok. Ik zie in "echo "<select name='specificatie'>\n";" geen [] achter specificatie. Is dat het probleem ![]() | ||||||
TommyGun | vrijdag 24 oktober 2008 @ 12:22 | |||||
quote:Dat werkt idd voor specificatie, maar niet voor afdeling vreemd genoeg.
echo "<select name='afdeling[]'>\n"; | ||||||
Keiichi | vrijdag 24 oktober 2008 @ 15:11 | |||||
Een snelle vraag. Ik heb deze query: quote:MySQL beweert `first_run` niet te kennen welke eerder in de query gedefineerd staat. Wat doe ik fout? | ||||||
Xcalibur | vrijdag 24 oktober 2008 @ 17:51 | |||||
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 ![]() | ||||||
Twisted_Logic | zaterdag 25 oktober 2008 @ 14:10 | |||||
Mensen ik heb ook iets waar ik niet uit kom. Ik wil nieuws op een site kunnen plaatsen, daar kan ik zelf een datum aan geven (pub_date) (Die pub_date is een Unixtimestamp voorbeeld: 1224934001 = 25-10-2008 13:26) Het nieuws wat met een pub_date wat later is dan vandaag, mag nog niet op de site komen. Nu heb ik daarvoor de volgende query:
Ik heb echter ook een nieuw nieuwsbericht met pubdate van 26 oktober 2008 ingevoerd, die wordt gewoon weergeven. Ik snap dat niet helemaal... Zijn er mensen die weten wat ik fout doe? Alvast bedankt! :) | ||||||
Twisted_Logic | zaterdag 25 oktober 2008 @ 14:43 | |||||
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 ![]() | ||||||
Light | zaterdag 25 oktober 2008 @ 23:16 | |||||
quote:Kan gebeuren ![]() Overigens zou ik in die query <= gebruiken ipv < | ||||||
Irix | zondag 26 oktober 2008 @ 00:28 | |||||
Even een korte vraag:
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? | ||||||
ursel | zondag 26 oktober 2008 @ 00:46 | |||||
quote:Niet op deze manier, omdat je variabelen binnen de "" staan. 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. | ||||||
Irix | zondag 26 oktober 2008 @ 01:44 | |||||
Op de andere manier die ik ik ken zou ik eerst de variabele goals moeten opvragen voor deze user. Ik hoopte dat het korter kon. | ||||||
Light | zondag 26 oktober 2008 @ 08:26 | |||||
quote:Juist omdat de variabelen binnen "" staan, gaat het wel werken. quote:Heb je een ander voorstel voor "verhoog de huidige waarde met x"? | ||||||
Light | zondag 26 oktober 2008 @ 08:27 | |||||
quote:Voor zover ik kan zien, werkt het gewoon. Je moet uiteraard wel zorgen dat je variabelen vooraf worden gecontroleerd zodat ze geldige data bevatten. | ||||||
CraZaay | zondag 26 oktober 2008 @ 09:12 | |||||
Spuit 11 modus: wat Light zegt ![]() Ursel, waarom denk je dat het niet werkt doot die " "? | ||||||
mcDavid | zondag 26 oktober 2008 @ 11:40 | |||||
| ||||||
ursel | zondag 26 oktober 2008 @ 12:15 | |||||
quote:Mja, zoals ik eigenlijk zei : quote: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. 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. ![]() | ||||||
Light | zondag 26 oktober 2008 @ 12:21 | |||||
quote: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. | ||||||
ursel | zondag 26 oktober 2008 @ 12:32 | |||||
quote: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. ![]() Maar ik begrijp je punt. quote: ![]() Weet je misschien ook waarom dat zo is eigenlijk? ![]() | ||||||
Xcalibur | zondag 26 oktober 2008 @ 13:08 | |||||
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 | ||||||
Light | zondag 26 oktober 2008 @ 13:17 | |||||
quote: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
| ||||||
ursel | zondag 26 oktober 2008 @ 13:50 | |||||
quote: ![]() ![]() | ||||||
Xcalibur | zondag 26 oktober 2008 @ 16:53 | |||||
Ik hoef niet zo vaak een linebreak, tenzij ik eens een XML uitpoep die ik een beetje leesbaar wil houden ofzo ![]() | ||||||
Kerol | zondag 26 oktober 2008 @ 16:58 | |||||
Even een TVP plaatsen want ik heb een vraag maar ben hem op het moment vergeten. | ||||||
Chandler | zondag 26 oktober 2008 @ 17:13 | |||||
Klein vraagje, Stel ik heb het volgende:
Hoe is het mogelijk om binnen de template een functie aan te roepen? bv {strtolower($news['title']);} dit werkt namelijk niet :{ | ||||||
CraZaay | zondag 26 oktober 2008 @ 17:16 | |||||
quote: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). | ||||||
CraZaay | zondag 26 oktober 2008 @ 17:17 | |||||
quote:Een non-breaking-space in een <title>? En als antwoord op je vraag: beetje moeilijk te zeggen zonder iets te weten van je template engine ![]() ![]() | ||||||
Chandler | zondag 26 oktober 2008 @ 17:20 | |||||
Dat is de template engine ![]() ![]() | ||||||
Light | zondag 26 oktober 2008 @ 17:25 | |||||
quote:Nee, in een heredoc-notatie kun je geen functies aanroepen. | ||||||
Chandler | zondag 26 oktober 2008 @ 17:55 | |||||
Weer wat geleerd Light! tnx ![]() | ||||||
CraZaay | zondag 26 oktober 2008 @ 18:26 | |||||
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? | ||||||
Tijn | zondag 26 oktober 2008 @ 18:43 | |||||
Hmm... PHP krijgt definitief namespaces, maar op Slashdot.org zijn ze er toch niet zo over te spreken ![]() | ||||||
Xcalibur | zondag 26 oktober 2008 @ 18:57 | |||||
quote:dat hele heredoc gebeuren ontgaat me een beetje eerlijk gezegd... | ||||||
Chandler | zondag 26 oktober 2008 @ 19:01 | |||||
Het is geen source van mij maar van een vriend, en ik moest daar iets in gaan aanpassen. | ||||||
Xcalibur | maandag 27 oktober 2008 @ 11:16 | |||||
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 ![]() | ||||||
Keiichi | maandag 27 oktober 2008 @ 11:28 | |||||
quote:Als het over MySQL gaat kun je altijd met EXPLAIN kijken wat er ongeveer gebeurd. | ||||||
Xcalibur | maandag 27 oktober 2008 @ 11:50 | |||||
Ja, heb ik gedaan... indexen lijken allemaal goed te staan enzo ![]() Als ik alles uit de query sloop behalve de MATCH AGAINST win ik ook niks, dus het zit echt daarin.... en dan met name in die tmp table kennelijk, maar ik zou niet weten hoe ik die moet omzeilen... | ||||||
CraZaay | maandag 27 oktober 2008 @ 13:26 | |||||
quote:Teveel indexen? Of misschien ergens FORCE INDEX gebruiken? | ||||||
Keiichi | maandag 27 oktober 2008 @ 19:27 | |||||
quote:Ik heb ergens de oplossing gevonden. In standaard SQL schijnt het niet toegstaan te zijn dat je je WHERE clause op aliasses doet. MySQL heeft hier de clause 'HAVING' voor gemaakt en dit werkt wel ![]() Link: http://dev.mysql.com/doc/refman/6.0/en/problems-with-alias.html Het staat gewoon in de f-Manual ![]() | ||||||
TommyGun | dinsdag 28 oktober 2008 @ 08:14 | |||||
quote:Iemand? | ||||||
slacker_nl | dinsdag 28 oktober 2008 @ 10:38 | |||||
| ||||||
slacker_nl | dinsdag 28 oktober 2008 @ 10:42 | |||||
quote:Bijzonder handig voor grote lappen tekst. $str = <<OEF Dit is een hele grote lap tekst.. .. .. .. OEF Ipv: $str = "Dit is een hele grote lap tekst..\n..\n..\n..\n"; | ||||||
TommyGun | dinsdag 28 oktober 2008 @ 10:54 | |||||
quote:Was dit voor mij bedoeld? En zoja; waar dient dit voor? B.v.d | ||||||
slacker_nl | dinsdag 28 oktober 2008 @ 10:57 | |||||
quote:Het print tvp, en het was niet voor jou bedoeld ![]() Overigens werkt je code niet omdat afdeling geen array is, maar een scalar value.. | ||||||
TommyGun | dinsdag 28 oktober 2008 @ 11:14 | |||||
quote:Hoe bedoel je dat? ![]() Mijn insert.php is nu als volgt:
Met deze output:
Vreemd genoeg laat "afdeling" nu wel de array zijn terwijl ik niks heb aangepast. In de DB: B.v.d [ Bericht 42% gewijzigd door TommyGun op 28-10-2008 11:57:57 ] | ||||||
slacker_nl | dinsdag 28 oktober 2008 @ 11:52 | |||||
quote: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:Kloppen die waardes wel met Array[3] enzo? Als je arrays wilt opslaan in mysql moet je wellicht zoiets doen: http://forums.mysql.com/read.php?101,158517,158517 . Al denk ik niet dat je dat nodig hebt.. | ||||||
TommyGun | dinsdag 28 oktober 2008 @ 11:56 | |||||
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 | ||||||
slacker_nl | dinsdag 28 oktober 2008 @ 12:58 | |||||
quote: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? Als je vervolgens de data ophaalt krijg je een resultset terug die ongeveer er zo uit ziet (select * from table where userid = 5) array( 0 => array( uurid => 46,userid => 5, afdelingid => 0, uren => 2, omschrijving => "blaat", callnummer => 1234), 1 => array( uurid => 47,userid => 5, afdelingid => 0, uren => 2, omschrijving => "blah", callnummer => 1234), 2 => array( uurid => 48,userid => 5, afdelingid => 0, uren => 2, omschrijving => "nah", callnummer => 1234), ) | ||||||
TommyGun | dinsdag 28 oktober 2008 @ 13:25 | |||||
Het werkt inmiddels dmv:
Bedankt! | ||||||
Arn0 | dinsdag 28 oktober 2008 @ 13:55 | |||||
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) | ||||||
ursel | dinsdag 28 oktober 2008 @ 13:58 | |||||
quote:Tja, da's ook lekker te zeggen.. ![]() Is elke post een boekwerk of gewoon allemaal tvp's ![]() | ||||||
Chandler | dinsdag 28 oktober 2008 @ 14:23 | |||||
Een paar honderd MB? 100.000 leden zal een paar mb's in beslag nemen maar 75.000 posts zou ik toch minimaal een paar honderd mbtjes rekenen, tenzij de opzet brak is ![]() | ||||||
spaceninjapirate | dinsdag 28 oktober 2008 @ 14:31 | |||||
Wel wazig, een forum met meer leden dan posts ![]() | ||||||
mcDavid | dinsdag 28 oktober 2008 @ 15:21 | |||||
quote:Ik heb wel eens begrepen dan heel FOK! (volgens mij incl. alle subsites) een GB of 60 was. | ||||||
Arn0 | dinsdag 28 oktober 2008 @ 15:27 | |||||
Hmm ok, dan weet ik genoeg. Bedankt! | ||||||
PiRANiA | dinsdag 28 oktober 2008 @ 15:28 | |||||
quote:Ik denk echt veel en veel meer. Misschien het 3-dubbele.. minimaal.. | ||||||
JortK | dinsdag 28 oktober 2008 @ 15:31 | |||||
quote:90GB volgens mij wat ik laatste gehoord heb ![]() | ||||||
PiRANiA | dinsdag 28 oktober 2008 @ 15:32 | |||||
quote:hm, okee.. valt me mee ![]() | ||||||
mcDavid | dinsdag 28 oktober 2008 @ 15:49 | |||||
quote:zou best kunnen, is al weer een poosje geleden dat ik het hoorde ![]() quote:Take in mind dat FOK! onder de grootste internetcommunity's ter wereld valt heh! [ Bericht 18% gewijzigd door mcDavid op 28-10-2008 15:57:36 ] | ||||||
PiRANiA | dinsdag 28 oktober 2008 @ 15:56 | |||||
grootte FOK! database (2006)quote: | ||||||
mcDavid | dinsdag 28 oktober 2008 @ 15:59 | |||||
-edit- je bent me voor ![]() | ||||||
Arn0 | dinsdag 28 oktober 2008 @ 16:05 | |||||
quote:Ik weet het, maar er waren keuzemogelijkheden en ik twijfelde tussen 300 MB en 1,1 GB (heb dat laatste maar genomen) | ||||||
Xcalibur | dinsdag 28 oktober 2008 @ 17:06 | |||||
Ik heb hier een database van een messageboard met ruim 3400 leden en bijna 210.000 posts, en die is 157,5 MB.... standaard phpBB installatie ![]() | ||||||
Tijn | dinsdag 28 oktober 2008 @ 17:12 | |||||
Ik vind 1,1 GB een beetje veel voor 75000 posts. Maar er is natuurlijk verder niks zinnigs over te zeggen als je niet weet wat er allemaal wordt opgeslagen per bericht en hoe lang die berichten zijn. | ||||||
Arn0 | dinsdag 28 oktober 2008 @ 18:14 | |||||
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. | ||||||
GlowMouse | dinsdag 28 oktober 2008 @ 18:32 | |||||
Dat is vrijwel zeker B ![]() | ||||||
Arn0 | dinsdag 28 oktober 2008 @ 18:36 | |||||
Denk je? ![]() EDIT: Ze hebben ook een soort Wiki, maar geen idee of die erbij wordt gerekend of niet. Denk het niet, mja. [ Bericht 11% gewijzigd door Arn0 op 28-10-2008 18:43:56 ] | ||||||
GlowMouse | dinsdag 28 oktober 2008 @ 18:43 | |||||
Als je die eerste post van Danny neemt, kom je op ongeveer 1 miljoen posts per gigabyte, ofwel 75 MB voor jouw vraagstuk. In veel fora worden nog best wel lange posts geplaatst, het zijn niet alleen tvp's. Maar ik baseer mij op cijfers van een ander forum (kom je in de buurt van B) en op wat Xcalibur zegt (zit je ver onder B), en daar zit je geen factor 10 boven. | ||||||
Arn0 | dinsdag 28 oktober 2008 @ 18:45 | |||||
Hmm, tot zover mijn kans op de hoofdprijs ![]() | ||||||
mcDavid | dinsdag 28 oktober 2008 @ 18:52 | |||||
Ga je nog even met ons delen waar we die hoofdprijs kunnen winnen? :![]() | ||||||
Arn0 | dinsdag 28 oktober 2008 @ 18:57 | |||||
Dat zou ik kunnen doen, maar zal niet veel zin hebben mits je een 'oldbie' moet zijn op dat forum (sommige vragen gaan over de geschiedenis van dat forum zal ik maar zeggen.) | ||||||
mcDavid | dinsdag 28 oktober 2008 @ 19:05 | |||||
Vervolg op opheffing domein Op dat we met zijn allen nóóit zullen vergeten onze scripts fatsoenlijk te beschermen! ![]() | ||||||
Xcalibur | dinsdag 28 oktober 2008 @ 22:16 | |||||
quote:Uit mijn eigen ervaring zou ik dus B kiezen ![]() | ||||||
Likkende_Lassie | woensdag 29 oktober 2008 @ 00:57 | |||||
Ik heb het volgende als een soort van beveiliging op een website, zodat er geen programma's kunenn worden losgelaten om de server vast te laten lopen:
Iemand op/aanmerkingen? ![]() | ||||||
killko | woensdag 29 oktober 2008 @ 01:17 | |||||
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?
| ||||||
mcDavid | woensdag 29 oktober 2008 @ 01:20 | |||||
quote:euh, wat heeft dat precies met PHP te maken? [Javascript] voor dummies (deel 8) -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. [ Bericht 6% gewijzigd door mcDavid op 29-10-2008 01:38:27 ] | ||||||
CraZaay | woensdag 29 oktober 2008 @ 08:13 | |||||
quote:Ter aanvulling: en die eval() mag ook wel overal weg. | ||||||
killko | woensdag 29 oktober 2008 @ 10:26 | |||||
quote:Eeh, niks, maar ik dacht dat het misschien wel makkelijker in php kon. quote:Zal't hier wel ff plaatsen. quote:OK, zal het eens proberen. ![]() | ||||||
Likkende_Lassie | woensdag 29 oktober 2008 @ 11:53 | |||||
iemand nog iets aan te merken op mijn post, of tips? ![]() Ik heb het volgende als een soort van beveiliging op een website, zodat er geen programma's kunenn worden losgelaten om de server vast te laten lopen:
Iemand op/aanmerkingen? ![]() [ Bericht 93% gewijzigd door Likkende_Lassie op 29-10-2008 21:34:04 ] | ||||||
Likkende_Lassie | woensdag 29 oktober 2008 @ 21:37 | |||||
Dan nog even een andere vraag: In het kort, ik heb een zoekmachine, en nu wil ik per resultaat wat wordt weergegeven (max. 10 op een pagina) dit opslaan voor de statistieken die per resultaat te bekijken moeten zijn. Tevens moet het worden opgeslagen als er daadwerkelijk op een resultaat wordt geklikt. Aangezien er per seconde zo'n 3,5 zoekopdrachten worden gedaan, kan dit het performance nogal beinvloeden. Hoe kan ik dit het beste opslaan? Misschien via memcached eerst opslaan, en op een rustig moment van de dag het in de database verwerken? | ||||||
GlowMouse | woensdag 29 oktober 2008 @ 22:35 | |||||
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. | ||||||
Likkende_Lassie | woensdag 29 oktober 2008 @ 22:40 | |||||
quote: Ik heb de memcached code voor het zware gedeelte staan van de pagina's (search etc.) Aangezien het een custom iets is, dus soms voor andere pagina's een andere waarde, zal een firewall niet naar behoeven werken. Een mod misschien wel? Als dat geen probleem is, prima! Ik zal het inderdaad in één query stoppen, ipv losse queries zoals nu. En qua updates, geldt hiervoor hetzelfde? | ||||||
CraZaay | donderdag 30 oktober 2008 @ 00:08 | |||||
quote:Ja ![]() | ||||||
Jo0Lz | dinsdag 4 november 2008 @ 20:32 | |||||
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.
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". | ||||||
GlowMouse | dinsdag 4 november 2008 @ 20:35 | |||||
file_exists kijkt op het lokale filesystem. Dat betekent dat als jij een url opgeeft als http://.. hij, om te kijken of het bestaat, die site op moet vragen. En dat doet file_exists niet, dus geeft hij false en krijg je Nieuws.png. | ||||||
mcDavid | dinsdag 4 november 2008 @ 20:35 | |||||
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. | ||||||
Jo0Lz | dinsdag 4 november 2008 @ 20:54 | |||||
quote: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. | ||||||
Jo0Lz | dinsdag 4 november 2008 @ 21:03 | |||||
Het complete pad, van het lokale systeem, wat ik weet is:
Hoe krijg ik het nou zover dat die check op die directory gedaan wordt? Een nieuwe var aanmaken, met iets van 'images/sidebar', en dan daar de check op proberen? | ||||||
GlowMouse | dinsdag 4 november 2008 @ 21:06 | |||||
In dat geval moet '/public_html/wp/wp-content/themes/mijnthema/images/sidebar/' . $page . '.png' bestaan ![]() | ||||||
mcDavid | dinsdag 4 november 2008 @ 21:15 | |||||
sidenote: ook op het lokale systeem kun je met relatieve paden werken. | ||||||
Jo0Lz | dinsdag 4 november 2008 @ 21:20 | |||||
Nu werkt het ![]()
Trial en error, maar wel overwinning. | ||||||
Light | dinsdag 4 november 2008 @ 22:07 | |||||
quote: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. Met echo dirname(__FILE__); kun je zien wat het volledige pad is van het bestand waar je die tekst in hebt staan. | ||||||
Chandler | woensdag 5 november 2008 @ 09:42 | |||||
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? | ||||||
qu63 | woensdag 5 november 2008 @ 09:48 | |||||
quote:Met javascript de lokale datum/tijd ophalen en die in je database stoppen? | ||||||
ursel | woensdag 5 november 2008 @ 10:21 | |||||
quote:GMT +1 ![]() | ||||||
Chandler | woensdag 5 november 2008 @ 11:07 | |||||
![]() ![]() | ||||||
qu63 | woensdag 5 november 2008 @ 11:12 | |||||
quote:Dus je wil server-side iets client-side uitlezen? | ||||||
Chandler | woensdag 5 november 2008 @ 11:20 | |||||
Als dat mogelijk is ![]() 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 ![]() | ||||||
ursel | woensdag 5 november 2008 @ 11:31 | |||||
quote:Kan je het niet per website alleen de tijdsinstelling opslaan? Als je dan gegevens ophaalt van de website combineer je tijdsinstelling + de NOW gegevens. Overigens heb ik me er nooit in verdiept, maar ken applicaties welke je taalinstellingen overnemen van de gegevens van je browser. Kan je zoiets ook niet met de tijdsinstellingen doen? | ||||||
Chandler | woensdag 5 november 2008 @ 14:50 | |||||
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
en op 1 regel ![]()
![]() [ Bericht 2% gewijzigd door Chandler op 05-11-2008 15:41:09 (kleine aanpassing ;)) ] | ||||||
spaceninjapirate | woensdag 5 november 2008 @ 18:28 | |||||
quote:Even een gedachtenkronkel, weet niet zeker of het het juiste resultaat oplevert: De timestamp in de database opslaan en dan per klant via date_default_timezone_set() en date_default_timezone_get() + date() functie de tijd correct laten zien? | ||||||
GlowMouse | woensdag 5 november 2008 @ 19:03 | |||||
Het aanmaken van $rts kan korter door
of anders door:
| ||||||
Light | woensdag 5 november 2008 @ 19:22 | |||||
quote:Je maakt wachtwoorden zonder hoofdletter A? Of heb je een andere reden om in het stukje
| ||||||
Light | woensdag 5 november 2008 @ 19:23 | |||||
quote:Eigenljik hoef je er niet eens een string van te maken. De code werkt ook met een array. | ||||||
PiRANiA | woensdag 5 november 2008 @ 20:15 | |||||
quote:ja, maar wat is efficiënter als het gaat om processorsnelheid? ![]() | ||||||
Light | woensdag 5 november 2008 @ 20:59 | |||||
quote:De eerste oplossing van GlowMouse. ![]() | ||||||
JortK | woensdag 5 november 2008 @ 21:40 | |||||
Vraagje, ik declareer een array in mijn class:
Vervolgens heb ik een functie waarmee ik deze array wil vullen:
Hier moeten twee matches uitkomen. Wanneer ik nu de functie ga aanroepen en de array ga weergeven, krijg ik de volgende zooi terug:
Terwijl wanneer ik het op een simpele manier test de array wel gevuld is, iemand een idee? :) | ||||||
GlowMouse | woensdag 5 november 2008 @ 21:48 | |||||
Waarom noem je $matches in je voorbeeld?
| ||||||
JortK | woensdag 5 november 2008 @ 22:02 | |||||
Thanks Glowmouse, maar het bleek in de access modifier van een andere variabel te zitten ![]() ![]() | ||||||
ursel | donderdag 6 november 2008 @ 15:18 | |||||
Kan je een "SELECT * " SQL uitvoeren waarbij je 1 kolom exclude uit de resultaten? | ||||||
JortK | donderdag 6 november 2008 @ 15:28 | |||||
quote:Waarom niet gewoon dan SELECT veld1, veld2, veld3 FROM table doen? | ||||||
mcDavid | donderdag 6 november 2008 @ 15:30 | |||||
Ik heb nog niet zo heel veel met SQL gewerkt ofzo, maar je kunt toch gewoon de gegevens uit die kolom dan niet gebruiken? Maar de manier van JortK lijkt me idd beter, dat zal een (iets) minder zware query zijn. | ||||||
ursel | donderdag 6 november 2008 @ 15:31 | |||||
quote:Ik ben momenteel bezig om van ons archive-proces deze ook te gebruiken om producten te kunnen klonen. Bij het archiveren heb ik geen last van DUPLICATE KEYS omdat deze keys nog niet in de archive database zitten. Tijdens het kloon process blijf ik dus in dezelfde database en moet eigenlijk alleen sommige ID's gebruik gaan maken van de auto-incremental. Het product te klonen heeft informatie in +/- 10 tables, waarbij de main-table zelfs tot 35 kolommen bevat. Ik hoopte dus eigenlijk dat ik grote delen van het archive proces kon hergebruiken.. ![]() | ||||||
Tijn | donderdag 6 november 2008 @ 15:32 | |||||
Het is sowieso netter om geen "SELECT *" te gebruiken. | ||||||
ursel | donderdag 6 november 2008 @ 15:33 | |||||
quote:Afhankelijk van je doel. ![]() Voor het archiveren gebruiken we nu dus de query INSERT INTO targetDB.table SELECT * FROM sourceDB.table WHERE ID = X | ||||||
CraZaay | donderdag 6 november 2008 @ 16:11 | |||||
quote:Want? Het is netter om 10 kolommen op te sommen wanneer je 10 kolommen hebt, i.p.v. *? Says who? ![]() | ||||||
slacker_nl | donderdag 6 november 2008 @ 17:10 | |||||
quote: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. Tenminste, dat is het argument wat ik gelezen heb hierover. Zie bijvoorbeeld hier: http://dbaforums.org/oracle/index.php?showtopic=8443 | ||||||
CraZaay | donderdag 6 november 2008 @ 19:03 | |||||
quote: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 ![]() | ||||||
GlowMouse | donderdag 6 november 2008 @ 19:11 | |||||
Het zal eerder over een INSERT gaan, waarbij je niet je veldnamen specificeert. | ||||||
slacker_nl | donderdag 6 november 2008 @ 20:01 | |||||
quote: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: create table blaat ( id int, val varchar(10), val2 varchar(10)); 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. Nu kan je natuurlijk ook de zooi dmv een hash terugkrijgen, waardoor het niet echt veel uitmaakt, maar dit is wel degelijk van belang bij een sequentiele array. In het kort, als je SELECT * uitvoert, laat je de DB bepalen wat de volgorde is, als je de velden zelf definieert bepaal je het zelf en heb je in theorie minder wijzigingen in je code als je wijzigingen in je DB maakt. Hoop dat dit e.e.a. duidelijker maakt. Je hoeft het er niet mee eens te zijn, ik ben er voor mezelf ook nog niet uit of SELECT * nou echt zo'n zonde is als men zegt.. Maar goed, als iemand wat wijzigt in de DB en je hebt het expliciet de volgorde aangegeven dan weet je zeker dat er niks fout gaat en anders moet je hopen dat men de volgorde niet heeft aangepast.... | ||||||
Spike1506 | donderdag 6 november 2008 @ 20:40 | |||||
@slacker_nl: Je hebt inderdaad een goed punt. Sowieso is het fijner om de output van de DB zelf in "controle" te hebben door zelf de volgorde aan te geven. | ||||||
Xcalibur | donderdag 6 november 2008 @ 20:52 | |||||
Slacker_nl heeft een goed punt, hoewel dit ook weer een nadeel is. Ik moet vaak (Excel) exports vanuit een tabel maken, waar in principe alle data in terecht komt. Bij wijzigingen in de tabel is het wel prettig om dan * te dumpen, in plaats van dat je alle wijzigingen in de db ook in je exportcode moet gaan doorvoeren ![]() | ||||||
rulerofdeath | donderdag 6 november 2008 @ 21:05 | |||||
hallo ![]() ik probeer de inhoud van een bestand in mijn database te krijgen en gebruik hiervoor deze code:
ik krijg telkens quote:wat doe ik verkeerd? | ||||||
FastFox91 | donderdag 6 november 2008 @ 21:14 | |||||
Wat geeft var_dump( $lines )? | ||||||
rulerofdeath | donderdag 6 november 2008 @ 21:20 | |||||
bool(false) | ||||||
Light | donderdag 6 november 2008 @ 21:28 | |||||
quote:Waarschijnlijk ondersteunt gzfile() het http://-protocol niet. | ||||||
rulerofdeath | donderdag 6 november 2008 @ 21:48 | |||||
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) | ||||||
CraZaay | donderdag 6 november 2008 @ 21:53 | |||||
quote: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? | ||||||
Chandler | donderdag 6 november 2008 @ 22:13 | |||||
quote: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) | ||||||
slacker_nl | donderdag 6 november 2008 @ 22:55 | |||||
quote: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.. Dit is de kern van het verhaal: 1) select veld, veld2, veld3: expliciet aangeven in welke volgorde (de keuze wordt gemaakt door jou). 2) select *: impliciet aangeven in welke volgorde (de keuze wordt gemaakt door de DB) Welke je prefereert, of toepast, dat maakt mij weinig uit, maar je moet rekening houden dat je met select * onverwachte dingen kunt tegenkomen als men een wijziging uitvoert op de database. That is all. | ||||||
ursel | donderdag 6 november 2008 @ 23:27 | |||||
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? | ||||||
Light | donderdag 6 november 2008 @ 23:55 | |||||
quote:Dan maakt het idd weinig uit, maar dat schreef Slacker ook al. Hij heeft het dan over hashes, maar da's gewoon hetzelfde. En imho ben je gewoon onhandig bezig als je arrays met numerieke indexen gebruikt voor het uitlezen van een database. Dan moet je altijd terugzoeken in welke volgorde de velden gespecificeerd zijn om te achterhalen waar $row[2] ook alweer voor stond. $row['name'] is gewoon veel duidelijker. | ||||||
slacker_nl | vrijdag 7 november 2008 @ 00:09 | |||||
Wat Light zei over hashes, das hetzelfde als een associatieve array. quote: | ||||||
CraZaay | vrijdag 7 november 2008 @ 00:10 | |||||
quote:Ik snap je nu. Maar ik ging er eigenlijk ook vanuit dat iedereen die "SELECT *" doet alsnog gebruik maakt van een named/associatieve array, object, whatever, en $result['val'] gebruikt bijvoorbeeld. Ik vind het uitermate ranzig om in welke situatie dan ook maar klakkeloos uit te gaan van een volgorde, los van of je * gebruik of kolomnamen. edit: En er was nog een pagina ![]() | ||||||
mcDavid | maandag 10 november 2008 @ 13:18 | |||||
Schop! Of zet 'm eens centraal ofzo.... | ||||||
slacker_nl | maandag 10 november 2008 @ 13:27 | |||||
Waarom centraal, dev forum is niet zo groot dat je 'm over het hoofd ziet. En dat ie in het weekend wat zakt.. | ||||||
mcDavid | maandag 10 november 2008 @ 13:30 | |||||
toch staan er weer een stuk of 3 php-topics open omdat'ie uit het moederforum DIG gezakt is. | ||||||
Likkende_Lassie | maandag 10 november 2008 @ 18:52 | |||||
Volgende vraag! Ik heb het volgende
Maar zou het graag als volgt willen doen:
Let op de LIKE in de LEFT JOIN.... is dit mogelijk? Het lukt iig niet, hoe zou het wel kunnen lukken? | ||||||
JortK | maandag 10 november 2008 @ 19:23 | |||||
Die LIKE moet in je WHERE clause, je JOIN clause is om tabellen aan elkaar te koppelen, niet om criteria in aan te leggen ![]() | ||||||
Likkende_Lassie | maandag 10 november 2008 @ 19:31 | |||||
Weet ik, maar ik heb zo'n idee dat dat niet in WHERE kan? | ||||||
Likkende_Lassie | maandag 10 november 2008 @ 19:41 | |||||
Het moet namelijk een like zijn met een veld van de tabel ![]() | ||||||
Arjan321 | maandag 10 november 2008 @ 19:48 | |||||
JOINS zijn alleen maar syntax sugar, dus iets als dit zou ook moeten werken: Voor een INNER JOIN:
Of een LEFT JOIN
| ||||||
Light | maandag 10 november 2008 @ 20:33 | |||||
quote:Wat staat er in dat veld? Over het algemeen moet je LIKE met "%text%" zien te vermijden. Door de % vooraan kan er namelijk geen gebruik gemaakt worden van indexen, dus is je query per definitie inefficient. | ||||||
SuperRembo | maandag 10 november 2008 @ 20:37 | |||||
quote:Onzin quote:Ook onzin, maar dan met niet werkende voorbeelden. Een LIKE in een JOIN kan prima (wat niet wil zeggen dat het altijd de beste keus is om een like in een join te gebruiken). En joins zijn meer dan alleen syntax sugar, ze maken query's bijvoorbeeld beter leesbaar (wat de kans op fouten verkleint).
Je moet de string die je voor de like gebruikt op de juiste manier aan elkaar plakken. Je kunt in MySql strings niet bij elkaar optellen. D.w.z. het kan wel (heet geeft geen fouten), maar aan het resultaat heb je niets. Maar als je zo'n constructie nodig hebt dan zit je datamodel misschien niet al te handig in elkaar. | ||||||
Likkende_Lassie | maandag 10 november 2008 @ 20:44 | |||||
quote:In dat veld staan de ID's van de branches, als volgt: ,6543,34543,4323,65432,1234, Bedankt voor de reacties tot nu toe! Bovenstaande oplossingen werken overigens niet. Hierbij de gehele query, zoals de laatst genoemde mogelijkheid, niet werkend.
| ||||||
Light | maandag 10 november 2008 @ 21:01 | |||||
quote:Daar was ik al bang voor. Een koppeltabel is dan een veel betere oplossing. Gewoon een tabel met id's, kun je ook indexen op zetten. Is ook veel sneller met doorzoeken. quote:Zoek eens op databasenormalisatie. Je kunt wel proberen om dit werkend te krijgen (en het kan vast ook) maar je kunt veel beter je tijd investeren in uitzoeken hoe het beter kan. | ||||||
SuperRembo | maandag 10 november 2008 @ 21:04 | |||||
Zo veel moeite is het toch niet om zo'n query op een leesbare manier op te schrijven zodat je misschine een beetje een idee heb waar je mee bezig bent?
Probeer het eerst eens met een wat eenvoudigere versie van die query en lijk of je dan terug krijgt wat je zoekt. Die GROUP B klopt bijvoorbeeld ook niet. | ||||||
CraZaay | maandag 10 november 2008 @ 21:05 | |||||
quote:GAD-VER-DAM-ME ![]() | ||||||
Likkende_Lassie | maandag 10 november 2008 @ 21:06 | |||||
quote:Een koppeltabel, zou die er zou uit kunnen zien? brancheID registerID 04200 123456 0915 123456 3116 654321 dus meerdere regels voor een registerid? | ||||||
SuperRembo | maandag 10 november 2008 @ 21:06 | |||||
En Als je even
had geprobeerd dan had je kunnen zien dat dat niet oplevert wat je wil (en dat het dus niet aan de join ligt) | ||||||
Light | maandag 10 november 2008 @ 21:17 | |||||
quote:Yep brancheID registerID 04200 123456 0915 123456 0915 654321 3116 654321 Zowel brancheID als registerID komen meerdere keren voor (of kunnen dat iig). Alleen de combinatie is wel uniek. | ||||||
Likkende_Lassie | maandag 10 november 2008 @ 21:32 | |||||
Ok! Hij is nu bezig alles in te voeren, moet heel wat records inlezen en verwerken, duurt dus even. De tabel ziet er zo uit:
| ||||||
Light | maandag 10 november 2008 @ 22:44 | |||||
quote:Dat veld ID is niet echt nuttig. Ik zou de tabel anders maken:
De combinatie (brancheID, registerID) is uniek, en daardoor heb je ook meteen een index op brancheID. | ||||||
saban | dinsdag 11 november 2008 @ 10:18 | |||||
Is de vertaling naar het Nederlands makkelijker/logischer te doen?
| ||||||
ursel | dinsdag 11 november 2008 @ 10:32 | |||||
Ik zou het zelf in een switch gooien. ![]() | ||||||
GlowMouse | dinsdag 11 november 2008 @ 10:33 | |||||
Kijk eens naar setlocale en strftime. | ||||||
slacker_nl | dinsdag 11 november 2008 @ 10:58 | |||||
Saban, zie http://pb.opperschaap.net/8 | ||||||
PiRANiA | dinsdag 11 november 2008 @ 11:08 | |||||
[ Bericht 2% gewijzigd door PiRANiA op 11-11-2008 14:39:15 ] | ||||||
CraZaay | dinsdag 11 november 2008 @ 14:54 | |||||
Ik zoek een goede PHP library/script voor het parsen van RSS, voornamelijk 2.0 (maar als het even kan ook andere formaten). Aan MagpieRSS is inmiddels al 3 jaar niets gedaan, dus ik vroeg me af of er inmiddels iets nieuwers/beters is? | ||||||
Tijn | dinsdag 11 november 2008 @ 15:04 | |||||
Zend Framework heeft een component genaamd Zend_Feed die RSS en Atom feeds kan handlen. Die kun je volgens mij ook los gebruiken (dus zonder het hele Zend Framework eromheen). Is dat wat? | ||||||
slacker_nl | dinsdag 11 november 2008 @ 15:41 | |||||
http://pear.php.net/search.php?q=rss&in=packages&x=0&y=0 | ||||||
rulerofdeath | dinsdag 11 november 2008 @ 16:52 | |||||
hallo, ik probeer een website in te delen met het div-statement. maar hoe kan ik van tijd tot tijd de 'main' veranderen? is de code hieronder goed daarvoor te gebruiken of is dit anders te doen?
| ||||||
Xcalibur | dinsdag 11 november 2008 @ 17:26 | |||||
op zich een prima manier, maar ik zou het includen van de admin niet af laten hangen van het gezet zijn van een get-variabele... dat is nogal een security risk namelijk ![]() | ||||||
qu63 | dinsdag 11 november 2008 @ 17:29 | |||||
quote:kijk maar naar de poll op de homepage ![]() | ||||||
Xcalibur | dinsdag 11 november 2008 @ 17:40 | |||||
uh, poll, homepage? ![]() Ik geloof niet dat ik snap waar je het over hebt.... | ||||||
qu63 | dinsdag 11 november 2008 @ 17:42 | |||||
quote:De poll op zn homepage heeft totaal geen beveiliging, iedereen kan een nieuwe poll aanmaken.. | ||||||
rulerofdeath | dinsdag 11 november 2008 @ 17:44 | |||||
quote:ik weet dat iedereen de admin-pagina kan bereiken. dit is ook alleen maar om te testen. ben een beetje aan het klooien met m'n webpagina. is het ook mogelijk om onderstaande te vervangen door variabelen en dat ik niet alles hoef te hardcoden? (Dat ik dus de naam van de webpagina als variabele kan gebruiken)
| ||||||
rulerofdeath | dinsdag 11 november 2008 @ 17:46 | |||||
quote:klopt, dat weet ik. | ||||||
ursel | dinsdag 11 november 2008 @ 17:46 | |||||
![]() quote: ![]() Spuit 11 op zijn trage laptop ![]() | ||||||
Light | dinsdag 11 november 2008 @ 18:11 | |||||
quote:Zoiets bedoel je? /path/to/site/index.php?page=poll
Dat werkt gewoon. Het is absoluut niet veilig, maar dat vroeg je ook niet. | ||||||
rulerofdeath | dinsdag 11 november 2008 @ 19:18 | |||||
quote:bedankt. zoiets bedoel ik. ![]() Qua veiligheid maakt het toch niets uit als ik op deze manier alleen pagina's wil weergeven en niet een pagina als die polladmin.php wil bereiken? | ||||||
Tuvai.net | dinsdag 11 november 2008 @ 19:42 | |||||
quote:Het probleem met variabelen uit de QueryString is dat ze zo makkelijk te beïnvloeden zijn en dus erg vatbaar zijn voor kwaadwillige injectie vanuit de gebruikerskant. Er kunnen op die manier dus allerlei onverwachte problemen opduiken. Beter zou zijn als je bijvoorbeeld een nummer uit de QueryString zou uitlezen, en aan de hand van dat nummer middels een switch() de corresponderende pagina meepikken met include(). ![]() | ||||||
rulerofdeath | dinsdag 11 november 2008 @ 19:46 | |||||
dus ietsjes meer typewerk scheelt wel in de veiligheid? dan gaat dat voor. | ||||||
Xcalibur | dinsdag 11 november 2008 @ 19:50 | |||||
Op zich is het natuurlijk niet zo'n probleem dat je de naam van de pagina's in de querystring meegeeft, maar je moet wel zorgen dat alleen je éigen pagina's geopend kunnen worden ![]() Dat niet iemand dus /site/index.php?page=http://www.h4x0r.com gaat openen, en vervelend gaat doen. Zoiets kan je vrij eenvoudig voorkomen door een variabele in je include te zetten die je checked, of natuurlijk door je GET te checken voordat je er uberhaupt wat mee doet ![]() | ||||||
Tuvai.net | dinsdag 11 november 2008 @ 19:51 | |||||
quote:Laat ik je een geheimpje verklappen: Met het programmeerwerk voor expliciet hetgeen dat je wilt doen, ben je meestal zo klaar. Vaak ben je echter meer dan de helft van de tijd bezig met het 'hufterproof' maken van je script/programma. ![]() | ||||||
Xcalibur | dinsdag 11 november 2008 @ 20:02 | |||||
ja, zorgen dat het werkt is niet zo ingewikkeld.... zorgen dat het niet kapot gaat als je lomp doet is de echte uitdaging ![]() | ||||||
Likkende_Lassie | woensdag 12 november 2008 @ 08:43 | |||||
Even een update, ik heb een koppeltabel gemaakt, en het draait nu als een zonnetje! Werkt lekker snel! Bedankt allen! | ||||||
Likkende_Lassie | vrijdag 14 november 2008 @ 09:28 | |||||
Vraagje, als ik waardes door de volgende functie haal, om ze veilig te maken, komen ze alsnog met quotes en zonder slashes in de database, ik weet waarom, maar is het veilig genoeg?
| ||||||
Tuvai.net | vrijdag 14 november 2008 @ 09:37 | |||||
quote:Ja, het is wanneer we het over data-opslag hebben natuurlijk logisch dat data opgeslagen wordt hoe het door de gebruiker ingevoerd wordt. Het beveiligen is nodig op het moment dat de invoer-query uitgevoerd wordt, op dat moment worden aanhalingstekens e.d. dusdanig onschadelijk gemaakt zodat de uitvoerende functie niet geïnjecteerd kan worden met bagger. ![]() Een functie als deze is overigens al voldoende om kwaadwillige invoer in geval van MySQL queries te filteren:
| ||||||
saban | vrijdag 14 november 2008 @ 10:25 | |||||
Om te voorkomen dat ik 30 keer een query moet doen in een for bouw ik een array op buiten mijn for, dit doe ik door middel van:
Nu heb ik de data wat uit de terug komt gezet in $arrays. Vervolgens wil ik in een for checken of de datum in mijn for voorkomt in de array, door middel van:
Echter werkt dit niet omdat ik in mijn while een array in een array maak. Wat is hier de oplossing van? | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 10:31 | |||||
quote:Waarom zo omslachtig? Je kunt toch ook al door middel van DAY() / MONTH() / YEAR() MySQL functies in je query de records ophalen die je moet hebben? | ||||||
Pizzahut | vrijdag 14 november 2008 @ 10:33 | |||||
Vraagje voor MySQL: Ik heb een MySQL query browser van de officiële website. Nu gebruik ik die heel veel voor localhost wat ook prima werkt. Maar nu wil ik ook een externe host, bij voorkeur dus mijn eigen website eraan toevoegen. Kan iemand mij vertellen wat ik moet invullen bij host? (waar normaal localhost staat). ik heb dus al http://dbadmin.one.com gedaan als mijn website. | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 10:39 | |||||
quote:MySQL draait gewoon op een server waarmee met een server adres/IP, gebruikersnaam en wachtwoord op ingelogd dient te worden. In plaats van localhost dus gewoon de MySQL/database server of het IP adres daarvan, en uiteraard de correcte gebruikersnaam en wachtwoord voor die server, zou genoeg moeten zijn. | ||||||
Pizzahut | vrijdag 14 november 2008 @ 10:42 | |||||
quote:Ik heb nu dit gedaan: Host: http://dbadmin.one.com <- link naar mijn database Gebr.: mijn gebruikersnaam WW: mijn wachtwoord Host: http://puddingbroodje.nl <- link naar mijn website Gebr.: mijn gebruikersnaam WW: mijn wachtwoord beide werken niet. Standaart staat de poort op 3308 ofzo, moet dit anders staan? | ||||||
saban | vrijdag 14 november 2008 @ 10:42 | |||||
quote:Dat kan. Echter de query doet nu wat het moet doen, daar kom ik later op. Het probleem zit nu in de array ![]() | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 10:46 | |||||
quote:Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel. ![]() ![]() quote:Dat snap ik, maar je hoeft helemaal niet met arrays te liggen kutten als je de corresponderende data al op haalt door middel van een goede query. ![]() | ||||||
saban | vrijdag 14 november 2008 @ 10:50 | |||||
quote:Ik denk dat ik mijn probleem verkeerd hebt uitgelegd. Met een for geef ik alle dagen van een maand weer, echter in die for moet ik checken of die datum voorkomt in de database. Ik kan dus bij iedere keer dat de for loopt wel een query uitvoeren om te checken of het voorkomt, maar dan moet ik dus per request 30 keer een query uitvoeren (30 dagen in een maand). Dus ik dacht, ik haal eerst alle data uit de database, deze stop ik in een array. Vervolgens check ik in de for of de datum voorkomt in de array(database). | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 10:55 | |||||
quote:Als je dus puur wilt controleren welke dagen in een gegeven maand voorkomen, is het volgende al voldoende:
![]() [ Bericht 11% gewijzigd door Tuvai.net op 14-11-2008 11:17:44 ] | ||||||
saban | vrijdag 14 november 2008 @ 10:59 | |||||
quote:Nu heb je een array met wat er in de database staat, maar de array moet buiten de while ook nog bruikbaar zijn. | ||||||
Pizzahut | vrijdag 14 november 2008 @ 10:59 | |||||
quote:dus is het deze: Host: http://dbadmin.one.com <- link naar mijn database Gebr.: mijn gebruikersnaam WW: mijn wachtwoord maar die doet het ook niet. | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 11:01 | |||||
quote:Dat is de array $maandenDieVoorkomenInDezeMaand toch ook? In de while() loop wordt 'ie enkel gevuld met de gevonden dagen; daarna kun je doen met array $maandenDieVoorkomenInDezeMaand wat je wilt (lees: vergelijken). ![]() | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 11:02 | |||||
quote:Nee, http://dbadmin.one.com is niet je MySQL server, maar gewoon het adres/een subdomain waar PHPMyAdmin op draait. ![]() | ||||||
Pizzahut | vrijdag 14 november 2008 @ 11:06 | |||||
quote:zodra ik naar http://phpmyadmin.mijnwebsite.nl ga, wordt ik doorverwezen naar dbadmin.one.com | ||||||
saban | vrijdag 14 november 2008 @ 11:06 | |||||
quote:Cool ![]() | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 11:13 | |||||
quote:Dat kan, maar verandert de kwestie niet. Je MySQL server is iets heel anders dan een adres waar je je database met PhpMyAdmin beheert. Je hosting provider kan je vast wel vertellen wat je MySQL server adres is. ![]() | ||||||
saban | vrijdag 14 november 2008 @ 11:17 | |||||
Nu we toch bezig zijn :9 Ik heb de volgende 2 arrays ($array_datum en $array_naam):
Hoe kan ik bijvoorbeeld het volgende echo'n: foo heeft gewerkt op 1-11-2008 of bar heeft gewerkt op 10-11-2008 | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 11:23 | |||||
quote:
Een array() bestaat uit een aantal waardes. Elke waarde in een array krijgt altijd een uniek nummertje, genaamd een index. Stel ik heb de volgende array:
Dan bestaat deze array respectievelijk uit de volgende indexes met daaraan hun corresponderende waardes:
Uiteraard altijd beginnend bij 0. ![]() | ||||||
Pizzahut | vrijdag 14 november 2008 @ 11:24 | |||||
quote:snap ik, alleen weet ik de link niet. even achteraan gaan. | ||||||
Tuvai.net | vrijdag 14 november 2008 @ 11:28 | |||||
quote:Bij mijn PhpMyAdmin is het MySQL server adres en poortnummer weergeven in de titelbalk van mijn browser. Kijk daar anders eens. | ||||||
saban | vrijdag 14 november 2008 @ 11:30 | |||||
Thanks Tuvai, ik wilde het net een beetje anders hebben. Waarom werkt dit niet?
| ||||||
Tuvai.net | vrijdag 14 november 2008 @ 11:35 | |||||
quote:array_keys() is een functie die zelf een array maakt van de keys (oftewel de indexes), van een opgegeven array. :) Zie http://nl2.php.net/manual/en/function.array-keys.php . Overigens weergeeft het volgende stukje uiteraard niks:
Omdat je daadwerkelijk een item uit $array_naam wilt parsen die als key/index '$q' heeft; dit kan natuurlijk niet daar dit een key/indexnummer moet zijn. Dit zou dan wel moeten werken:
| ||||||
saban | vrijdag 14 november 2008 @ 11:37 | |||||
quote:Damn I fuckin love you ![]() | ||||||
mcDavid | vrijdag 14 november 2008 @ 11:48 | |||||
quote:Kun je die arrays niet beter combineren?
Is afhankelijk van wat je er mee wilt, maar misschien een idee. | ||||||
slacker_nl | vrijdag 14 november 2008 @ 11:53 | |||||
quote:'' (single quotes) expand een value niet, "" (doubel quotes) wel. Doe maar eens:
Dit is overigens zo in bijna alle talen. | ||||||
markiemark | zaterdag 15 november 2008 @ 15:01 | |||||
Ik wil contracten opslaan in mijn mysql tabel contracten, in de vorm van timestamps. Nu ga ik bij het inserten van de contracten controleren of er geen periode een dubbel contract bestaat. Als ik dus een contract afsluit van 15-dec-08 tot 15-jun-09, mag er geen nieuw contract ingevoerd worden die de periode op welke manier ook overlapt. Dus geen - overlap aan het begin van het bestaande contract - overlap aan het einde van het bestaande contract - overlap door volledig binnen de periode te vallen (01-jan-09 / 01-mei-09) - exact gelijke overlap. (f5-en) mijn tabel contracten bevat in ieder geval de volgende eigenschappen: - datum_start - datum_einde - klant_id nu heb ik de volgende query opgesteld, maar deze werkt nog niet zoals hij zou moeten werken.
hoe maak ik hem juist werkend? | ||||||
GlowMouse | zaterdag 15 november 2008 @ 15:39 | |||||
Je hebt overlap als de startdatum of de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract. Dat is equivalent met [de startdatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract] of [de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract]. | ||||||
Xcalibur | zaterdag 15 november 2008 @ 16:07 | |||||
Ik zou het overigens niet met een timestamp doen, als je het tijdcomponent toch niet gebruikt, maar gewoon met een date veld ![]() | ||||||
markiemark | zaterdag 15 november 2008 @ 16:13 | |||||
quote:Dan kom ik toch hierop uit:
En dat werkt ook niet.. | ||||||
markiemark | zaterdag 15 november 2008 @ 16:16 | |||||
of toch zo:
lijkt te werken... | ||||||
Light | zondag 16 november 2008 @ 10:31 | |||||
Ik zou ook eens kijken naar BETWEEN. Dan kom je op zoiets uit:
[ Bericht 3% gewijzigd door Light op 16-11-2008 11:30:38 ] | ||||||
SuperRembo | zondag 16 november 2008 @ 11:23 | |||||
Handig zeg, al die query's die voor meer dan de helft buiten het scherm vallen ![]() | ||||||
Light | zondag 16 november 2008 @ 11:30 | |||||
quote:Zo, toch maar even wat enters toegevoegd ![]() | ||||||
everybodysweird | zondag 16 november 2008 @ 15:43 | |||||
Ik ben bezig met een overzicht van verschillende informatie van verschillende sites voor eigen gebruik. Hiervoor gebruik ik de functie "file_get_contents". Dit lukt goed. Ik krijg van een welbepaalde pagina een volledige lap HTML-code. De info die ik nodig heb staat tussen <titlered>xxx</titlered>. Hoe laat ik enkel deze informatie zien? Wie helpt me op weg? | ||||||
mcDavid | zondag 16 november 2008 @ 19:34 | |||||
quote:Met een regular expression <tilered>(.*)</titlered> | ||||||
everybodysweird | zondag 16 november 2008 @ 19:38 | |||||
Bedankt. Ondertussen heb ik al de functie preg_match_all gevonden. Ik krijg ondertussen alles tussen <xxx>tekst<xxx> mooi gefilterd. Echter, ik wil nu enkel de "tekst" weergeven waar een weekdag (maandag, dinsdag, woensdag, etc.) in de tekst staat. Iemand een idee voor deze regular expression? | ||||||
Chandler | zondag 16 november 2008 @ 20:38 | |||||
Ik heb een vraagje over statistieken. Voor mijn systeem wil ik nu het volgende inbouwen. - Start pagina (de pagina waar de gebruiker op binnenkomt) (reeds gedaan, simpel) - Exit pagina (de laatste pagina waar de gebruiker op is geweest voordat hij van mijn site afging) Hoe los ik dit database technisch op? | ||||||
saban | zondag 16 november 2008 @ 21:54 | |||||
quote:Gewoon bij iedere pagina in de database opslaan waar de gebruiker op het moment is? | ||||||
Xcalibur | zondag 16 november 2008 @ 22:27 | |||||
quote:ja, iedere pagina opslaan dus... Wanneer hij weggaat weet je niet namelijk, dus je weet het pas op het moment dat je geen volgende pagina meer krijgt ![]() ![]() | ||||||
CraZaay | maandag 17 november 2008 @ 12:47 | |||||
quote:Google Analytics? ![]() | ||||||
Chandler | maandag 17 november 2008 @ 14:56 | |||||
Duidelijk en CraZaay, ik vind graag het wiel opnieuw uit! ![]() | ||||||
markiemark | maandag 17 november 2008 @ 17:09 | |||||
quote:cool thnx, nooit aan die optie gedacht, maar werkt een stuk makkelijker. heb eerder ook al eens met die probleem gezeten.. | ||||||
Chandler | dinsdag 18 november 2008 @ 23:03 | |||||
Op mijn vorige vraag heb ik een vervolg en natuurlijk heb ik gezocht maar kon hier niets begrijpends over vinden.. Is het mogelijk om het MySQL 5.0 een query in een query te doen. BV Ik wil van een tabel waarin voor gebruikers de laatste referer staat
waarbij ik een unique op site_id en ip_id heb en deze middels een ON DUPLICATE KEY de ref_id aanpas gebruiken om een andere tabel te updaten.
waarbij ik een een unique op site_id en ref_id en weer ON DUPLICATE KEY waarbij ik dit keer de hits met 1 wil verhogen. Dus in het kort de query 1. lees items uit tabel_referer_last_tmp waarbij de tijd minimaal een uur geleden is (timestamp) 2. insert deze in tabel_referer_last (of update hits) 3. verwijder gebruikte items uit tabel_referer_last_tmp En indien hier geen simpele oplossing voor is, hoe los ik dit wel praktisch en efficient op ;) | ||||||
djpdjpnl | dinsdag 18 november 2008 @ 23:10 | |||||
Bluh, ik zit vast. Ik heb een stukje geschreven voor m'n site om in het menu de laatste 5 items uit een bepaalde nieuws categorie te laten zien. Na lang(!) proberen eindelijk een combinatie gevonden die werkte en kon ik eindelijk door naar de volgende stap. Ik heb namelijk bij die categorie een extra tekst in de bericht title staan om het wat duidelijker te maken. Nu wil ik dat wel houden, maar uiteraard niet laten zien in het menu want dat menu is al vernoemd naar die extra aanduiding. Enfin... ik zit dus een beetje vast want ik kan nérgens vinden hoe ik in php de eerste 9 karakters van de opgehaalde titel kan verwijderen.
Even nog eens in het kort wat ik graag zou willen maken; - Uit '#news' wordt o.a. de 'news_title' gehaald - Hier moeten de eerste 9 karakters van weg, bij alle titles van de items uit die categorie - Het mag alleen effect hebben op het menu, niet op de database entry Na een uurtje of 4 te hebben gezocht met mijn grote vriend heb ik het een beetje opgegeven en heb ik besloten elders hulp te zoeken. :) Ik kom niet om jullie het werk te laten doen, 99/100 keer blijf ik prielen tot ik het zelf heb opgelost, juist om er van te leren. Als je het dus duidelijk uitlegt schrijf ik het dus zelf graag zodat het ook blijft steken. Thanks, djpdjpnl | ||||||
Light | dinsdag 18 november 2008 @ 23:13 | |||||
Misschien kan die grote vriend wat beter helpen. ![]() | ||||||
djpdjpnl | dinsdag 18 november 2008 @ 23:23 | |||||
Die pagina heb ik al enige tijd doorgelezen maar dit is niet de oplossing, Light. Ik heb namelijk niet 1 vaste tekst die aangepast wordt. Het ziet er zo ongeveer uit; '123456789 pizza 123456789 schnitzel 123456789 pindakaas' Die 1 t/m 9 moet eruit en ik kan dus niet zeggen als er ''123456789 pizza' staat dan moet 123456789 eruit' want ik weet nu nog niet wat er op de plek van pizza komt te staan. Substr zou dus kunnen helpen mits hij de plek van pizza variabel kan maken en dat snap ik niet hehe. | ||||||
Piles | dinsdag 18 november 2008 @ 23:25 | |||||
Ik en preg_match_all, het blijft een drama. Ik laad een pagina in met een heleboel items die ik een array wil hebben. Ff heel simpel voorbeeldje:
Nu wil ik dus Item 1 en Item 2 in een array hebben. Nu is het probleem dat de lengte van de items heel erg varieert, en het ook over meerdere regels loopt. Als ik dan een expressie als "<td>(.*)<\/td>/s" gebruik, dan krijg ik dus als resultaat "<td>Item 1</td><td>Item 2</td>" :? :{ Hoop dat m'n uitleg een beetje duidelijk is :+ | ||||||
GlowMouse | dinsdag 18 november 2008 @ 23:33 | |||||
djpdjpnl: sla die 123456789 op in een andere kolom. En anders kun je via substring (wat al aangedragen was, maar dit kun je beter in MySQL al doen) gewoon de eerste 10 karakters weghalen. Piles: kijk eens naar greediness. | ||||||
GlowMouse | dinsdag 18 november 2008 @ 23:37 | |||||
quote:Kijk eens hiernaar. Het deleten wordt sowieso een aparte query. Je moet er daarom ook rekening mee houden dat er tussen de eerste twee stappen en de laatste stap wat tijd kan zitten, zodat als je de timestamp niet constant houdt, je enkele rijen verwijdert die je niet verwerkt hebt. | ||||||
Piles | dinsdag 18 november 2008 @ 23:39 | |||||
quote:Modifer U dus ![]() ![]() Dank u ![]() | ||||||
djpdjpnl | woensdag 19 november 2008 @ 00:13 | |||||
quote:Sorry, ik denk dat ik wel in dit topic pas. ![]() De substring, hoe krijg ik die aan de title gekoppeld dat ie de substring variabel aan de title hangt en niet aan niks? Zou 't helpen als ik op line 12 een extra regel tik over hoe $title en substring samen wat doen? Ik weet niet echt hoe ik dat moet gaan schrijven namelijk. ![]() | ||||||
Light | woensdag 19 november 2008 @ 07:21 | |||||
Substr() is toch niet zo heel lastig? Je geeft op op welke string je de bewerking wilt uitvoeren en hoeveel tekens vanaf het begin je wilt overslaan. Wat er daarna staat, is helemaal niet interessant. Zoiets dus:
(Misschien maakt de volgorde van toHTML() en substr() voor het resultaat hier weinig uit, maar dit is wel de veiligere volgorde. Als je eenmaal een html-string hebt, moet je daar niet meer in gaan knippen. | ||||||
Chandler | woensdag 19 november 2008 @ 09:02 | |||||
quote:Daar had ik naar gekeken maar kon er niets mee tenzij ik 3 queries ga gebruiken. Tevens wilde ik de timestamp van time() (php) gebruiken om zo te voorkomen dat ik nieuwe rijen verwijder daar waar het niet nodig is.. Heb je nog meer tips? | ||||||
Swetsenegger | woensdag 19 november 2008 @ 13:28 | |||||
include('../map/bestand.php'); Hiermee ga je een folder omhoog vanuit de folder waarin je bestand staat. Maar hoe kan ik nu terug naar de root? | ||||||
saban | woensdag 19 november 2008 @ 13:51 | |||||
quote:Probeer eens ~ (weet het niet zeker). | ||||||
Pizzahut | woensdag 19 november 2008 @ 14:02 | |||||
weet iemand hoe ik een RSS feed kan uitlezen in php? Deze bijvoorbeeld: http://www.nu.nl/deeplink_rss2/index.jsp?r=Algemeen Op google kom ik steeds deze tegen:
Alleen werkt deze niet. | ||||||
Swetsenegger | woensdag 19 november 2008 @ 14:09 | |||||
Ik heb het pad er nu maar hard ingezet. ~/ was het niet ![]() | ||||||
PiRANiA | woensdag 19 november 2008 @ 14:20 | |||||
quote:INCLUDE("/home/user/bla/bla"); | ||||||
TommyGun | woensdag 19 november 2008 @ 14:21 | |||||
include('../../map/bestand.php'); ook niet? Edit; of zoals hierboven... | ||||||
Paupermans | woensdag 19 november 2008 @ 14:28 | |||||
quote:In php.ini kun je ook de include_path variabele aanpassen, zodat php standaard in bepaalde mappen zoekt naar include bestanden. Dan hoef je slechts include('bestand.php') aan te roepen en php zoekt zelf uit in welke directory dat bestand staat. Zorg er uiteraard wel voor dat al je include bestanden een unieke naam hebben. | ||||||
Swetsenegger | woensdag 19 november 2008 @ 14:35 | |||||
quote:Ja, das gewoon hard het pad erin zetten. quote:Op shared hosting kom je daar niet bij. Maar ik weet dat er gewoon een code voor is. In DOS is het CD \ volgens mij | ||||||
ursel | woensdag 19 november 2008 @ 14:37 | |||||
Is het niet een enkele punt?? include('./map/bestand.php'); | ||||||
CraZaay | woensdag 19 november 2008 @ 14:43 | |||||
quote:Da's de huidige directory. | ||||||
CraZaay | woensdag 19 november 2008 @ 14:45 | |||||
quote:'/' is je root ![]() ![]() | ||||||
djpdjpnl | woensdag 19 november 2008 @ 15:21 | |||||
quote:Ik zat weer te moeilijk te denken. Light, dankjewel! ![]() | ||||||
Light | woensdag 19 november 2008 @ 16:49 | |||||
quote:Wat bedoel je met de root? Gewoon / ? | ||||||
GlowMouse | woensdag 19 november 2008 @ 19:32 | |||||
quote:Je gaat geen folder omhoog, de current working directory blijft gewoon hetzelfde. Zie ook http://nl3.php.net/getcwd quote:Dan doe je wat fout. Simpele testcase:
En dan deze query een paar keer doen:
| ||||||
Swetsenegger | woensdag 19 november 2008 @ 19:40 | |||||
quote:Laat ik het simpeler uitleggen. Mijn script staat in /path/naar/mijn/script De file die ik include in /include/file Hoe ziet mijn include eruit? include(../../../../include/file) klopt maar das gezeik. werkt include(/include/file) dus gewoon? | ||||||
GlowMouse | woensdag 19 november 2008 @ 19:43 | |||||
Swetsenegger: kijk eens in print_r($_SERVER) of daar iets staat wat je kunt gebruiken ![]() | ||||||
Swetsenegger | woensdag 19 november 2008 @ 20:03 | |||||
quote:Ja dat kan uiteraard allemaal, maar volgens mij is er gewoon een ../..\~ whatever combi die gewoon zegt 'path begint nu in '/'' net zoals ../ 'path begint nu relatief 1 level hoger tov het bestand waar je nu in zit' zegt. Snappen we het nog? Zoals gezegd heb ik het ondertussen gewoon met een absoluut path gedaan maar ik ben gewoon benieuwd ![]() | ||||||
GlowMouse | woensdag 19 november 2008 @ 20:05 | |||||
/ begint in de root van het filesystem en dan heb je een absoluut pad. Wat je beter kunt gebruiken is een element uit $_SERVER. | ||||||
Light | woensdag 19 november 2008 @ 20:49 | |||||
quote:Dat zijn vast absolute paden in de webroot van je site en niet absolute paden op het filesystem. quote:include(/include/file) werkt in ieder geval als file in de folder /include/ staat (absolute path). Je zou moeten/kunnen testen of het ook werkt als je eerst het pad naar je webroot aan het include_path toevoegt. | ||||||
Light | woensdag 19 november 2008 @ 20:50 | |||||
quote:Een website hoeft niet in de document_root te staan. Er bestaan ook leuke dingen als aliassen enzo. | ||||||
Light | woensdag 19 november 2008 @ 20:54 | |||||
quote:~ is de homedir van de gebruiker. Bij een website zal dat de homedir van de eigenaar van het proces van de webserver (volg je het nog?) zijn. Dus de webserver draait als user apache, dan wordt gekeken naar de homedir van user apache. En die heeft waarschijnlijk geen homedir. | ||||||
Light | woensdag 19 november 2008 @ 21:10 | |||||
quote:include_path is PHP_INI_ALL, die kun je dus overal aanpassen. Ook gewoon in je scripts. quote:cd \ in DOS en cd / in Unix/Linux. Met als verschil dat je in DOS naar de root van de schijf gaat en in Unix/Linux naar de root van het bestandssysteem. Je kunt aan het pad geen partitie- of schijfstructuur achterhalen. En dan heb je in Linux (en Unix?) ook nog iets als een root jail. Maar dan gaan we wel heel erg offtopic. | ||||||
Swetsenegger | woensdag 19 november 2008 @ 21:27 | |||||
quote:OOK als safe mode aanstaat? | ||||||
Light | woensdag 19 november 2008 @ 21:30 | |||||
quote:Vast wel. In de PHP-documentatie staat in ieder geval niets dat erop wijst dat het alleen werkt als safe mode uit staat. (En daarbij zet een beetje hoster gewoon safe mode uit. Ze moeten sowieso wel als ze naar PHP6 overgaan, ooit.) | ||||||
Swetsenegger | woensdag 19 november 2008 @ 21:33 | |||||
Ik heb een aantal hosters waar safe mode aanstaat, naast nog wat andere beperkende maatregelen. das echt een gezeik. | ||||||
everybodysweird | woensdag 19 november 2008 @ 23:10 | |||||
substr() vraagje: Ik heb 2 strings, zijnde: $string1 = 15-12; $string2 = 3-11; Nu wil ik dat zowel $string1 als $string2 enkel de laatste 2 cijfers geven. Ik heb de functie substr() gevonden, maar ik vind maar niet hoe ik zowel 12 als 11 kan bekomen. | ||||||
Light | woensdag 19 november 2008 @ 23:28 | |||||
quote:Is het altijd 2 cijfers? substr($string, -2); | ||||||
GlowMouse | woensdag 19 november 2008 @ 23:40 | |||||
Waarbij je natuurlijk wel $string1 = "15-12"; moet hebben staan, want anders slaat hij gewoon -3 op in de integer $string1 en kun je die 12 nooit meer terugkrijgen. | ||||||
slacker_nl | donderdag 20 november 2008 @ 07:54 | |||||
include_path kan je gewoon veranderen als safe mode aanstaat overigens. /spuit 11 | ||||||
everybodysweird | donderdag 20 november 2008 @ 08:26 | |||||
Het probleem is dat substr($string, -2); niet lijkt te werken, hij geeft namelijk niets weer. | ||||||
Tuvai.net | donderdag 20 november 2008 @ 08:33 | |||||
quote:Heb je al aanhalingstekens of apostrofs om je declaraties gezet? Dus
i.p.v.
| ||||||
Xcalibur | donderdag 20 november 2008 @ 08:43 | |||||
Kan je niet beter exploden op de - in plaats van substringen? Dat lijkt me een stuk safer als het laatste getal een keer niet uit 2 cijfers bestaat ![]() | ||||||
Chandler | donderdag 20 november 2008 @ 08:51 | |||||
quote:Ik zal er eens mee gaan spelen ![]() Heb ik natuurlijk gelijk een andere vraag, stel ik heb een database met de volgende opzet - persoon (id, naam) - vrienden (id, persoon_id, naam) - vrienden_link (id, vrienden_id, wens_id, jaar) - wensen (id, wens) Nu wil ik graag weten hoeveel mensen dit jaar hun lootjes hebben ingevuld ![]() Ik heb het volgende geprobeerd maar werkt niet naar behoren!
[ Bericht 23% gewijzigd door Chandler op 20-11-2008 09:08:32 ] | ||||||
Paupermans | donderdag 20 november 2008 @ 09:26 | |||||
Zoiets zou wel moeten werken.. | ||||||
Chandler | donderdag 20 november 2008 @ 10:12 | |||||
klopt maar dan mis je nog persoon_id die weer vast zit aan het vrienden tabel ![]() | ||||||
GlowMouse | donderdag 20 november 2008 @ 10:48 | |||||
Die GROUP BY gaat natuurlijk nooit werken he: ten eerste zal vrienden_link.id uniek zijn en bedoel je waarschijnlijk vrienden_link.vriend_id, daarnaast zul je nu voor iedere vrienden_link.id een aparte rij terugkrijgen. Kijk hier eens naar. Wat een gekke databasestructuur trouwens: vrienden zijn nu geen personen en vrienden kunnen nu maar bij één persoon horen. | ||||||
Flaccid | donderdag 20 november 2008 @ 16:43 | |||||
Is hetvolgende mogelijk met PHP? Een bestand openen, maar slechts wat er tussen 2 tags staat.
Dus alles wat tussen area staat moet in een var, uiteindelijk in een tekstbox staan. Is dit mogelijk? Is het moeilijk? | ||||||
VeerMans | donderdag 20 november 2008 @ 17:01 | |||||
quote:splitsen met een regular expression | ||||||
Flaccid | donderdag 20 november 2008 @ 18:01 | |||||
quote:Ik heb gegoogled, dat word dus preg_split? Maar ik heb geen idee hoe ik moet zorgen dat alle tekst tussen die 2 tags eruit kan gevist worden. Ik kan met preg match oid zoeken waar dat ding staat. | ||||||
Light | donderdag 20 november 2008 @ 18:04 | |||||
quote:Ik zou preg_match() gebruiken. | ||||||
saban | donderdag 20 november 2008 @ 18:35 | |||||
quote:Explode eerst op <!-- start -->, en explode die weer op <!-- end --> | ||||||
Flaccid | donderdag 20 november 2008 @ 20:13 | |||||
quote:Dat zegt mij helemaal niks, ik ben niet zo goed met php. | ||||||
VeerMans | donderdag 20 november 2008 @ 20:17 | |||||
preg_match is denk ik het handigst, dit _zou_ moeten werken
en in $matches zit wat je zoekt | ||||||
Flaccid | donderdag 20 november 2008 @ 22:28 | |||||
quote:Wat is matchcount hier? Uiteindelijk wat tussen de tags staat? Wat is /sim? En wat gebeurd er precies met /<!----EDITAREA -->(.*?)<!----ENDEDITAREA -->/sim | ||||||
Piles | donderdag 20 november 2008 @ 22:33 | |||||
quote:Het aantal resultaten, zie http://nl.php.net/manual/en/function.preg-match-all.php quote:Nee, dat komt in $matches. Doe maar eens dit:
quote:http://nl.php.net/reference.pcre.pattern.modifiers ;) quote:Reguliere Expressies, zoek maar eens :) | ||||||
Light | donderdag 20 november 2008 @ 22:36 | |||||
/sim zorgt voor een paar dingen. De i staat voor case Insensitive, zodat EDITDATA en EditData worden geaccepteerd. De m staat voor Multiline. En de s zorgt dat de punt in (.*?) ook newlines matcht. | ||||||
Swetsenegger | vrijdag 21 november 2008 @ 16:12 | |||||
Iemand enig idee waarom ik hier 'datum klopt' uit krijg :?
| ||||||
PiRANiA | vrijdag 21 november 2008 @ 16:46 | |||||
quote:Omdat het 20 nov geweest is? | ||||||
PiRANiA | vrijdag 21 november 2008 @ 16:48 | |||||
[PHP/(My)SQL] voor dummies - Deel 65 | ||||||
Swetsenegger | vrijdag 21 november 2008 @ 16:48 | |||||
quote:dan zou ik dus bij de 'missing parameters' moeten uitkomen. immers zijn er sinds 1 januari 1970 meer seconden verstreken tov 21 Nov (vandaag) dan 20 Nov. |