Maar wat doe je dan met die index op key_col1?quote:Op zaterdag 20 juni 2009 12:05 schreef HenryHill het volgende:
Ik heb een andere verklaringIk denk dat InnoDB zijn primary key index altijd 'clustered' maakt, d.w.z. dat de records fysiek geordend op primary key worden opgeslagen. En wanneer gegevens fysiek gesorteerd opgeslagen zijn, is het heel efficient om een range query uit te voeren: je zoekt het beginpunt, het eindpunt, en je retourneert alle rijen ertussenin.
Het feit dat je gegevens fysiek geordend zijn op key_col1 maakt dat de tabel al geindexeerd is - het heeft geen aparte opslagstructuur nodig. Je tabel is tevens je index, als het ware.quote:Op zaterdag 20 juni 2009 12:09 schreef GlowMouse het volgende:
[..]
Maar wat doe je dan met die index op key_col1?
Welke situatie heb je nu uitgeprobeerd dan?quote:edit: EXPLAIN geeft aan toch iets te doen met index_intersect. Vreemd, ik zou zeggen dat alleen de index op key_col1 gebruiken efficienter is.
Dankje, die werkte een stuk beter.quote:
Moet je dat niet met \b doen?quote:Op zaterdag 20 juni 2009 19:48 schreef splendor het volgende:
[..]
Dankje, die werkte een stuk beter.
Alleen heb ik met /b gezegd dat het alleen hele woorden moeten zijn, maar dat pakt ie niet erg.
Een WHERE pkey>val1 AND other_key=val2.quote:Op zaterdag 20 juni 2009 12:14 schreef HenryHill het volgende:
[..]
Welke situatie heb je nu uitgeprobeerd dan?
map met includes (oa init.php), map met templates (oa header/footer.php), map met plaatjes, en voor elke pagina een pagina.php.quote:Op zaterdag 20 juni 2009 22:16 schreef cablegunmaster het volgende:
Vraag hoe zetten jullie je website op ?
ik neem aan een ... header + footer aparte files een configuration.php met alle functions.
hoe doen jullie het met alle pagina's toevoegen met bvb www.website.nl/pagina/ ipv pagina.php
is daar een scriptje voor? of gebruiken jullie htacces?
Want ik zit nu in een mentale knoop in m'n hoofd. genoeg leuke scriptjes en ideetjes. maar een opzet in m'n kop loop ik mee vast
maar hoe doe je het eigenlijk met het omzetten dat je de .php niet meer ziet?quote:Op zaterdag 20 juni 2009 22:22 schreef GlowMouse het volgende:
map met includes (oa init.php), map met templates (oa header/footer.php), map met plaatjes, en voor elke pagina een pagina.php.
Als ik mij daar al druk om maak, mod_rewrite.quote:Op zaterdag 20 juni 2009 22:25 schreef cablegunmaster het volgende:
[..]
maar hoe doe je het eigenlijk met het omzetten dat je de .php niet meer ziet?.
ik ga dit eens doornemenquote:Op zaterdag 20 juni 2009 22:26 schreef GlowMouse het volgende:
[..]
Als ik mij daar al druk om maak, mod_rewrite.
RewriteRule ^nieuws/(.*)$ page/nieuws.php [NC]quote:Op zaterdag 20 juni 2009 22:45 schreef cablegunmaster het volgende:
[..]
ik ga dit eens doornemen![]()
http://www.sitepoint.com/article/guide-url-rewriting/
lijkt me droge kost en na verloop van tijd simpeler om een variabel van te maken. als mogelijk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $file = "index.php"; if (file_exists($file)) { echo "1.The file $file exists"; } else { echo "1.The file $file does not exist"; } // poging 2 met een variabele url. $file = basename($path,".php"); echo "<br>".$file."<br/>"; if (file_exists($file)) { echo "2.The file $file exists"; } else { echo "2.The file $file does not exist<br/>"; } |
Wat is de waarde van $path ?quote:Op zondag 21 juni 2009 09:43 schreef cablegunmaster het volgende:
Maar dan zat ik met het volgende probleem:
de functie als het bestand bestaat dat hij hem weergeeft en anders error bestand bestaat niet.
probleem:
index.php
[ code verwijderd ]
basename kan ik hiervoor niet gebruiken? terwijl ze beide als output geven
1. The file index.php exist.
2. The file index.php does not exist.
bij 2 echo krijg je index.php te zien.
Raar... in mijn ogen zit er precies hetzelfde in de functie
uiteindelijk wou ik een vervanging voor een soort van Iframe in php.
echo $path;quote:
1 2 3 4 5 6 7 8 | $file = basename($path); echo "<br>".$file."<br/>"; if (file_exists($file)) { echo "1.The file $file exists"; } else { echo "1.The file $file does not exist<br/>"; } |
Ik begrijp wat je/jullie zeggen, maar mijn vraag is eigenlijk eenvoudigquote:Op zaterdag 20 juni 2009 10:44 schreef HenryHill het volgende:
[..]
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.
Stel dat je straal maximaal zo'n 40 km is, dan zou je het volgende kunnen doen:
* Sla de lattitude op in z'n eigen kolom, met een aparte index op alleen deze kolom.
* Sla de longitude op in z'n eigen kolom, met een aparte index op alleen deze kolom.
* Als je gaat querien, gebruik dan niet de cirkel met een straal van X kilometer, maar het vierkant wat deze cirkel omsluit (oftewel "teken het kleinst mogelijke vierkant om de cirkel met straal X"). 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.
* De resultset die je terugkrijgt bevat nu nog wel punten die wel binnen het vierkant vielen, maar niet binnen de cirkel. Deze zul je er in code uit moeten filteren met de berekening die je postte, maar dat is niet zo erg, omdat dit slechts ong. 20% van je rijen zal betreffen - de overige 80% valt zowel binnen het vierkant als binnen de cirkel.
Dit lijkt me de best haalbare combinatie van een eenvoudige query die relatief weinig nutteloze rijen teruggeeft.
Je had aan de beveiliging gedacht?quote:Op zondag 21 juni 2009 09:43 schreef cablegunmaster het volgende:
Maar dan zat ik met het volgende probleem:
de functie als het bestand bestaat dat hij hem weergeeft en anders error bestand bestaat niet.
Je dacht dat ik uit ging zoeken voor je hoe je rekent met lat/long?quote:Op zondag 21 juni 2009 09:59 schreef Likkende_Lassie het volgende:
[..]
Ik begrijp wat je/jullie zeggen, maar mijn vraag is eigenlijk eenvoudig:
Hoeveel is Lat / Long + bijvoorbeeld 10 of 100 Kilometer?
Dan zal de techniek erachter wel moeten lukken!
hoe bedoel je?quote:
Nougoed, als iemand enig idee heeft hoe de som in elkaar zit, graag!quote:Op zondag 21 juni 2009 11:28 schreef GlowMouse het volgende:
[..]
Je dacht dat ik uit ging zoeken voor je hoe je rekent met lat/long?
Dat ik geen pagina's kan opvragen waarvan jij niet wilt dat ik ze kan opvragen. Bv je index.php maar ook files in een andere map.quote:
ah nee de beveiliging is htacces ingesteld dat je bepaalde mappen geen toegang hebt. via get maar wel via a href kan weergeven dus kun je niet extern op de pagina komen.quote:Op zondag 21 juni 2009 12:27 schreef GlowMouse het volgende:
[..]
Dat ik geen pagina's kan opvragen waarvan jij niet wilt dat ik ze kan opvragen. Bv je index.php maar ook files in een andere map.
Dat moet wel een heel goede beveiliging zijn! Ik zou me toch eens inlezen.quote:Op zondag 21 juni 2009 12:30 schreef cablegunmaster het volgende:
[..]
ah nee de beveiliging is htacces ingesteld dat je bepaalde mappen geen toegang hebt. via get maar wel via a href kan weergeven dus kun je niet extern op de pagina komen.
Dat is schijnveiligheid, met een NUL-byte (chr(0)) te omzeilen.quote:Op zondag 21 juni 2009 12:30 schreef cablegunmaster het volgende:
[..]
voor elke $variabele .pagina.php erachter plakkenzodat elke andere opvraging niet toegangelijk is
![]()
ik krijg volgend jaar nog een hoofdstuk beveiliging maar wat bedoel je?quote:Op zondag 21 juni 2009 12:31 schreef GlowMouse het volgende:
[..]
Dat moet wel een heel goede beveiliging zijn! Ik zou me toch eens inlezen.
Wat ik bedoel is dat je met "a href" een normale GET krijgt, dus als dat werkt dan heb je gewoon geen beveiliging tegen GET.quote:Op zondag 21 juni 2009 12:33 schreef cablegunmaster het volgende:
[..]
ik krijg volgend jaar nog een hoofdstuk beveiliging maar wat bedoel je?ik weet dat je via htacces de post en get kan uitschakelen voor een bepaalde map
Zelf een whitelist bijhouden met pagina's die de user op mag vragen. Of het idee laten varen om alles via één index.php te doen en voor elke pagina een aparte file gebruiken.quote:Op zondag 21 juni 2009 12:36 schreef cablegunmaster het volgende:
vertel, hoe zou je dit kunnen oplossen? want ik heb al heel wat stukjes gelezen over mogelijke aanvallen op websites beginnend met sql escape eindigend met bruteforce md5.
Ik heb geen idee wat dit op postcode.nl doet, maardeze pagina bevat een berekening die wellicht doet wat je wilt...quote:Op zondag 21 juni 2009 12:24 schreef Likkende_Lassie het volgende:
[..]
Nougoed, als iemand enig idee heeft hoe de som in elkaar zit, graag!
ja opzich heb je wel gelijk.quote:Op zondag 21 juni 2009 12:38 schreef GlowMouse het volgende:
[..]
Zelf een whitelist bijhouden met pagina's die de user op mag vragen. Of het idee laten varen om alles via één index.php te doen en voor elke pagina een aparte file gebruiken.
Volgens mij ontbreekt pi in je formule. De omtrek van een cirkel is 2 * pi * r en dat vind ik niet terug in je formule. Ook is de straal van de aarde niet constant.quote:Op zondag 21 juni 2009 12:24 schreef Likkende_Lassie het volgende:
[..]
Nougoed, als iemand enig idee heeft hoe de som in elkaar zit, graag! :)
1 2 3 4 5 6 7 8 9 10 11 | (Lat, Lng) (Lat, Lng) ( 0, 0) ( 15, 0) ( 0, 60) ( 15, 60) ( 0, 120) ( 15, 120) ( 0, 180) ( 15, 180) ( 0, 0) ( 0, 15) ( 30, 0) ( 30, 15) ( 60, 0) ( 60, 15) ( 90, 0) ( 90, 15) |
Hier heb ik wel iets waar PI in voorkomt:quote:Op zondag 21 juni 2009 13:05 schreef Light het volgende:
[..]
Volgens mij ontbreekt pi in je formule. De omtrek van een cirkel is 2 * pi * r en dat vind ik niet terug in je formule. Ook is de straal van de aarde niet constant.
Verder kun je natuurlijk zelf aan het rekenen gaan. Bereken eens de afstand tussen de volgende punten:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $r = 6378.8; //de radius / straal van de aarde in kilometers $fltDistance = ( $r * 3.1415926 * sqrt( ( $fltLat2 - $fltLat1 ) * ( $fltLat2 - $fltLat1 ) + cos ( $fltLat2 / 57.29578 ) * cos ( $fltLat1 / 57.29578 ) * ( $fltLon2 - $fltLon1 ) * ( $fltLon2 - $fltLon1 ) ) / 180 ); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | iRadius = 150 istartlat=Session("lat" istartlong=Session("long" LatRange = iradius / ((6076 / 5280) * 60) LongRange = iRadius / (((cos(cdbl(iStartLat * _ 3.141592653589 / 180)) * 6076.) / 5280.) * 60) LowLatitude = istartlat - LatRange HighLatitude = istartlat + LatRange LowLongitude = istartlong - LongRange HighLongitude = istartlong + LongRange SELECT * FROM Locations WHERE Latitude <= [HighLatitude] AND Latitude >= [LowLatitude] AND Longitude >= [LowLongitude] AND Longitude <= [HighLongitude] |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |