Tijd + 6 uur
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$sql = "
INSERT INTO balk
(
naam,
bericht,
ip,
datum
)
VALUES
(
'".mysql_real_escape_string($_POST['naam'])."',
'".mysql_real_escape_string($_POST['bericht'])."',
'".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',
NOW()
)
";
?>
$sql = "
INSERT INTO balk
(
naam,
bericht,
ip,
datum
)
VALUES
(
'".mysql_real_escape_string($_POST['naam'])."',
'".mysql_real_escape_string($_POST['bericht'])."',
'".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."',
NOW()
)
";
?>
Problemen:
- Ik gebruik een webhost met een andere tijdzone. Er is dus altijd 6 uur verschil. Is het mogelijk om dit automatisch in mijn database te laten opnemen? Ik had ergens gelezen dat dit niet kon, op andere plaatsen wel..
- Het volgende probleem is, iemand heeft mij berichtenbalk uitgeprobeerd maar zijn IP werd niet goed weergegeven. Er waren te weinig cijfers. Hoe zou dit kunnen komen?
Hopelijk kunnen jullie me weer helpen.
Met vriendelijke groet
Dem Ian
Gewijzigd op 31/12/2011 14:58:38 door Dem Ian
Gesponsorde koppelingen:
Het weergeven van de juiste datum tijd is opmaak, dus dat regel je bij het ophalen van gegevens.
Let wel datum/tijd is een relatief begrip, je kunt dus niet aannemen dat er altijd 6 uur - wat dat dan inhoudelijk mag betekenen - tijdsverschil is.
En raadpleeg eens het grote handleidingenboek van je database of als je het met php wilt doen dan raadpleeg je php.net
Let wel datum/tijd is een relatief begrip, je kunt dus niet aannemen dat er altijd 6 uur - wat dat dan inhoudelijk mag betekenen - tijdsverschil is.
En raadpleeg eens het grote handleidingenboek van je database of als je het met php wilt doen dan raadpleeg je php.net
Ik had ook ergens gelezen dit: date_default_timezone_set('Europe/Berlin');
Hoe zou ik dit dan in mijn script kunnen zetten of werkt dit dan ook via het ophalen van gegevens?
Ik ben ook bezig met nu phptuts helemaal te lezen :)
Hoe zou ik dit dan in mijn script kunnen zetten of werkt dit dan ook via het ophalen van gegevens?
Ik ben ook bezig met nu phptuts helemaal te lezen :)
Dat is php, dus dan blijf je het tijdsverschil behouden.
Antwoord op je date_default_timezone_set vraag is te vinden op php.net
denk niet dat je daar veel wijzer van wordt
Antwoord op je date_default_timezone_set vraag is te vinden op php.net
Quote:
Ik ben ook bezig met nu phptuts helemaal te lezen
denk niet dat je daar veel wijzer van wordt
Moet ergens beginnen om Php te leren?
Op phptuts.nl staat een mooie beginnerstutorial.
Heb eigenlijk een dom vraagje maar dit staat niet op phptuts en ik denk dat ik daarvoor geen nieuwe topic dien te starten.
Hoe neem ik de hoogste ID uit me database?
Hoe neem ik de hoogste ID uit me database?
SELECT MAX(id) FROM iets
Gewijzigd op 02/01/2012 14:04:32 door - Aar -
Nja, je snapt me denk ik wat verkeerd. Heb het ook niet goed uitgelegd.
Ik moet dus bij 'WHERE' de hoogste id selecteren. Het laatste wat dus eigenlijk in de database is toegevoegd.
Code (php)
1
2
3
4
2
3
4
$sql_get_user = "SELECT stats
FROM status
WHERE id='".mysql_real_escape_string($_GET['id'])."'
";
FROM status
WHERE id='".mysql_real_escape_string($_GET['id'])."'
";
Ik moet dus bij 'WHERE' de hoogste id selecteren. Het laatste wat dus eigenlijk in de database is toegevoegd.
WHERE id = MAX(id)
SELECT stats FROM status ORDER BY id DESC LIMIT 1
Oh ok, en is dat dan sql injection vrij?
Ja, er komt toch geen enkele input van een gebruiker bij kijken.
Ik heb nog altijd een foutje:
De error zegt dit:
De error zegt dit:
Probeer het voorbeeld van Herman als je het hele record wilt hebben.
Oh lol, die had ik niet gezien.
Bedankt het werkt.
Bedankt het werkt.
Ik denk dat je MAX(id) alleen voor de FROM kunt gebruiken
Zou het niet weten maar m'n eerste script werkt nu.
Herman van Ree op 02/01/2012 14:38:31:
Ik denk dat je MAX(id) alleen voor de FROM kunt gebruiken
Blijkbaar. Wist ik niet.
Ondanks dat het probleem opgelost is, wil ik er toch een kleine kanttekening bij plaatsen. Het lijkt erop alsof je nu het id gebruikt om records te sorteren op het moment waarop ze toegevoegd zijn. Dit mag je eigenlijk niet doen, aangezien het id je deze informatie helemaal niet geeft, hoewel dat wel zo lijkt. Voeg je bijvoorbeeld oudere records opnieuw in in je database, dan krijgen deze wel een hoger id...
Het id is er enkel voor bedoeld om records uniek aan te duiden, niet om op te sorteren. Wil je iets sorteren op moment van toevoegen, sla dan ook een datumtijdstempel op en sorteer daarop.
Het id is er enkel voor bedoeld om records uniek aan te duiden, niet om op te sorteren. Wil je iets sorteren op moment van toevoegen, sla dan ook een datumtijdstempel op en sorteer daarop.
Als we dan toch bezig zijn: gebruik geen timestamp om bv. 'creation_date' te vullen.
Er zijn nogal wat versies/implementaties van Mysql die bij elke update het eerste timestamp-veld in een record ALTIJD opnieuw vullen.
Dus als creation_date toevallig het het eerste timestamp-veld tijdens CREATE is geweest, dan wordt het bij elke update van het reord opnieuw gevuld.
Geen timestamp, maar gewoon een datetime...voorkomt gedoe.
Er zijn nogal wat versies/implementaties van Mysql die bij elke update het eerste timestamp-veld in een record ALTIJD opnieuw vullen.
Dus als creation_date toevallig het het eerste timestamp-veld tijdens CREATE is geweest, dan wordt het bij elke update van het reord opnieuw gevuld.
Geen timestamp, maar gewoon een datetime...voorkomt gedoe.
Gewijzigd op 02/01/2012 16:06:09 door Herman van Ree



