abonnement Unibet Coolblue Bitvavo
pi_70056439
Wat ik meestal wel een nette oplossing voor dat soort dingen vind is een extra tabelletje, iets als events ofzo.. en met een trigger noteer ik daar dan timestamps in die ik moet bewaren. Zo heb je een complete geschiedenis, niet alleen de vorige gebeurtenis.. Misschien wat overkill voor je situatie
pi_70058083
Ik geef records in principe standaard een timestamp veld met een automatische ON UPDATE erop.
Dan weet je in ieder geval de laatste wijziging. Afhankelijk van de applicatie maak ik soms ook een log tabel, waarin staat welk record in welke tabel door wie geupdate is

Edit: en met welke waarde dus, zodat je ook voorgaande wijzigingen kunt terugvinden
pi_70058097
quote:
Op dinsdag 16 juni 2009 12:39 schreef Intrepidity het volgende:
Wat ik meestal wel een nette oplossing voor dat soort dingen vind is een extra tabelletje, iets als events ofzo.. en met een trigger noteer ik daar dan timestamps in die ik moet bewaren. Zo heb je een complete geschiedenis, niet alleen de vorige gebeurtenis.. Misschien wat overkill voor je situatie
Juist niet het is een school opdracht dacht ik vraag een brainstorm aan .
Krijg meerdere ideeen.

Beste blijft een extra tabel met geschiedenis.

we moeten op eigen initatief een incident probleem en cofiguratie beheer maken
Dit zodat een project goed verloopt. een tooltje ervoor schrijven.

Dit gaan we doen in PHP met veel functies.

[ Bericht 17% gewijzigd door cablegunmaster op 16-06-2009 19:22:58 ]
Redacted
pi_70083916
bestaat er ook een count functie in php die telt hoevaak ik dezelfde variabele aanmaak?
bvb $sql ik wou eens gaan kijken per pagina hoeveel querys ik aanmaak. .

als instantie $sql word aangeroepen +1 voor $count_query of moet ik dan handmatig $count_query++;
en bovenaan de pagina $count_query = 0;

er moet een makkelijkere manier zijn ?

bvb? geen idee of dit werkt :p

1
2
3
4
5
6
7
8
function count_query($sql)
{
if(isset($sql)
{
return $sqlcount++;
}
return 0;
}


[ Bericht 29% gewijzigd door cablegunmaster op 17-06-2009 07:40:15 ]
Redacted
pi_70083946
Waarom log je niet gewoon welke query je uitvoert op het moment dat je hem uitvoert? Zo doe ik het iig, tijdens developen log ik alle sql query`s.
pi_70083958
quote:
Op woensdag 17 juni 2009 07:38 schreef Scorpie het volgende:
Waarom log je niet gewoon welke query je uitvoert op het moment dat je hem uitvoert? Zo doe ik het iig, tijdens developen log ik alle sql query`s.
Hoe bedoel je met loggen?

oplossing 1 bij elke query variabele bijstoppen
1
2
$query = "select * blablabal ";
$count_query++:
Redacted
pi_70083965
quote:
Op woensdag 17 juni 2009 07:40 schreef cablegunmaster het volgende:

[..]

Hoe bedoel je met loggen?
Naar een log-bestand, een textbestandje met niks anders dan informatie over acties die een gebruiker doet, query`s die uitgevoerd worden, en alle andere informatie waar je als ontwikkelaar wat aan kan hebben als er zich bugs bevinden of tijdens het ontwikkelen.

Bij mij zie ik bijvoorbeeld heel veel van dit soort statements staan in de logfile:
quote:
02-05-2009 21:25:55: DEBUG: coredatabase class - Executed query SELECT * from SB_sandwiches | Duration 0.00066400 seconds


[ Bericht 18% gewijzigd door #ANONIEM op 17-06-2009 07:43:12 ]
pi_70083970
quote:
Op woensdag 17 juni 2009 07:42 schreef Scorpie het volgende:

[..]

Naar een log-bestand, een textbestandje met niks anders dan informatie over acties die een gebruiker doet, query`s die uitgevoerd worden, en alle andere informatie waar je als ontwikkelaar wat aan kan hebben als er zich bugs bevinden of tijdens het ontwikkelen.
Hoe maak je zoiets ?
Redacted
pi_70083985
quote:
Op woensdag 17 juni 2009 07:43 schreef cablegunmaster het volgende:

[..]

Hoe maak je zoiets :)?
Vrij simpel: je maakt een aparte class die een textbestandje opent, een regel wegschrijft en weer dicht doet.

