Meest recente datum tonen en oudere verwijderen!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SaTZzz T.

SaTZzz T.

02/01/2007 17:18:00
Quote Anchor link
Ik zit met een klein probleempje.
Ik ben bezig met een soort agenda, nu wil ik dat alle oude datums standaart in de database verwijdert worden, en de nieuwste datum van bijv. het volgende evenement getoond wordt!

Is dit mogelijk, ik kom der zelf niet meer uit :S
Alvast bedankt!

Dus bijv.
Datum: Dinsdag 2 jan 2007 14:00 uur
id:5 datum: 2006-02-02 13:00:00 > Verwijderen!
id:1 datum: 2007-07-01 12:00:00 > Niks mee doen!
id:3 datum: 2007-01-02 18:00:00 > Tonen
Gewijzigd op 01/01/1970 01:00:00 door SaTZzz T.
 
PHP hulp

PHP hulp

21/11/2024 21:54:24
 
Frank -

Frank -

02/01/2007 17:28:00
Quote Anchor link
Zie http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html voor een hele serie datum en tijdsfuncties. Uiteraard sla je datums met tijden op in een DATETIME.

Verder zul je goed moeten bepalen wat er moet gebeuren. In jouw voorbeeld roep je dat alle oude datums moeten worden verwijderd, maar 1 januari 2007 (= oud) wil je blijkbaar niet verwijderen. Waarom niet?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
DELETE
FROM
  tabelnaam
WHERE
  DATE(datum) < CURDATE()

Deze query verwijdert alle records met een datum in het verleden. Dus ook 1 januari 2007.

Tip: Waarom wil je deze data verwijderen? Het staat waarschijnlijk niemand in de weg en kan altijd nog handig zijn voor statistieken. Gewoon niet tonen voor het publiek en klaar ben je.
 
Ron -

Ron -

02/01/2007 17:29:00
Quote Anchor link
$query = "DELETE FROM agena WHERE DATE_SUB(CURDATE()) > datum_tijd";

zo verwijderen, denk dat dat wel werkt

tonen:

$query = "SELECT * FROM agena WHERE datum_tijd=CURDATE()";

misschien dat NOW() beter werkt ipv CURDATE()

heb dit zelf nog nooit gebruikt, maar dit lijkt me het logischt, hopelijk heb je er iets aan
 
SaTZzz T.

SaTZzz T.

02/01/2007 17:49:00
Quote Anchor link
Frank schreef op 02.01.2007 17:28:
Zie
In jouw voorbeeld roep je dat alle oude datums moeten worden verwijderd, maar 1 januari 2007 (= oud) wil je blijkbaar niet verwijderen. Waarom niet?


Owh foutje, dat moet 1 februari zijn, dacht dat mysql JJJJ-MM-DD gebruikte, of is dat niet zow?

Stel ik laat de datums gewoon in de database staan, hoe kan ik ze dan het beste oproepen zonder dat ik de oudere datums krijg?
 
Jan Koehoorn

Jan Koehoorn

02/01/2007 17:52:00
Quote Anchor link
Gewoon een SELECT query met in de WHERE condition:

WHERE DATE(datumtijd) >= CURDATE()

zoals Frank al aangaf.
 
SaTZzz T.

SaTZzz T.

02/01/2007 18:10:00
Quote Anchor link
Okeej, Bedankt het is gelukt!
Die Mysql date functies zijn zeker de moeitewaard om even je in te verdiepen :D.
Gewijzigd op 01/01/1970 01:00:00 door SaTZzz T.
 
SaTZzz T.

SaTZzz T.

03/01/2007 11:54:00
Quote Anchor link
Toch wil het nog niet helemaal:

Ik heb de onderstaande php code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
//Database Gegevens
$db = mysql_connect("localhost", "root", "XXXXXX");
mysql_select_db("wettertoerkapel", $db)
    or die ("Fout: openen database mislukt!");

//Toont laaste actuele gegevens..
$query = mysql_query("SELECT * FROM optredens WHERE DATE(datum) >= CURDATE()");
$gegevens = mysql_fetch_row($query);

print_r($gegevens);
?>


en de volgende database gegevens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
id  Datum                 Locatie    Opmerking
3    2007-02-12 00:00:00     Ja            Ja
2    2006-02-12 00:00:00     Nee        Nee
1    2007-02-24 00:00:00     Nee        Nee

Maar hij blijft 24 februari tonen, terwijl 12 februari recenter is!
Gewijzigd op 01/01/1970 01:00:00 door SaTZzz T.
 
Frank -

Frank -

03/01/2007 11:59:00
Quote Anchor link
Waar staat dan 12 februari? Ik zie 12 januari 2006, maar dat is toch echt al even geleden.

De query zou trouwens zowel 4 als 24 januari moeten tonen (het is vandaag 3 januari).
 
SaTZzz T.

SaTZzz T.

03/01/2007 12:03:00
Quote Anchor link
Even typ foutje, zo staan ze goed!
Het is de bedoeling dat hij alleen de meest recente gaat tonen, dus 12 Feb. 2007. en de rest niet!
Gewijzigd op 01/01/1970 01:00:00 door SaTZzz T.
 
Frank -

Frank -

03/01/2007 12:09:00
Quote Anchor link
Dan moet je de query even aanpassen, sorteren en limiteren. Verder netter scripten, dat voorkomt ook een hoop ellende. Hier een voorbeeldje:
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
<?

//Toont laaste actuele gegevens..
$query = "
SELECT
    *
FROM
    optredens
WHERE
    DATE(datum) >= CURDATE()
ORDER BY
    datum DESC
LIMIT 1"
;
$result = mysql_query($query);

if ($result) {
    while ($row = mysql_fetch_assoc($result)) {
        echo $row['datum'];
    }
}

else { // FOUTAFHANDELING !!! Mag nooit ontbreken
    echo 'Query mislukt vanwege de volgende fout: '.mysql_error();
}


print_r($row); // testje...

?>
 
SaTZzz T.

SaTZzz T.

03/01/2007 13:15:00
Quote Anchor link
Het werkt, hier de uiteindelijke code (incl. Foutafhandeling ;)):
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
##Database Gegevens!
$db = mysql_connect("localhost", "root", "9202vb");
mysql_select_db("wettertoerkapel", $db)
    or die ("Fout: openen database mislukt!");

##Query(SQL)
$query = "SELECT * FROM optredens WHERE DATE(datum) >= CURDATE() ORDER BY datum ASC LIMIT 0,1";
$result = mysql_query($query);

##Mysql Fout Controle!
if(!$result){
      echo "<b>Query kon niet worden uitgevoerd<br></b>Error: " . mysql_error();
      exit;
}


##Verwerk gegevens!
if(mysql_num_rows($result) > 0){
    list($id, $datum, $locatie, $opmerking) = mysql_fetch_row($result);
    echo ("$id <br> $datum <br> $locatie <br> $opmerking <br>");
}
else{
      echo "Geen Data's Gevonden!'";
}

?>


Bedankt, :D
Gewijzigd op 01/01/1970 01:00:00 door SaTZzz T.
 



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.