probleem met data

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Prienstra

prienstra

14/09/2009 22:08:00
Quote Anchor link
Beste mensen,

Als ik de volgende functie/script aanroep wordt er soms een datum dubbel in de database gepost.
In het onderstaande voorbeeld wordt 25-10-2009 dubbel in de database gezet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
include("templates/bovenkant.php");


function
dates_between3($startdate, $enddate){
    $format = "Y-m-d";
    (
is_int($startdate)) ? 1 : $startdate = strtotime($startdate);
    (
is_int($enddate)) ? 1 : $enddate = strtotime($enddate);

    if($startdate > $enddate){
        return false;
    }


    while($startdate < $enddate){
    $arr[] = $startdate;
    $startdate += 86400;
        
    }


    $arr[] = $enddate;
    return $arr;
}


$kamer = 39;
$hotel = 20;

?>

<?php

$vandatum
= 20 . "-" . 10 . "-" . 2009;
$totdatum = 30 . "-" . 10 . "-" . 2009;

        $dat = explode("-", $vandatum);
        $vandatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0];
        $dat = explode("-", $totdatum);
        $totdatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0];

        $datBetwArr = dates_between3($vandatum,$totdatum);


            foreach($datBetwArr as $time){
            $date = date("Y-m-d", $time);
          
          

    mysql_query("INSERT INTO test (hotel_id,kamer_id,datum)
                VALUES('$hotel','$kamer','$date');"
,$link) or mooie_mysql_error($_SERVER['PHP_SELF']);
            
}


?>


Wie weet wat er fout is?
 
PHP hulp

PHP hulp

15/01/2025 22:35:37
 
- Ariën  -
Beheerder

- Ariën -

14/09/2009 22:20:00
Quote Anchor link
Wat is er mis met MySQL datetime functies die velemalen efficienter werken?
 
Prienstra

prienstra

14/09/2009 22:22:00
Quote Anchor link
Mijn webbouwer heeft dit ooit zo opgezet. Ik heb er niet veel verstand van. Kan datetime functie in bovenstaand verwerkt worden?
 
- Ariën  -
Beheerder

- Ariën -

14/09/2009 22:38:00
Quote Anchor link
Laat je web-developer eens http://dev.mysql.com/doc/refman/5.0/en/datetime.html dit lezen ;-)

Dat kan dan in de query's verwerkt worden, zonder omslachtige PHPcode.
 
Prienstra

prienstra

14/09/2009 23:09:00
Quote Anchor link
Is het niet mogelijk om het in bovenstaand script te verwerken of om het juist te maken omdat anders de hele site veranderd moet worden en daar is op korte termijn geen tijd voor.
 
- Ariën  -
Beheerder

- Ariën -

15/09/2009 09:49:00
Quote Anchor link
Ik vraag me af, hoe wil je nu op deze manier met een string in de notatie: Y-m-d gaan rekenen?

Stel, je wilt er een maand ofwat erbij optellen bijv,
Nu moet je rekening houden met het feit dat een jaar 12 maanden heeft, en dat hij moet doortellen bij het volgende jaar. Met MySQL DATETIME is niet niet meer nodig, en kan je dit een hele sloot aan code schelen.

Inbouw is niet moeilijk. Laat je developer maar eens die pagina lezen die ik noemde.

Edit Kom er net achter dat je met timestamps werkt. Maar goed.
Laten we zeggen dat he nog morgen is ;-). Wil alleen niet zeggen dat het wat het nu is niet fout is.
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
 

15/09/2009 09:53:00
Quote Anchor link
"mooie_mysql_error($_SERVER['PHP_SELF']);"

Een mooie MySQL error met $_SERVER['PHP_SELF']? Dat bestaat niet...
 
Prienstra

prienstra

15/09/2009 11:12:00
Quote Anchor link
De "mooie_mysql_error($_SERVER['PHP_SELF']);" bestaat wel. Dit is een functie dat er automatisch een e-mail gestuurd wordt naar de admin met de error.

Het zijn idd timestamps. Als ik print_r($datBetwArr); toevoeg, dan zie ik elke timestamp maar 1 keer, maar wel 0 tot en met 11. Dit zijn er twaalf dus 1 teveel. Het gaat dus fout de database in vermoed ik. Is er iemand die bovenstaand script eens wil proberen op zijn server?
Gewijzigd op 01/01/1970 01:00:00 door prienstra
 
Prienstra

prienstra

15/09/2009 11:23:00
Quote Anchor link
Ik denk dat het probleem bij 25/26 oktober zit.
Als ik het volgende gebruik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

$vandatum
= 25 . "-" . 10 . "-" . 2009;
$totdatum = 26 . "-" . 10 . "-" . 2009;

        $dat = explode("-", $vandatum);
        $vandatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0];
        $dat = explode("-", $totdatum);
        $totdatum1 = $dat[2] . "-" . $dat[1] . "-" . $dat[0];

        $datBetwArr = dates_between3($vandatum1,$totdatum1);
    print_r($datBetwArr);

            foreach($datBetwArr as $time){
            $date = date("Y-m-d", $time);
      
          

    mysql_query("INSERT INTO test (hotel_id,kamer_id,datum)
                VALUES('$hotel','$kamer','$date');"
,$link) or mooie_mysql_error($_SERVER['PHP_SELF']);
            
}


?>


Krijg ik het volgende:
Array ( [0] => 1256421600 [1] => 1256508000 [2] => 1256511600 )
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.