Mijn functie:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
private function log($message$level)
  {
    if (
CMS_DB_QUERY_DEBUG)
    {
      if (
$log = @fopen(LOG_FILE"a+"))
      {
        
$date date(INTERNAL_DATE_CONSTANT);
        
$string $date.": ".$level.": ".$message;
        
fwrite($log$string."\r\n");
        
fclose($log);
      }
      else
      {
        echo 
"Logging failed!";
      }
    }
  }
?>
pi_70084004
quote:
Op woensdag 17 juni 2009 07:45 schreef Scorpie het volgende:

[..]

Vrij simpel: je maakt een aparte class die een textbestandje opent, een regel wegschrijft en weer dicht doet.

Mijn functie:
[ code verwijderd ]
ik heb hem gekopieerd :p alleen waar moet ik hem erinstoppen? .
Log(klootzak alweer een error, $level? admin bvb? :p)

of doet hij dat automatisch als ik een error heb in de database/php pagina ?
Redacted
pi_70084019
Waar heb je hem precies ingestopt?
pi_70084033
quote:
Op woensdag 17 juni 2009 07:50 schreef Scorpie het volgende:
Waar heb je hem precies ingestopt?
in mijn include/functions.php die mee gaat in de include.
Redacted
pi_70084051
Je moet hem wel ff goed nalopen, er staan een aantal constantes van mij in die moet je aanpassen.
Daarna moet je ff het woord private ervanaf halen, anders kom je er niet bij.

Daarna is het een kwestie van aanroepen door log("dit ging fout!","error"); te doen.
pi_70084075
quote:
Op woensdag 17 juni 2009 07:54 schreef Scorpie het volgende:
Je moet hem wel ff goed nalopen, er staan een aantal constantes van mij in die moet je aanpassen.
Daarna moet je ff het woord private ervanaf halen, anders kom je er niet bij.

Daarna is het een kwestie van aanroepen door log("dit ging fout!","error"); te doen.
tof stel ik wil bijhouden welke php errors de gebruiker kreeg op welk bestand

Alvast bedankt ik denk dat ik dit wel kan aanpassen

[ Bericht 8% gewijzigd door cablegunmaster op 17-06-2009 08:09:04 ]
Redacted
pi_70084469
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
pi_70084967
quote:
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
ah dat is een optie die ik zeker ga overwegen .

maar dan maak ik voor elke query. als praktisch voorbeeld:
1
2
3
$sql[] = "blablablabla select * from";

count($sql); 
?
Redacted
pi_70085117
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

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.
pi_70085813
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.
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

het ging me voornamelijk om de php errors te loggen . desnoods tonen

[ Bericht 6% gewijzigd door cablegunmaster op 17-06-2009 09:42:56 ]
Redacted
pi_70085951
quote:
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
Das ook wat anders dan deze loggerclass die ik gemaakt heb

zet eens voor de functie LOG_FILE = "c:\log.txt";

[ Bericht 3% gewijzigd door #ANONIEM op 17-06-2009 09:42:38 ]
pi_70085995
quote:
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";
Kwam ik ook achter dit is voor nette foutmelding naar de user toe na een paar paginas door te lezen

heb het al gefixt stomme ; ervoor . lees er soms ook over heen kleine fouten waar ik op zit .
dit maar eens doorgeven aan m'n webhost dit bestandje ^^ , kan het zelf namelijk niet aanpassen .

stomme webhost

[ Bericht 26% gewijzigd door cablegunmaster op 17-06-2009 09:49:38 ]
Redacted
pi_70086350
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..
pi_70087631
quote:
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 ]

