Php 自动执行mysql查询数值$\u GET变量
我有mysql查询的代码Php 自动执行mysql查询数值$\u GET变量,php,mysql,sql,Php,Mysql,Sql,我有mysql查询的代码 $sql = "SELECT * FROM `".$data."` UNION SELECT d2.* FROM `".$data2."` d2 WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id) AND created_at >= NOW() - INTERVAL 35 HOUR LIMIT 50 "
$sql = "SELECT * FROM `".$data."`
UNION
SELECT d2.* FROM `".$data2."` d2
WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id)
AND created_at >= NOW() - INTERVAL 35 HOUR
LIMIT 50
";
if (isset($_GET['page-2'])) {
$sql = "SELECT * FROM `".$data."`
UNION
SELECT d2.* FROM `".$data2."` d2
WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id)
AND created_at >= NOW() - INTERVAL 35 HOUR
LIMIT 50,50
";
}
if (isset($_GET['page-3'])) {
$sql = "SELECT * FROM `".$data."`
UNION
SELECT d2.* FROM `".$data2."` d2
WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id)
AND created_at >= NOW() - INTERVAL 35 HOUR
LIMIT 100,50
";
}
你怎么看,我有example.com/?page-2、example.com/?page-3、example.com/?page-4等页面。。对于每个带有数字get参数的页面,我都有单独的mysql查询
$sql = "SELECT * FROM `".$data."`
UNION
SELECT d2.* FROM `".$data2."` d2
WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id)
AND created_at >= NOW() - INTERVAL 35 HOUR
LIMIT 50
";
if (isset($_GET['page-2'])) {
$sql = "SELECT * FROM `".$data."`
UNION
SELECT d2.* FROM `".$data2."` d2
WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id)
AND created_at >= NOW() - INTERVAL 35 HOUR
LIMIT 50,50
";
}
if (isset($_GET['page-3'])) {
$sql = "SELECT * FROM `".$data."`
UNION
SELECT d2.* FROM `".$data2."` d2
WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id)
AND created_at >= NOW() - INTERVAL 35 HOUR
LIMIT 100,50
";
}
优化代码的最佳方法是什么?试试这个
<?php
// If pageNo given
if(sizeof($_GET) > 0){
$pageGetKey = array_keys($_GET)[0];
$pageNo = explode("-", $pageGetKey)[1];
} else{
// If no pageNo given
$pageNo = 0;
}
echo $pageNo;
$limitMin = $pageNo * 50;
$limitMax = $limitMin + 50;
$sql = "SELECT * FROM `".$data."` UNION SELECT d2.* FROM `".$data2."` d2 WHERE NOT EXISTS (SELECT 1 FROM `".$data."` d1 WHERE d1.id = d2.id) AND created_at >= NOW() - INTERVAL 35 HOUR LIMIT ".$limitMin." , ".$limitMax;
?>