ah dat is een optie die ik zeker ga overwegenquote:Op woensdag 17 juni 2009 08:41 schreef Xcalibur het volgende:
je kan ook gewoon van $sql een array maken, en daar al je queries inzetten
Dan kan je met een count($sql) zien hoeveel queries je hebt gedraaid
1 2 3 | count($sql); |
quote:Op woensdag 17 juni 2009 07:57 schreef cablegunmaster het volgende:
[..]
tof stel ik wil bijhouden welke php errors de gebruiker kreeg op welk bestand
Alvast bedankt ik denk dat ik dit wel kan aanpassen![]()
ja , maar ik kom er niet achter hoe ik die kan veranderen. denk dat mijn config file niet meewerkt herstart ik xampp doet hij het nog niet.quote:Op woensdag 17 juni 2009 09:12 schreef Scorpie het volgende:
[..]
Nou ja ik gebruik deze logger vooral om acties te loggen, dus zeg maar wanneer iemand inlogged, dan schrijf ik een regel weg met "Gebruiker A is ingelogged", dat soort dingen.
Je kan het ook wel gebruiken om errors van PHP te loggen, maar die worden standaard al gelogged.
Das ook wat anders dan deze loggerclass die ik gemaakt hebquote:Op woensdag 17 juni 2009 09:36 schreef cablegunmaster het volgende:
[..]
ja , maar ik kom er niet achter hoe ik die kan veranderen. denk dat mijn config file niet meewerkt herstart ik xampp doet hij het nog niet.
wat ik doe :
ik open php5.ini C:\xampp\php\php5.ini
1: reg 353 error_log = "C:\xampp\htdocs\cablegunmaster v3.0\log_file.txt"
alleen hij wil hem niet zo hebben :p want hij logt nog steeds in de standaard locatie
Kwam ik ook achter dit is voor nette foutmelding naar de user toequote:Op woensdag 17 juni 2009 09:42 schreef Scorpie het volgende:
[..]
Das ook wat anders dan deze loggerclass die ik gemaakt heb
zet eens voor de functie LOG_FILE = "c:\log.txt";
In principe wel ja. Het is alleen wel handig om je query een naam te gevenquote:Op woensdag 17 juni 2009 09:06 schreef cablegunmaster het volgende:
[..]
ah dat is een optie die ik zeker ga overwegen.
maar dan maak ik voor elke query. als praktisch voorbeeld:
[ code verwijderd ]
?![]()
Ik heb zelf een functie die mysql_query() overkoepelt en wanneer ik mijn Boolean $Log aan zet, de queries die uitgevoerd worden in String-vorm naar een log bestand schrijven. Want de query die je in functie mysql_query() gebruikt is niet meer dan dat, een String.quote:Op woensdag 17 juni 2009 09:55 schreef Intrepidity het volgende:
Over het loggen van SQL queries gesproken.. Is er ook een manier om af te vangen wat er EXACT naar de database gestuurd word? Ik maak gebruik van PDO, en als ik mijn queries log staan de variabelen hier nog in.. iets als "SELECT * FROM tabel WHERE veld = :waarde". Bij debuggen heb ik daar soms niet zo gek veel aan..
Ja, maar ik wil wel gebruik blijven maken van PDO in combinatie met prepared statements, dus da ga nie werken nie.quote:Op woensdag 17 juni 2009 13:01 schreef Tuvai.net het volgende:
[..]
Ik heb zelf een functie die mysql_query() overkoepelt en wanneer ik mijn Boolean $Log aan zet, de queries die uitgevoerd worden in String-vorm naar een log bestand schrijven. Want de query die je in functie mysql_query() gebruikt is niet meer dan dat, een String.
Zoiets gelijks hebben wij hier ook inderdaad.quote:Op woensdag 17 juni 2009 13:01 schreef Tuvai.net het volgende:
[..]
Ik heb zelf een functie die mysql_query() overkoepelt en wanneer ik mijn Boolean $Log aan zet, de queries die uitgevoerd worden in String-vorm naar een log bestand schrijven. Want de query die je in functie mysql_query() gebruikt is niet meer dan dat, een String.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function afstandTotPunt($lat1,$lng1,$lat2,$lng2) { $a1 = deg2rad($lat1); //lat 1 in radialen $a2 = deg2rad($lat2); //lat 2 (het xcoordinaat) in radialen $b1 = deg2rad($lng1); //lng 1 in radialen $b2 = deg2rad($lng2); //lng 2 (het ycoordinaat) in radialen $r = 6378.8; //de radius / straal van de aarde in kilometers return (acos(cos($a1)*cos($b1)*cos($a2)*cos($b2) + cos($a1)*sin($b1)*cos($a2)*sin($b2) + sin($a1)*sin($a2)) * $r); } ?> |
Je hebt die 300.000+ records in een database. Ik neem aan dat die dingen ook allemaal een eigen id hebben. Dan maak je een tabel aan met de velden id1, id2 en afstand (vergeet ook de indexen niet). En een scriptje om die tabel te vullen.quote:
1 2 3 4 5 6 7 8 | for(i = 1; i <= x; i++) { for(j = i + 1; j <= x; j++) { afstand = berekenAfstand(i, j) sql = 'insert into matrix(id1, id2, afstand) values (i, j, afstand)' doQuery(sql); } } |
Ja, ik had de drie weken vakantie nog maar niet genoemdquote:Op donderdag 18 juni 2009 19:45 schreef Xcalibur het volgende:
je kan ze ook ALLEMAAL uitrekenen
Dus zowel de heenweg als de terugweg zeg maar... Dan voorkom je je nadeel, en heb je feitelijk de helft aan overbodige records
Ik zou preg_replace() gebruiken.quote:Op vrijdag 19 juni 2009 18:33 schreef splendor het volgende:
Ik wil een str_ireplace gebruiken om een link ergens omheen te zetten, maar hij moet het originele woord niet veranderen qua hoofd/kleine letters. Is dat mogelijk of wordt het een eregi oid?
Bijvoorbeeld "Dit IS eEn Test" wordt niet "dit is een test" (met link eromheen dan).
Lekker goed voor de performance ookquote:
1 2 3 4 5 6 7 8 9 | function str_ireplace_case($input, $compare) { if(strcasecmp($input, $compare) === 0) return "<a href=\"whatever\">{$input}</a>"; else return $input; } ?> |
Ik ben het met je eens dat het sneller is als je geen regular expression nodig hebt. Maar van de regular expression functies presteren de preg_* functies over het algemeen veel beter dan de ereg_* functies.quote:Op vrijdag 19 juni 2009 23:51 schreef Intrepidity het volgende:
[..]
Lekker goed voor de performance ook![]()
![]()
Aangezien de functionaliteit in php (afaik) niet bestaat om hoofdletterongevoelig te vergelijken maar vervolgens wel de hoofdletters te behouden zou ik er gewoon een eigen functietje voor maken:
[ code verwijderd ]
Stuk beter voor de performance dan een regular expression
Goed punt, het is ook al laatquote:Op zaterdag 20 juni 2009 00:08 schreef Light het volgende:
[..]
Ik ben het met je eens dat het sneller is als je geen regular expression nodig hebt. Maar van de regular expression functies presteren de preg_* functies over het algemeen veel beter dan de ereg_* functies.
En jouw functie is leuk, maar werkt alleen als de input een exacte match is met de compare-tekst (hoofdletters buiten beschouwing gelaten). Met preg_replace() mag er ook tekst voor en/of achter de gezochte tekst staan en kun je toch een goede vervanging maken.
Wat is een te verwachten waarde voor de straal? 1km? 10km? 100km? Dit is namelijk heel erg bepalend voor hoeveel procent van je records je terug zou kunnen krijgen. Bij 100km zou je in theorie bijna alle locaties terug kunnen krijgen, dus dan heeft slim querien weinig zin, bijvoorbeeld.quote:Op donderdag 18 juni 2009 17:30 schreef Likkende_Lassie het volgende:
Vraagje:
Ik heb de volgende functie om te berekenen hoeveel afstand er tussen 2 coordinaten zit:
[ code verwijderd ]
Echter, nu heb ik een database met +300.000 records.
Ik wil dat de gebruiker kan zeggen: ik wil binnen een straal van xx KM de resultaten zien.
Dat kunnen ze doen door een postcode in te vullen, waar ik een ander script voor heb om de coordinaten te berekenen.
Maar, om nu elk record te doorlopen om te kijken wat de afstand is, komt natuurlijk niet ten goede van de performance.
Weet iemand hoe ik het bovenstaande het beste kan berekenen? Ik heb in de database de coordinaten al opgeslagen. Dus ik zou eigenlijk in mijn mysql query kunnen zoeken op bijvoorbeeld: LIKE Lat = 1234'%' ,,, maar hoe dit te berekenen?
Niet waar, ook met MySQL 5.x niet:quote:Op zaterdag 20 juni 2009 10:44 schreef HenryHill het volgende:
Het voordeel is dat je deze vierkant rechtstreeks kan gebruiken in je query ("WHERE Lat between 51,201 and 51,323 and Long between 54.30 and 54.37") en dat dit geoptimaliseerd kan door de indexen op de Lat en Long kolommen.
quote:If a range scan is possible on some key, the optimizer will not consider using Index Merge Union or Index Merge Sort-Union algorithms. For example, consider this query
Hmm, volgens mij zou je dan het stuk over index intersections moeten quoten, en ik maak hieruit op dat MySQL dan wel beide indexen gebruikt?quote:Op zaterdag 20 juni 2009 11:23 schreef GlowMouse het volgende:
[..]
Niet waar, ook met MySQL 5.x niet:
[..]
De enige ongelijkheid die ik zie staan daar is er eentje op een primary key van een InnoDB-tabel. Dat zal er wel mee te maken hebben dat die key bij elke entry in de index op key_col1 opgeslagen wordt, en MySQL dus eigenlijk alleen de index op key_col1 hoeft te raadplegen en daarbij direct en 'gratis' de ongelijkheid kan checken.quote:Op zaterdag 20 juni 2009 11:40 schreef HenryHill het volgende:
[..]
Hmm, volgens mij zou je dan het stuk over index intersections moeten quoten, en ik maak hieruit op dat MySQL dan wel beide indexen gebruikt?
Oh, zo, ja dat zou ook kunnen.quote:Op zaterdag 20 juni 2009 11:46 schreef GlowMouse het volgende:
[..]
De enige ongelijkheid die ik zie staan daar is er eentje op een primary key van een InnoDB-tabel.
Ik heb een andere verklaringquote:Dat zal er wel mee te maken hebben dat die key bij elke entry in de index op key_col1 opgeslagen wordt, en MySQL dus eigenlijk alleen de index op key_col1 hoeft te raadplegen en daarbij direct en 'gratis' de ongelijkheid kan checken.
De meeste webapplicaties gebruiken dan ook geen coordinatenquote:Queries op grote tabellen die geen resultaat kunnen geven op basis van maximaal één index, vermijd ik zelf liever bij webapplicaties.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |