Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP/MYSQL] problem z aktualizacją timestamp
neverever
post 7.04.2008, 11:04:28
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 44
Dołączył: 17.02.2004
Skąd: Wieliczka

Ostrzeżenie: (10%)
X----


Mam tabelę "tabela1" z polami: wartosc (varchar), czas (timestamp), status(tinyint)
Pole wartosc jest unikalne, a czas ma ustawiony atrybut ON UPDATE CURRENT_TIMESTAM i wartość domyślną CURRENT_TIMESTAM.

Teraz zrobiłęm sobie prosty formularz wysyłany jednym polem wartosc.
Po jego wysłaniu ma zaktualizować timestamp dla rekordu odpowiadającego tej wartości lub utworzyć nowy rekord jeśli nie ma go w bazie.

mam coś w stylu:
  1. <?php
  2. ...
  3. if($conn = @mysql_connect(HOST,USER,PASS)){
  4. $db = mysql_select_db(DBASE,$conn);
  5.  
  6. mysql_query('SET NAMES latin2',$conn);
  7. $czas = date("Y-m-d H:i:s");
  8. if(!$sql = mysql_query("UPDATE ".DBNAME." SET wartosc='$tmp' WHERE wartosc='$tmp'",$conn))
  9. $sql = mysql_query("INSERT INTO ".DBNAME." (wartosc) VALUES ('$tmp')");
  10. mysql_close($conn);
  11. }
  12. ...
  13. ?>


I jeśli nie ma odpowiadającego rekordu to go łądnie tworzy, ale nie aktualizuje timestampu dla istniejącego rekordu!

Sprawdzałem też:
  1. <?php
  2. if($sql = mysql_query("UPDATE ".DBNAME." SET wartosc='$tmp' WHERE wartosc='$tmp'",$conn)) echo ' zaktualizowano'; else echo ' nie zaktualizowano!';
  3. ?>

sprawdzałęm też:
  1. <?php
  2. if($sql = mysql_query("UPDATE ".DBNAME." SET czas=NOW() WHERE wartosc='$tmp'",$conn)) echo ' zaktualizowano'; else echo ' nie zaktualizowano!';
  3.  
  4. if($sql = mysql_query("UPDATE ".DBNAME." SET czas=CURRENT_TIMESTAMP WHERE wartosc='$tmp'",$conn)) echo ' zaktualizowano'; else echo ' nie zaktualizowano!';
  5.  
  6. if($sql = mysql_query("UPDATE ".DBNAME." SET czas='$czas' WHERE wartosc='$tmp'",$conn)) echo ' zaktualizowano'; else echo ' nie zaktualizowano!';
  7.  
  8. ?>


sprawdzałem też bez ,$conn

...i nic, co dziwne zawsze wynik mam false.

A rekord ten na 100% istnieje bo select mi go wyciąga.

Co jest grane? Co gdzie jak poprawić żeby to działało jak tego chcę?

Ten post edytował neverever 7.04.2008, 11:06:03


--------------------
neverever
Go to the top of the page
+Quote Post
isso
post 7.04.2008, 11:44:15
Post #2





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


a spróbuj ręcznie uaktualnić(phpmyadmin albo cos pokrewneg)... a później skopiuj formułkę i zobaczy czy w poprawnej formie masz date smile.gif


--------------------
Go to the top of the page
+Quote Post

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: 15.07.2025 - 06:29