我在我的网站上搜索时遇到问题我不明白为什么它会给我这个错误
这是我的表单代码
<form action="index.php?cat=search_results&learn_id=1" method="post">
<div id="topSearchBodyStyle">
<input type="text" name="search" class="topSearchTextBackground" />
</div>
<div id="topSearchButtonStyle">
<input type="submit" name="submit" class="topSearchButtonBackground" value="" />
</div>
</form>
这是具有php代码的页面
<?php
$getSearch = $_POST['search'];
trim($getSearch);
if(!get_magic_quotes_gpc()) {
$getSearch = addslashes($getSearch);
}
$connectToDb = "select * from tutorials where tutorial_title like '%.$getSearch.%'";
$searchResults = $db->query($connectToDb) or die($db->error);
if ($searchResults){
$numResultas = $searchResults ->num_rows;
echo "<p>Found : " . $numResultas . "</p>";
while($row = mysqli_fetch_array($searchResults)) {
echo $row['tutorial_title'];
}
}else{
echo "cant connect";
}
?>
任何想法为什么它给我这个关于“Undefined index:search”的说明 为什么结果会变成“0”
答案 0 :(得分:1)
从您提供的代码示例中,我没有看到您获得Undefined index: search
的原因,但是,您确定$_POST['search']
实际设置了吗?如果这是某个框架或其他项目的一部分,我已经看到一些取消设置$ _POST和$ _GET,你必须以另一种方式访问它们。
未定义的索引错误是否可能来自代码中的其他行?
如果通过$_POST['search']
获得值,则得到0结果的原因是因为SQL语句中有错误。
应该是:"select * from tutorials where tutorial_title like '%".$getSearch."%'"
最后,您应该使用mysql_real_escape_string
代替addslashes,或者更好prepared statements。