 |
[PHP]
(ทำได้แล้วครับมีโค๊ดตัวอย่าข้างใน)สอบถามเรื่องการอัพค่าในดาต้าเบสอัตโนมัติหน่อยครับ ช่วยหน่อยครับ ผมเพิ่งหัดเรียนรู้ |
|
 |
|
|
 |
 |
|
Code (SQL)
001.
002.
003.
004.
005.
006.
007.
008.
009.
010. SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO" ;
011. START TRANSACTION ;
012. SET time_zone = "+00:00" ;
013.
014.
015. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
016. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
017. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
018. /*!40101 SET NAMES utf8mb4 */;
019.
020.
021.
022.
023.
024.
025.
026.
027.
028.
029.
030. CREATE TABLE `banned` (
031. `id_banned` int (11) NOT NULL ,
032. `id` varchar (255) COLLATE utf8_unicode_ci NOT NULL ,
033. `img` varchar (255) COLLATE utf8_unicode_ci NOT NULL ,
034. `link` varchar (255) COLLATE utf8_unicode_ci NOT NULL ,
035. `date_start` date NOT NULL ,
036. `date_end` date NOT NULL ,
037. `status` varchar (255) COLLATE utf8_unicode_ci NOT NULL
038. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE =utf8_unicode_ci;
039.
040.
041.
042.
043.
044. INSERT INTO `banned` (`id_banned`, `id`, `img`, `link`, `date_start`, `date_end`, `status`) VALUES
045. (1, 'A1' , 'A1-banner-movie2uhd.webp' , 'https://localhost/' , '2020-05-22' , '2020-09-27' , 'open' ), 048. (4, 'A4' , 'Dubai-new.webp' , 'https://localhost/' , '2020-05-22' , '2020-10-17' , 'open' ), 050. (6, 'B1' , 'ป้ายใหม่cr7.webp' , 'https://localhost/' , '2020-05-22' , '2020-08-16' , 'open' ), 053. (9, 'B4' , 'b4-200x272.webp' , 'https://localhost/' , '2020-05-22' , '2020-09-27' , 'open' ), 054. (10, 'C1' , 'GIF-FOR-AD-Size-772X130-px.webp' , 'https://localhost/' , '2020-05-22' , '2021-01-09' , 'open' ), 057. (13, 'C4' , 'ufabet123-2.webp' , 'https://localhost/' , '2020-05-22' , '2020-10-25' , 'open' ), 058. (14, 'C5' , 'yeekee800.webp' , 'https://localhost/' , '2020-05-22' , '2020-06-14' , 'open' ), 061. (17, 'D3' , 'SLOTXO-VIP.webp' , 'https://localhost/' , '2020-05-22' , '2021-04-24' , 'open' ), 062. (18, 'D4' , 'banner200x290-3.gif' , 'https://localhost/' , '2020-05-22' , '2020-05-31' , 'open' ), 063. (19, 'D5' , '188bet-pro4-2020.webp' , 'https://localhost/' , '2020-05-22' , '2020-07-11' , 'open' ), 064. (20, 'D6' , 'ad-gif-scs188.gif' , 'https://localhost/' , '2020-05-22' , '2020-08-23' , 'open' ), 065. (21, 'D7' , '0060-200x290-05-03.webp' , 'https://localhost/' , '2020-05-22' , '2020-07-12' , 'open' ), 066. (22, 'D8' , 'newbanner.gif' , 'https://localhost/' , '2020-05-22' , '2020-07-26' , 'open' ), 068. (24, 'D10' , '200X290.webp' , 'https://localhost/' , '2020-05-22' , '2020-06-28' , 'open' ), 069. (25, 'D11' , 'ad-gif-ssslotto.gif' , 'https://localhost/' , '2020-05-22' , '0000-00-00' , 'open' ), 070. (26, 'D12' , 'Newbanner.webp' , 'https://localhost/' , '2020-05-22' , '2020-06-28' , 'open' ), 071. (27, 'D13' , '188bet-pro4-2020.webp' , 'https://localhost/' , '2020-05-22' , '2020-08-30' , 'open' ), 073. (29, 'E1' , 'macao888.webp' , 'https://localhost/' , '2020-05-22' , '2020-10-25' , 'open' ), 074. (30, 'E2' , 'คาสิโนล้วนsagame77-130x385.webp' , 'https://localhost/' , '2020-05-22' , '2020-08-30' , 'open' ), 077. (33, 'E5' , 'macao773x130.webp' , 'https://localhost/' , '2020-05-22' , '2020-08-30' , 'open' ); 078.
079.
080.
081.
082.
083.
084.
085.
086. ALTER TABLE `banned`
087. ADD PRIMARY KEY (`id_banned`);
088.
089.
090.
091.
092.
093.
094.
095.
096. ALTER TABLE `banned`
097. MODIFY `id_banned` int (11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=34;
098. COMMIT ;
099.
100. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
101. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
102. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
จากตาราง date_end จะเขียนยังไงครับ ถ้าถึงวันที่เราลงไว้แล้ว ให้มันอัพเดพตาราง status จาก open เป็น close
จะเขียนแบบนี้ได้ไหมครับ $sql = "SELECT * FROM banned where date_end < NOW()"; แล้วถ้าได้ต้องเขียนยังไงต่อครับ
Tag : PHP, MySQL, HTML, HTML5, JavaScript
|
ประวัติการแก้ไข 2020-05-24 11:36:12
|
 |
 |
 |
 |
Date :
2020-05-23 22:05:33 |
By :
skyblack2009 |
View :
717 |
Reply :
5 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีหลายวิธีครับ
1. ตั้งค่า cronjob ลองหาข้อมูลเพิ่มครับ
2. ถ้าไม่รัน cronjob ก็ใช้วิธีนี้ได้ ผมเคยทำโดยการเขียนข้อมูลวันที่ไว้ใน text file แล้วหรือจะเก็บไว้ใน DB ก็ได้ สคริปก็ประมาณนี้
Code (PHP)
01. #------Update Status-------#
02. $today = date ( 'Y-m-d' );
03. #Read file date
04. $chkDate = file( 'chk_date.txt' );
05. $chkDate = $chkDate [0];
06. fclose( $chkDate );
07.
08. if ( empty ( $chkDate ) || ( $chkDate < $today )){
09. #Write file date
10. $wDate = fopen ( 'chk_date.txt' , 'w' );
11. fwrite( $wDate , "$today" );
12. fclose( $wDate );
13.
14. $db ->query( " UPDATE table_name SET content_status = 'close' WHERE content_end_date < '$today' AND content_end_date != '0000-00-00' " );
15. }
16. #-------
|
 |
 |
 |
 |
Date :
2020-05-23 23:15:35 |
By :
arm8957 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : arm8957 เมื่อวันที่ 2020-05-23 23:15:35
รายละเอียดของการตอบ ::
แก้ไขแล้วเป็นแบบนี้ครับใช่ได้แล้วครับขอบคุณครับ
Code (PHP)
01. #------Update Status-------#
02. $today = date ( 'Y-m-d' );
03. #Read file date
04. $sql = "SELECT * FROM banned" ;
05. $result = $conn ->query( $sql );
06. $chkDate = '".date_end."' ;
07. if ( empty ( $chkDate ) || ( $chkDate < $today )){
08.
09.
10. $sql = "UPDATE banned SET status='close' WHERE date_end < '" . $today . "' AND date_end !='0000-00-00'" ;
11.
12. if (mysqli_query( $conn , $sql )) {
13.
14. }
15. }
16. #-------
|
ประวัติการแก้ไข 2020-05-24 09:18:29
 |
 |
 |
 |
Date :
2020-05-24 09:17:59 |
By :
skyblack2009 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|