Új hozzászólás Aktív témák
-
nevemfel
senior tag
Nem tudom, hogy tud-e egyáltalán a wp_meta_query regexpeket használni, szerintem nem. Viszont a 'compare' helyén használhatsz 'LIKE' ot is, és akkor feltételezem, tudod használni az SQL wildcard karaktereket, * és _;
Rally against apathy draws small crowd
-
nevemfel
senior tag
Bocs, most nézem, hogy elírtam. Nem * és _, hanem % és _.
Egyébként itt azt írják, hogy LIKE condition esetén a WP automatikusan a value elé és mögé teszi a % wildcardot. Ha ez nem jó (elég nagy hülyeségnek tűnik, hogy a WP magától odateszi, pont amiatt, hogy mi van akkor, ha csak az elején vagy a végén van rá szükség), akkor filter functionnel vagy egyedi query-vel kell megoldani a lekérdezést:
[ Szerkesztve ]
Rally against apathy draws small crowd
-
nevemfel
senior tag
Egyáltalán nem értem (még?)a működését, és a próbálkozásaim sorra kudarcba fulladtak (a MariaDB szintaktikai hibára hivatkozva eldobta).
Wordpresshez nem igazán értek, de PHP, SQL, MariaDB fronton tudok segíteni. Ha beírod a queryt, megpróbálhatom kihámozni, hogy mi baja lehet.
[ Szerkesztve ]
Rally against apathy draws small crowd
-
Közben sikerült kisakkozni, hogyan kell közvetlenül kikérdezni:
$a = '1986'.date('md',strtotime('-10 days'));
$b = '1986'.date('md',strtotime('+10 days'));
global $wpdb;
$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type='post'
AND ID IN(
SELECT post_id FROM $wpdb->postmeta WHERE $wpdb->postmeta.meta_key='evfordulo'
AND $wpdb->postmeta.meta_value >= '$a'
AND $wpdb->postmeta.meta_value <= '$b'
) ORDER BY post_date DESC");
$i = 0;
echo '<br>';
while($i < count($posts)){
echo $posts[$i]->ID.'<br>';
echo $posts[$i]->post_title.'<br>';
$i++;
}
De hogyan tudom kimaszkozni az éveket? Az
a$ = '[0-9]{4}'.date('md',strtotime('-10 days'));
már nem működik.Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
-
FeniX-
aktív tag
Szerintem, ha simán
AND $wpdb->postmeta.meta_value >= '$a'
, az ott teljes string alapú egyezést keres.
A regexet talán a "LIKE" kulcsszóval tudnád bevezetni.SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
LIKE Operator Description
WHERE CustomerName LIKE 'a%' Finds any values that start with "a"
WHERE CustomerName LIKE '%a' Finds any values that end with "a"
WHERE CustomerName LIKE '%or%' Finds any values that have "or" in any position
WHERE CustomerName LIKE '_r%' Finds any values that have "r" in the second position
WHERE CustomerName LIKE 'a_%' Finds any values that start with "a" and are at least 2 characters in length
WHERE CustomerName LIKE 'a__%' Finds any values that start with "a" and are at least 3 characters in length
WHERE ContactName LIKE 'a%o' Finds any values that start with "a" and ends with "o"[ Szerkesztve ]
-
nevemfel
senior tag
Rally against apathy draws small crowd
-
FeniX-
aktív tag
Azt kell megnézned, hogy a wp mivé alakítja át az sql lekérdezést. (Pfú, már nem is tudom, de sql-ben is lehetett dumpot készíteni, hogy elmentse, hogy miket kérdeztek le belőle)
Meg is találtam. Csináltam magamnak belőle egy jegyzetet, tessék.
CREATE TABLE `general_log` (
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
CREATE TABLE `slow_log` (
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`query_time` time NOT NULL,
`lock_time` time NOT NULL,
`rows_sent` int(11) NOT NULL,
`rows_examined` int(11) NOT NULL,
`db` varchar(512) NOT NULL,
`last_insert_id` int(11) NOT NULL,
`insert_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`sql_text` mediumtext NOT NULL,
`thread_id` bigint(21) unsigned NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
SET global general_log = 1;
SET global log_output = 'table';
// Run queries (itt kell lefuttatni a wp dolgokat)
// View the log
select * from mysql.general_log
// Disable Query logging on the database
SET global general_log = 0; -
Panhard
tag
Adatbázisból szedi ki a dátumokat és egy while ciklussal hasonlítja össze az aktuálisat az előzővel. Az összehasonlítás után az aktuális érték el van mentve előző értékként a következő ciklus számára.
while($row = mysqli_fetch_array($result)){
$unix_aktualis = strtotime($row["datetime"]);
$kulonbseg = $unix_aktualis-$unix_elozo;
$unix_elozo = $unix_aktualis;
if($kulonbseg>360){
//itt van a figyelmeztető rész
}
}
Kipróbáltam a kódot, amit te írtál, localhost-on is Xampp-al is, és a nethely szerverén is, mindkét esetben 3900-at ír. Érdekes.
[ Szerkesztve ]
-
Panhard
tag
Megnéztem, a többi óraállításnál is így van.
$a = strtotime('2022-03-27 02:59:59' );
$b = strtotime('2022-03-27 03:00:00' );
echo $a."<br>";
echo $b."<br>";
echo $b-$a."<br><br>";
$a = strtotime('2021-10-31 01:59:59' );
$b = strtotime('2021-10-31 02:00:00' );
echo $a."<br>";
echo $b."<br>";
echo $b-$a."<br><br>";
$a = strtotime('2022-10-30 01:59:59' );
$b = strtotime('2022-10-30 02:00:00' );
echo $a."<br>";
echo $b."<br>";
echo $b-$a."<br><br>";
1648346399
1648342800
-35991635638399
1635642000
36011667087999
1667091600
3601Lehet, hogy függ a php verziójától is.
[ Szerkesztve ]
-
Panhard
tag
Így működik. Viszont az adatbázisban az idők nekem Európai időzóna szerint vannak. Ha UTC szerint használom az Európai időket lehet, hogy abból is lesz kavarodás. Csak érdekességképpen írtam, és érdekelt mitől lehet. De szerintem ezért nem fogok módosítani semmit az éles szerveren.
Köszönöm!
Új hozzászólás Aktív témák
- Politika
- Nők, nőügyek (18+)
- sziku69: Fűzzük össze a szavakat :)
- Samsung Galaxy A54 - türelemjáték
- Amlogic S905, S912 processzoros készülékek
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- eMAG vélemények - tapasztalatok
- BYD Atto 3 menetpróba
- Kormányok / autós szimulátorok topicja
- Xbox Series X|S
- További aktív témák...
- Eladó bontatlan AMD Ryzen 7 7800X3D processzor
- Új bontatlan Sandisk Ultra 3d SSD 4TB és Samsung 2.5 870 Evo 500GB SATA3 (MZ-77E500B)
- AkciÓ ÚJ Bontatlan MacBook Pro 16 M3 Pro 12CPU/18GPU 18GB/512GB SSD Magyar bill Azonnal átvehető.
- ÉRKEZETT Bontatlan Új M2 M4 IPAD PRO 2022 11 128GB - 256GB Wi-Fi Azonnal Deák Térnél Átvehető.
- DeLL Precision 7740 workstation, üzletből, I7-9850H/32RAM/512GBSSD/NVIDIA QuadroRTX3000/17,3"FULLHD