[SQL] Veranderen naar now()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Marnix

Marnix

23/04/2007 19:47:00
Quote Anchor link
Hoi,

Ik heb voor mijn weblog en gastenboek in de database 2 kollommen gemaakt, namelijk datum en tijd. Voor beiden 2 kollommen dus. En nu lees ik overal dat als je NOW() gebruikt in de SQL query dit veel makkelijker is.

Nu moet ik dus 1 kolom verwijderen en de andere veranderen naar NOW(). Maar dan kom ik met mijn oude gegevens in de knoop. Hoe kan ik dit het beste oplossen? Of gewoon niet?

Format voor datum is bijv.: 13 april 2007
Format voor tijd is bijv.: 13:47:09

Groeten,
Marnix
 
PHP hulp

PHP hulp

22/12/2024 08:50:50
 
Baarr

Baarr

23/04/2007 20:11:00
Quote Anchor link
Waarom gebruik je niet gewoon een datetime veld in je database ?
 
Marnix

Marnix

23/04/2007 20:13:00
Quote Anchor link
Dat doe ik dus niet omdat toen ik het maakte ik er nog niet van af wist. Maar ik wil het dus veranderen in iets simpelers vraag me af hoe dat makkelijk kan zonder al te veel werk. Ik heb geen zin om ongeveer 200 rijen aan te passen. :S
 
Baarr

Baarr

23/04/2007 20:18:00
Quote Anchor link
Als je NOW gebruikt word in de desbetreffende kolom de huidige datum/tijd geschreven. Maar begrijp ik nu goed dat je het zonder veel moeite terug wilt brengen naar 1 kolom ?
En zijn de huidige kolommen op dit moment dan een date en een time kolom ?
 
Marnix

Marnix

23/04/2007 20:20:00
Quote Anchor link
Nee dit zijn gewoon VARCHAR kolommen en de data en tijden zijn erin gezet met PHP.

Nu begrijp ik dat NOW() en DATE/TIME een verschillend iets is?
 
- SanThe -

- SanThe -

23/04/2007 20:27:00
Quote Anchor link
Een nieuw (derde) veld maken. Met een query de eerste en tweede veld samenvoegen tot een fatsoenlijk geheel en in het derde veld zetten. Daarna kunnen de eerste en tweede velden weg.

Edit: Typo.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Baarr

Baarr

23/04/2007 20:30:00
Quote Anchor link
date en datetime zijn kolomtypen, met now kun je een bepaald veld de huidige datum geven.

Voor je probleem: SanThe heeft een goed begin gemaakt, en op zich is het ook niet zo moeilijk.

Maak dus eerst die derde kolom aan, en kijk hoe het datum formaat eruit moeten komen zien, dan maak je dus ff een scriptje wat de datums /tijden ophaalt, plak ze aan elkaar en voor dat in een derde kolom in.
 
Marnix

Marnix

23/04/2007 20:31:00
Quote Anchor link
Hmmm dank je! Dat ga ik proberen!

Edit: moet ik dat derde veld dan een DATETIME veld maken?
Gewijzigd op 01/01/1970 01:00:00 door Marnix
 
Baarr

Baarr

23/04/2007 20:37:00
Quote Anchor link
Marnix schreef op 23.04.2007 20:31:
Hmmm dank je! Dat ga ik proberen!

Edit: moet ik dat derde veld dan een DATETIME veld maken?


Yap
 
Klaasjan Boven

Klaasjan Boven

23/04/2007 20:41:00
Quote Anchor link
Hoe ziet je huidige datum eruit?
 
Marnix

Marnix

23/04/2007 20:56:00
Quote Anchor link
Zoals bij de eerste post beschreven bijv.: 04 december 2006

Ik heb nu dit:
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
<?php
include '../connect.php';

function
replaceMaanden($value)
{

    $value = str_replace("januari", "01", $value);
    $value = str_replace("februari", "02", $value);
    $value = str_replace("maart", "03", $value);
    $value = str_replace("april", "04", $value);
    $value = str_replace("mei", "05", $value);
    $value = str_replace("juni", "06", $value);
    $value = str_replace("juli", "07", $value);
    $value = str_replace("augustus", "08", $value);
    $value = str_replace("september", "09", $value);
    $value = str_replace("oktober", "10", $value);
    $value = str_replace("november", "11", $value);
    $value = str_replace("december", "12", $value);
    
    return $value;
}


$items = mysql_query("SELECT datum, tijd FROM weblog ORDER BY id DESC LIMIT 0,5");

while($item = mysql_fetch_array($items))
{

    $datum = explode(" ", $item['datum']);
    $datum[1] = replaceMaanden($datum[1]);
    $datum =  $datum[0] . "-" . $datum[1] . "-" . $datum[2];
    $gegevens = $datum . " " . $item['tijd'];
    
    $query = "UPDATE weblog SET test = '$gegevens' LIMIT 0,1";
    
    echo $query . "<br />\n";
    
    //mysql_query($query) or die( mysql_error() );
}