?
In principe wel ja. Het is alleen wel handig om je query een naam te geven
$sql['query_1'] = ''; dus
pi_70092859
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..
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.
pi_70096629
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.
Ja, maar ik wil wel gebruik blijven maken van PDO in combinatie met prepared statements, dus da ga nie werken nie.
  woensdag 17 juni 2009 @ 14:57:17 #250
63192 ursel
"Het Is Hier Fantastisch!
pi_70097136
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.
Daarnaast wordt per classe eigenlijk de log-classe aangeroepen, zodat we allerlei logs gescheiden van elkaar in ieders een aparte folder bewaren en wordt er 1 log file per dag gecreëerd.
  donderdag 18 juni 2009 @ 17:30:29 #251
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70138756
Vraagje:

Ik heb de volgende functie om te berekenen hoeveel afstand er tussen 2 coordinaten zit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
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);


}
?>


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?
  donderdag 18 juni 2009 @ 17:34:58 #252
75592 GlowMouse
l'état, c'est moi
pi_70138876
Vantevoren een afstandenmatrix uitrekenen, dat is het snelste.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 18 juni 2009 @ 18:21:46 #253
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70140259
En hoe gaat dat in zn werk ?
pi_70142716
quote:
Op donderdag 18 juni 2009 18:21 schreef Likkende_Lassie het volgende:
En hoe gaat dat in zn werk ?
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.

pseudocode:
1
2
3
4
5
6
7
8
x = totaalAantalPunten();
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);
  }
}


Voordeel: je berekent iedere afstand maar 1 keer.
Nadeel: bij het opvragen van afstanden moet je er rekening mee houden dat het punt met het hoogste id altijd als tweede genoemd wordt.
pi_70142923
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
pi_70143264
quote:
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
Ja, ik had de drie weken vakantie nog maar niet genoemd
  vrijdag 19 juni 2009 @ 09:28:34 #257
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70157072
Ja maar... zo kan ik de afstand van slechts 1 startlocatie opslaan

Er zullen straks flink wat gebruikers verschillende startpunten gaan invoeren, waardoor de afstand per locatie scheelt. Toch?
  vrijdag 19 juni 2009 @ 11:18:48 #258
75592 GlowMouse
l'état, c'est moi
pi_70160065
Oh, de gebruiker heeft zelf een onbekende lokatie. Kun je niet al heel snel heel veel opties wegstrepen als het verschil in latitude of longitude te groot is? Op latitude kun je in Nederland al best goed filtreren, dus als je daar een index opzet en dan WHERE latitude BETWEEN .. AND ... AND longitude BETWEEN .. AND ... gebruikt dan zal het wel flink sneller worden.

[ Bericht 0% gewijzigd door GlowMouse op 20-06-2009 12:09:11 ]
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 19 juni 2009 @ 12:52:04 #259
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70163094
Zoiets zou opzich wel moeten kunnen denk ik ja. Maar, hoe bereken je de lat/long die je in de SQL query gebruikt?
pi_70163395
Kun je het niet generaliseren tot stad/dorp/iets groters dan de exacte coordinaten van de postcode, en een tabel maken die de afstand tussen die grotere blokken opslaat? Tenzij het erg is dat de meting niet 100% nauwkeurig is natuurlijk, dan is dat geen optie.. Mocht je de exacte afstand alsnog willen weten kun je alles selecteren waarbij de afstand tussen de 2 dorpen zegmaar <55km is, daar de exacte afstanden van berekenen, en dan alles <50km weergeven.. ofzoiets..
pi_70174255
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).
-
pi_70175347
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).
Ik zou preg_replace() gebruiken.
pi_70184446
quote:
Op vrijdag 19 juni 2009 19:09 schreef Light het volgende:

[..]

