我有一个显示消息的系统,但用户可以选择看到正面(1)和负面(0)消息,但也有一个链接,您可以看到所有消息(1和0),我可以做这个查询吗?
index . php ? id = 1, url = 1
<?php
function mesage($id, $url) {
$db = DB::getInstance();
$query = $db->query("SELECT * FROM mesage WHERE id = ? AND url = ?", array($id, $url));
$results = $query->results();
return ($results);
}
$url = isset($_GET["url"])?$_GET["url"]:'Select 0 and 1';
$id = $_GET['id'];
$getmesaje = mesage($id, $url);
?>
我可以在变量"$url
"中更改单词"Select 0 and 1
"以显示所有?
可以使用
index.php?id=1&url=1//为正
index.php?id=1&url=0//为负数
index . php ?Id =1//所有
<?php
function mesage($id, $url) {
$db = DB::getInstance();
if(empty($url)) {
$query = $db->query("SELECT * FROM mesage WHERE id = ?",$id);
} else {
$query = $db->query("SELECT * FROM mesage WHERE id = ? AND url = ?", array($id, $url));
}
$results = $query->results();
return ($results);
}
$url = isset($_GET["url"])?$_GET["url"]:'';
$id = $_GET['id'];
$getmesaje = mesage($id, $url);
?>
根据用户输入准备动态查询。在where子句中使用IN
。
<?php
function mesage($id, $url) {
$concatenate='';
if(!empty($url))
{
$concatenate.= " AND url IN(?)";
$param = array($id, $url);
}
else
{
$param = array($id);
}
$db = DB::getInstance();
$query = $db->query("SELECT * FROM mesage WHERE id = ? $concatenate ",$param );
$results = $query->results();
return ($results);
}
$url = isset($_GET["url"])?$_GET["url"]:'';
$id = $_GET['id'];
if(!empty($id))
{
$getmesaje = mesage($id, $url);
}
?>
UPDATE 1:根据评论,当$url带有0值时,它认为是空的。所以应该是这样的if(strlen($url)>0){}
<?php
function mesage($id, $url) {
$concatenate='';
if(strlen($id)>0)
{
$concatenate.= " AND url IN(?)";
$param = array($id, $url);
}
else
{
$param = array($id);
}
$db = DB::getInstance();
$query = $db->query("SELECT * FROM mesage WHERE id = ? $concatenate ",$param );
$results = $query->results();
return ($results);
}
$url = isset($_GET["url"])?$_GET["url"]:'';
$id = $_GET['id'];
if(strlen($id)>0)
{
$getmesaje = mesage($id, $url);
}
?>