?>


En nee ik voer de query nog niet uit, 'k wil eerst alles dubbelchecken. :)
 
Klaasjan Boven

Klaasjan Boven

23/04/2007 20:58:00
Quote Anchor link
Maak iig even een dump van je DB van tevoren
 
Marnix

Marnix

23/04/2007 21:05:00
Quote Anchor link
Klaasjan Boven schreef op 23.04.2007 20:58:
Maak iig even een dump van je DB van tevoren


Dat was ik wel van plan ja. ;)
 
- SanThe -

- SanThe -

23/04/2007 21:15:00
Quote Anchor link
Een datatime is Jaar/Maand/Dag.

$datum = explode(" ", $item['datum']);
$datum[1] = replaceMaanden($datum[1]);
$datum = $datum[2] . "-" . $datum[1] . "-" . $datum[0];
$gegevens = $datum . " " . $item['tijd'];
 
Klaasjan Boven

Klaasjan Boven

23/04/2007 21:15:00
Quote Anchor link
Wat jij daarboven doet met dat script ziet er goed uit

San je hebt gelijk shame
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
 
Marnix

Marnix

23/04/2007 21:25:00
Quote Anchor link
Goed dat je het zegt! Bedankt. Testen is dus niet overbodig hè. :D
 
Klaasjan Boven

Klaasjan Boven

23/04/2007 21:27:00
Quote Anchor link
Als het goed is gebeurt er alleen wat met je nieuwe kolom dus het kan niet heel veel kwaad
 
Marnix

Marnix

23/04/2007 21:31:00
Quote Anchor link
Nog niet goed hè, er moest nog een WHERE clause in. ;)

Dom dom dom... zeker tijd om te stoppen zo. :D

Edit:
Ik post het script even voor diegenen die er baat bij hebben. Het werkt perfect!


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
<?php
include '../connect.php';

function
replaceMaanden($value)
{

    $value = str_replace("januari", "01", $value);
    $value = str_replace("februari", "02", $value);
    $value = str_replace("maart", "03", $value);
    $value = str_replace("april", "04", $value);
    $value = str_replace("mei", "05", $value);
    $value = str_replace("juni", "06", $value);
    $value = str_replace("juli", "07", $value);
    $value = str_replace("augustus", "08", $value);
    $value = str_replace("september", "09", $value);
    $value = str_replace("oktober", "10", $value);
    $value = str_replace("november", "11", $value);
    $value = str_replace("december", "12", $value);
    
    return $value;
}


$items = mysql_query("SELECT id, datum, tijd FROM weblog ORDER BY id");

while($item = mysql_fetch_array($items))
{

    $datum = explode(" ", $item['datum']);
    $datum[1] = replaceMaanden($datum[1]);
    if(strlen($datum[0]) == 1)
    {

        $datum[0] = "0" . $datum[0];
    }

    $datum =  $datum[2] . "-" . $datum[1] . "-" . $datum[0];
    $gegevens = $datum . " " . $item['tijd'];
    
    $query = "UPDATE `weblog` SET `test` = '$gegevens' WHERE `id` = '" . $item['id'] . "' LIMIT 1";
    
    $uitvoeren = mysql_query($query) or die( mysql_error() );
    
    if($uitvoeren)
    {

        echo "<strong>" . $item['id'] . ".</strong> " . $query . " - Gelukt!<br />\n";
    }

    else
    {
        echo "Bij regel <strong>" . $item['id'] . "</strong> ging iets fout!<br />\n";
    }
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Marnix
 
Klaasjan Boven

Klaasjan Boven

23/04/2007 21:44:00
Quote Anchor link
Volgens mij als je heel goed je best doet kan dit helemaal in mysql zonder PHP

dus iets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
"UPDATE jouwtabel
SET datum_tijd=
    CONCAT(
        SUBSTRING(datum FROM -4 FOR 4),
        '-',
        SUBSTRING(datum FROM 4 FOR(LOCATE ' ')),
        '-',
        'LEFT(datum, 2),
        '-',  
        tijd
        )"


Ik ben alleen niet zo zeker van dat locate en of de tabel bijv april slikt
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
 
Klaasjan Boven

Klaasjan Boven

23/04/2007 21:50:00
Quote Anchor link
Volgens mij Had Jan Koehoorn hier laatst ook een SQL voor geschreven
 
Marnix

Marnix

23/04/2007 22:30:00
Quote Anchor link
Ik ben niet zo denderend in SQL en veel beter in PHP. :)

PHP is tha bomb! :D
 

Pagina: 1 2 volgende »



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.