Ik zou preg_replace() gebruiken.
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:
1
2
3
4
5
6
7
8
9
<?php
function str_ireplace_case($input$compare)
{
    if(
strcasecmp($input$compare) === 0)
       return 
"<a href=\"whatever\">{$input}</a>";
    else
       return 
$input;
}
?>

Stuk beter voor de performance dan een regular expression
pi_70184970
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
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.
pi_70185446
quote:
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.
Goed punt, het is ook al laat Het is opzich wel werkend te krijgen met een stripos.. Maar tenzij je deze functionaliteit een paar 1000 keer op een pagina gebruikt is de tijdswinst zo minimaal dat je inderdaad beter af bent met een simpele regex
  zaterdag 20 juni 2009 @ 10:44:57 #266
67978 HenryHill
Fake it 'till you make it
pi_70189556
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?
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.
So this is how liberty dies... with thunderous applause.
Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
  zaterdag 20 juni 2009 @ 11:23:19 #267
75592 GlowMouse
l'état, c'est moi
pi_70190229
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.
Niet waar, ook met MySQL 5.x niet:
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
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 20 juni 2009 @ 11:40:18 #268
67978 HenryHill
Fake it 'till you make it
pi_70190560
quote:
Op zaterdag 20 juni 2009 11:23 schreef GlowMouse het volgende:

[..]

Niet waar, ook met MySQL 5.x niet:
[..]
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?

Ik gebruik zelf geen MySQL, dus ik kan het niet testen, maar gelet op de documentatie (en mijn gevoel bij wat je van een redelijke RDBMS zou mogen verwachten) geef ik het eigenlijk wel een goede kans dat het wel geoptimaliseerd wordt.
So this is how liberty dies... with thunderous applause.
Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
  zaterdag 20 juni 2009 @ 11:46:03 #269
75592 GlowMouse
l'état, c'est moi
pi_70190647
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?
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.

Queries op grote tabellen die geen resultaat kunnen geven op basis van maximaal één index, vermijd ik zelf liever bij webapplicaties. Combineren van indices is in ieder geval in MySQL een stuk trager dan het gebruik van één index. Plus dat je ook vaak wilt sorteren, en dat lukt niet met twee indices.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 20 juni 2009 @ 12:05:26 #270
67978 HenryHill
Fake it 'till you make it
pi_70191046
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.
Oh, zo, ja dat zou ook kunnen. Ik lette met name op het feit dat alle condities met AND's gecombineerd moesten worden en dat per index al zijn kolommen in de conditie aanwezig moesten zijn. Daar lijkt mijn oplossing aan te voldoen, maar inderdaad, bij het gegeven voorbeeld gebruiken ze geen ongelijkheden.
Dus de vraag is of we daaruit moeten afleiden dat dit deel van het algoritme alleen met gelijkheden werkt.
quote:
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.
Ik heb een andere verklaring Ik 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.
quote:
Queries op grote tabellen die geen resultaat kunnen geven op basis van maximaal één index, vermijd ik zelf liever bij webapplicaties.
De meeste webapplicaties gebruiken dan ook geen coordinaten
So this is how liberty dies... with thunderous applause.
Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
  zaterdag 20 juni 2009 @ 12:09:54 #271
75592 GlowMouse
l'état, c'est moi
pi_70191142
quote:
Op zaterdag 20 juni 2009 12:05 schreef HenryHill het volgende:
Ik heb een andere verklaring Ik 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.
Maar wat doe je dan met die index op key_col1?

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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 20 juni 2009 @ 12:14:17 #272
67978 HenryHill
Fake it 'till you make it
pi_70191244
quote:
Op zaterdag 20 juni 2009 12:09 schreef GlowMouse het volgende:

[..]

Maar wat doe je dan met die index op key_col1?
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.

Je snapt dat dit trucje maar voor 1 index toepasbaar is - je kunt je tabel tenslotte maar op 1 manier fysiek gesorteerd opslaan. Dus voor alle andere indexen zul je wel een aparte opslagstructuur moeten bijhouden.
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.
Welke situatie heb je nu uitgeprobeerd dan?

