Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie wpisów starszych niż 1 miesiąc
toomay
post 16.05.2007, 16:03:00
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.04.2007

Ostrzeżenie: (0%)
-----


Witam, zastanawiam się jak zrobić skrypt dzięki któremu mógłbym usuwać wpisy z bazy danych starsze niż jeden miesiąc.

Mam tabelę mysql przykładowo z newsami w której jednym z wpisów jest data.
Myślałem żeby wyciągnąć datę dodania newsa, następnie odjąć ją od daty aktualnej i dać warunek aby usunąć wszystkie wpisy spełniające ten warunek.

przykład:
  1. <?php
  2. if($_GET['clear']==&& $_GET['confirm']==1)
  3. {
  4. $db_connect=mysql_connect($host,$login,$passw)or die("Błąd podczas pr&oacute;by połączenia z bazą danych !");
  5. @mysql_select_db($db, $db_connect)or die("Błąd podczas pr&oacute;by wyboru bazy danych !");
  6. $sql='SELECT * FROM messages';
  7. $result=mysql_query($sql, $db_connect);
  8. while($row=mysql_fetch_array($result))
  9. {
  10. $date=$row['date'];
  11. $_date=date('d.m.Y');
  12. $starsze=($date-$_date);
  13. echo $starsze;
  14. //$sql2='DELETE FROM messages WHERE date='.$starsze>30.'';
  15. //$result2=mysql_query($sql2, $db_connect);
  16. }
  17. }
  18. ?>


Niestety ten sposób wyświetla mi wynik w stylu: 0000-0.039999999999999.
Poza tym wydaje mi się że:

  1. <?php
  2. $sql2='DELETE FROM messages WHERE date='.$starsze>30.'';
  3. ?>


Nie jest właściwe (jestem tego prawie pewien).
Zastanawiam się też czy konieczne jest użycie pętli.

Proszę o wszelkie wskazówki jak można to osiągnąć, z góry dzięki.

pozdrawiam
toomay

Ten post edytował toomay 16.05.2007, 16:10:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
toomay
post 16.05.2007, 16:56:09
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 23.04.2007

Ostrzeżenie: (0%)
-----


Trochę się pogubiłem, czyli muszę stworzyć w tabeli mysql dodatkowy wiersz z sekundami tak ? Wytłumacz to dokładniej bo dzisiaj jestem wyjątkowo niepodatny na wiedzę rolleyes.gif .
Aktualnie moja tabela w mysql wygląda tak:

  1. CREATE TABLE news (
  2. id int(11) NOT NULL AUTO_INCREMENT,
  3. date char(50),
  4. hour char(50),
  5. title char(255),
  6. autor char(50),
  7. news_short text,
  8. news_full text,
  9. UNIQUE id (id),
  10. PRIMARY KEY (id)
  11. );


I o ile dobrze myślę, to wg. Twojego pomysłu muszę wstawić pod 'date' dodatkowo 'time' ?
ps. Jaki jest format time bo chyba nie po prostu time() ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 19:13