Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktualizacja daty
Forum PHP.pl > Forum > PHP
Khartas
Witam
Napisałem skrytp, który dodaje wpisy do bazy danych. Rekord składa się z id, zmiennej i daty. Chciałbym teraz aby w przypadku wprowadzenia istniejącej zmiennej rekord został zaktualizowany tylko w polu data. Wiem, że służy do tego UPDATE ale nie wiem jak to wprowadzić.

  1. <?php
  2. include 'config.php';
  3. db_connect();
  4.  
  5. check_login();
  6.  
  7. $user_data = get_user_data();
  8.  
  9. echo '<p>Witaj <b>'.$user_data['user_name'].'</b>!</p>
  10.  
  11.  
  12. echo '<form method="post" action="index.php">
  13. <p><input type="text" value="'.$_POST['adres'].'" name="adres">
  14. <p><input type="submit" value="Zgłoś stronę">
  15.  
  16. </form>';
  17.  
  18. if(isset($_POST['adres'])) {
  19. $_POST['adres'] = clear($_POST['adres']);
  20.  
  21.  
  22. if(empty($_POST['adres'])) {
  23. echo '<p>Musisz podać adres.</p>';
  24. } else {
  25.  
  26. $result = mysql_query("SELECT Count(adres) FROM `strony` WHERE `adres` = '{$_POST['adres']}' AND `data_dodania`+28800>".time());
  27. $row = mysql_fetch_row($result);
  28. if($row[0] > 0) {
  29. echo '<p>Podany adres istnieje już w naszej bazie danych. <P>Ponownego wpisu możesz dokonać po 8 godzinach od poprzedniego.</p>';
  30. } else {
  31. mysql_query("INSERT INTO `strony` (`adres`, `data_dodania`) VALUES ('{$_POST['adres']}', '".time()."')");
  32. echo '<p>Dodano adres do bazy danych</p>';
  33. }
  34. }
  35. }
  36. db_close();
  37.  
  38. ?>
xbigos
Jeśli masz możliwość i chcesz aktualizować tylko datę jeśli dany rekord istnieje to możesz użyć typu danych CURRENT_TIMESTAMP.. Bo wtedy przy dodaniu nowego rekordu (nieistniejącego) i tak doda Ci datę dodania. Jeśli nie masz możliwości to UPDATE strony SET data_dodania='Twoja data' WHERE id='twoje id' LIMIT 1
MatKus
A może tak:

INSERT INTO `strony` (`adres`, `data_dodania`) VALUES ('http://jakis_adres', '".time()."') ON DUPLICATE KEY UPDATE data_dodania=values(data_dodania)

przy czym w tym wypadku pole "adres" w bazie musi być oznaczone jako unikalne (klucz główny albo unique)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.