[ Bericht 15% gewijzigd door HenryHill op 20-06-2009 12:19:48 ]
So this is how liberty dies... with thunderous applause.
Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
pi_70202920
http://www.sitemasters.be(...)s_online_script_v2.0

Bezoekers online script zeer onveilig. zitten er leuke ideeën in.
Het grappig is dat de meeste scripts online niet aan de veiligheid denken maar wel aan het script zelf.

Dit script is opzich wel een leuk idee. Jammer van de sql escape.
Redacted
pi_70203126
quote:
Op vrijdag 19 juni 2009 19:09 schreef Light het volgende:

[..]

Ik zou preg_replace() gebruiken.
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.
-
pi_70204816
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.
Moet je dat niet met \b doen?
pi_70207747
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
Redacted
  zaterdag 20 juni 2009 @ 22:22:28 #277
75592 GlowMouse
l'état, c'est moi
pi_70207909
quote:
Op zaterdag 20 juni 2009 12:14 schreef HenryHill het volgende:

[..]

Welke situatie heb je nu uitgeprobeerd dan?
Een WHERE pkey>val1 AND other_key=val2.
Maar als de PK de tabel zelf is, dan zou het dom zijn om die te raadplegen / een rij op te halen als dat ook al uit de andere index op te maken valt.
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
map met includes (oa init.php), map met templates (oa header/footer.php), map met plaatjes, en voor elke pagina een pagina.php.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_70207993
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.
maar hoe doe je het eigenlijk met het omzetten dat je de .php niet meer ziet? .
Redacted
  zaterdag 20 juni 2009 @ 22:26:21 #279
75592 GlowMouse
l'état, c'est moi
pi_70208013
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? .
Als ik mij daar al druk om maak, mod_rewrite.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_70208450
quote:
Op zaterdag 20 juni 2009 22:26 schreef GlowMouse het volgende:

[..]

Als ik mij daar al druk om maak, mod_rewrite.
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
Redacted
  zaterdag 20 juni 2009 @ 22:51:03 #281
75592 GlowMouse
l'état, c'est moi
pi_70208571
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
RewriteRule ^nieuws/(.*)$ page/nieuws.php [NC]
Zo lastig is dat niet. Die .php-files stop ik dan wel in een andere, niet te bezoeken map.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_70214497
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//werkt bestand bestaat
$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/>";
}


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 .

[ Bericht 4% gewijzigd door cablegunmaster op 21-06-2009 09:51:23 ]
Redacted
pi_70214581
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 .
Wat is de waarde van $path ?
pi_70214603
quote:
Op zondag 21 juni 2009 09:53 schreef Light het volgende:

[..]

Wat is de waarde van $path ?
echo $path;
cablegunmaster v3.0/index.php
met behulp van $_SERVER['PHP_SELF'];
en dan komt het met basename eruitrollen als index

hmm... eens even controleren. ik verwijder een br en opeens komt er index uitrollen ipv index.php zit ergens een foutje in hij pakt de .php niet. volgens mij hoort dit .php er niet eens te staan

1
2
3
4
5
6
7
8
$path = $_SERVER['PHP_SELF'];
$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/>";
}


opgelost namelijk .php ik dacht dat hij dat in basename toevoegde. maar blijkbaar verwijderde hij dat.

Handig scriptje controleert of het bestand bestaat en echot het dan ^^. nu nog een paar checks inbouwen

[ Bericht 8% gewijzigd door cablegunmaster op 21-06-2009 10:03:58 ]
Redacted
  zondag 21 juni 2009 @ 09:59:05 #285
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70214622
quote:
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.
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!
pi_70214817
nu nog 1 andere vraag de hele bedoeling van het Iframe scriptje was dat hij als ik een pagina klikte het ergens anders tevoorschijn kwam. en controleerde of de pagina bestond. nu nog de vraag kan ik dit dynamisch maken?

