【发布时间】:2014-04-06 14:27:57
【问题描述】:
我有一个包含类别列表的表格,还有一个用于搜索类别标题的表格。
我正在按我想要的方式进行这项工作,但我有 两个通知,我已经有几天无法找到解决方案了。
我知道如果我把 @ 放在 sql 语句之前我可以解决我的问题,但我认为那是不正确的。
当我传递一个值时,搜索表单工作正常,但是当我不传递任何值时,我总是有通知说:“注意:未定义的索引:在哪里”,因为选择加载类别列表是在没有完成的情况下完成的已将任何值传递给我的 sql 语句中使用的 $_SESSION['where']。
有人看到解决此通知的一些解决方案吗?
我有这个错误:
注意:未定义索引:where in my "SELECT * FROM categories {$_SESSION['where']}..."
我知道我有这个错误是因为
我的 php 代码,用于在会话中存储用户在我的搜索字段中传递的 sql 语句:
if(isset($_POST['sendForm']))
{
$search = $_POST['search'];
if(!empty($search) && $search != 'Search...:')
{
$_SESSION['where'] = "WHERE t LIKE '%$search%'";
header('Location: index2.php?exe=posts/categories');
}
else
{
unset($_SESSION['where']);
header('Location: index2.php?exe=posts/categories');
}
}
然后我做我的sql语句:
我的 sql 语句 php 代码:
$pag = (empty($_GET['pag']) ? '1' : $_GET['pag']);
$max = 3;
$begin = ($pag * $max) - $max;
$readCategory = $pdo->prepare("SELECT * FROM categories {$_SESSION['where']} ORDER BY name DESC LIMIT :begin, :max");
$readCategory->bindParam(':begin', $begin, PDO::PARAM_INT);
$readCategory->bindParam(':max', $max, PDO::PARAM_INT);
$readCategory->execute();
$num_readCategory = $readCategory->rowCount();
if(!$num_readCategory >= 1)
{
echo 'There are not categories yet';
}
【问题讨论】:
-
session_start();已加载?另外,为什么我觉得我以前看过这个问题/代码? -
sql 在会话中... ;(