dus bvb.. als ik de <a href="test.php">test</a> klikt dat hij dit toont ergens op m'n pagina. of zal ik dit hardcoded in een case moeten stouwen?

ik heb nu al 2 mogelijkheden gezien

1: via usergroeps dmv als usergroep 0 = roep deze array aan met alle links en titels omschrijvingen erin en echo die eronder. en dan als je op de omschrijving ahref drukt voegt hij een url erachter toe en required hij die erin

2: via get['page']

welke gebruiken jullie?

[ Bericht 36% gewijzigd door cablegunmaster op 21-06-2009 11:11:03 ]
Redacted
  zondag 21 juni 2009 @ 11:28:13 #287
75592 GlowMouse
l'état, c'est moi
pi_70215858
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 had aan de beveiliging gedacht?
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!
Je dacht dat ik uit ging zoeken voor je hoe je rekent met lat/long?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_70217111
quote:
Op zondag 21 juni 2009 11:28 schreef GlowMouse het volgende:

[..]

Je had aan de beveiliging gedacht?
hoe bedoel je?

Je kan namelijk 404 pagina opgeven van dat hij niet bestaat. en de htacces dat de map page met de pagina's niet toegangelijk is.
Redacted
  zondag 21 juni 2009 @ 12:24:43 #289
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70217131
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?
Nougoed, als iemand enig idee heeft hoe de som in elkaar zit, graag!
  zondag 21 juni 2009 @ 12:27:09 #290
75592 GlowMouse
l'état, c'est moi
pi_70217201
quote:
Op zondag 21 juni 2009 12:23 schreef cablegunmaster het volgende:

[..]

hoe bedoel je?
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_70217303
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.
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.

via een array de pagina lijst menu weergeven en dan

voor elke $variabele .pagina.php erachter plakken zodat elke andere opvraging niet toegangelijk is
Redacted
  zondag 21 juni 2009 @ 12:31:53 #292
75592 GlowMouse
l'état, c'est moi
pi_70217337
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 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:

[..]

voor elke $variabele .pagina.php erachter plakken zodat elke andere opvraging niet toegangelijk is
Dat is schijnveiligheid, met een NUL-byte (chr(0)) te omzeilen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_70217371
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.
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
Redacted
  zondag 21 juni 2009 @ 12:34:05 #294
75592 GlowMouse
l'état, c'est moi
pi_70217403
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
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.
En zie edit vorige post.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_70217469
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.
Redacted
  zondag 21 juni 2009 @ 12:38:47 #296
75592 GlowMouse
l'état, c'est moi
pi_70217548
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.
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zondag 21 juni 2009 @ 12:46:06 #297
67978 HenryHill
Fake it 'till you make it
pi_70217762
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!
Ik heb geen idee wat dit op postcode.nl doet, maardeze pagina bevat een berekening die wellicht doet wat je wilt...

Oh, en check ook de pagina waar hij naar verwijst: http://www.movable-type.co.uk/scripts/gis-faq-5.1.html
So this is how liberty dies... with thunderous applause.
Truth? What's so great about the truth? Try lying for a change, it's the currency of the world
pi_70218117
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.
ja opzich heb je wel gelijk. 1 pagina is niet overzichtelijk.

ik denk teveel dat alles op de index pagina moet staan maar dat is te gelimiteerd aan opties.
kan beter alles in de header en footer schrijven en die elke keer includen


ik krijg steeds in mn hoofd dat alles op de index moet staan.
Redacted
pi_70218289
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! :)
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:
1
2
3
4
5
6
7
8
9
10
11
Punt 1      Punt 2
(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)
  zondag 21 juni 2009 @ 13:12:57 #300
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70218504
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 ]


Hier heb ik wel iets waar PI in voorkomt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$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
             
); 
?>



EDIT:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
' THIS VARIABLE SETS THE RADIUS IN MILES
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]


Zojuist bovenstaande gevonden, even mee stoeien, wie weet kom ik er zo uit!

[ Bericht 14% gewijzigd door Likkende_Lassie op 21-06-2009 13:18:47 ]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')