检查数据库中是否存在搜索项—PHP不会输出任何内容,但仍会向数据库中添加项
Checking if searched item exists in database - PHP won't output anything but will still add item to the database
我正在学习PHP,我希望解决我的PHP, JS和SQL问题。
如果有必要,为了确保你确切地理解问题是什么,你可能需要设置HTML, CSS, PHP和JS来处理你的SQL数据库。只要你有空,我就请你花点时间。
正如你可能看到的,我有一个搜索栏。用户在搜索栏中输入他们的兴趣,然后它将兴趣添加到数据库中。如果他们的兴趣存在于数据库中(就像其他人有相同的兴趣一样),它使用If语句来表示。然而,由于某些原因,如果找到感兴趣的内容,它将不做任何事情(甚至没有测试警报)。然而,它会在数据库中插入一些东西(在这种情况下是其他现有兴趣的数量),这是非常奇怪的。我在PHP文件中插入了注释,以解释正在发生的事情和问题所在。
分别是PHP, JS, CSS和HTML:
<?php
error_reporting(E_ALL ^ E_NOTICE);//TO REMOVE THE ANNOYING KEYWORD ERRORS
function connect() {
return new PDO('mysql:host=localhost;dbname=mysite', 'username', 'pw', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
}
//GET THE USERS IP
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip=$_SERVER['REMOTE_ADDR'];
}
$pdo = connect();
//OUTPUT THE SEARCHBAR SUGGESTIONS (OBTAIN SUGGESTIONS FROM DATABASE)
$testing = '%'.$_POST['keyword'].'%';
$sql = "SELECT * FROM interests WHERE interestName LIKE (:testing) ORDER BY id ASC LIMIT 0, 10";
$query = $pdo->prepare($sql);
$query->bindParam(':testing', $testing, PDO::PARAM_STR);
$query->execute();
$list = $query->fetchAll();
foreach ($list as $rs) {
$interestName = str_replace($_POST['keyword'], '<b>'.$_POST['keyword'].'</b>', $rs['interestName']);
$interestlist = '<li onclick="set_item('''.str_replace("'", "''", $rs['interestName']).''')">'.$interestName.'</li>';
if (strlen($_POST['keyword']) > 0){
echo $interestlist; //THIS IS THE SUGGESTION BAR OUTPUT WITH THE SUGGESTIONS
}
}
//EVERYTHING ABOVE THIS WORKS.. THIS IS THE ISSUE HOWEVER:
if(isset($_POST['counter'])=="counter"){
//INSERT THE INTEREST INTO THE DATABASE, WITH THE USER'S IP.
$interestid=$_POST['interestinput'];
$insertion = "INSERT INTO users (ipaddress, interest)
VALUES ('$ip', '$interestid')";
$pdo->query($insertion);
//INSERTION WORKS. NOW I WANT TO CHECK IF INTEREST EXISTS. IF IT DOES EXIST, PRINT 'Users exist!':
$item ="SELECT * FROM `users` WHERE interest LIKE '$interestid'";
$result = $pdo->query($item)->fetchAll();
$counted = count($result); //COUNT NUMBER OF RESULTS, THEN INSERT IT AS A TEST.
$insertion = "INSERT INTO users (ipaddress, interest)
VALUES ('$ip', '$counted')";
if (count($result) > 1) {
$pdo->query($insertion); //TEST IF IT WORKS -- THIS INSERTS THE TOTAL NUMBER OF SAME INTERESTS. IT WORKS!
//BUT..
echo ("Users exist!"); //THIS DOES NOTHING? <--------- THE ISSUE
echo "<script> alert('Test'); </script>"; //THIS ALSO DOES NOTHING (as a test)
}
}
?>
//THIS FUNCTION IS CALLED WHEN THE USER HITS ENTER:
function enterPressed(e, field) {
if (e.keyCode == 13) {
var tb = document.getElementById("searchbox");
if (field.value.length > 0) {
document.getElementById('searching').style.display='block';
document.getElementById('searchdisappear').style.display='none';
$.ajax({
type: 'POST',
url: './php/phprefresh.php',
data: {interestinput: field.value, counter: "counter"},
});
}
}
}
//THIS FUNCTION GIVES INTEREST SUGGESTIONS (PULLED FROM THE DATABASE):
function autocomplet() {
var workchecker = 0
var min_length = 1;
var keyword = $('#searchbox').val();
if (keyword.length == min_length) {
$.ajax({
url: './php/phprefresh.php',
type: 'POST',
data: {keyword:keyword},
success:function(data){
$('#interest_list_id').show();
$('#interest_list_id').html(data);
}
});
} else {
$('#interest_list_id').hide();
}
}
//THIS FUNCTION SETS THE SUGGESTION INTO THE SEARCH BOX WHEN CLICKED
function set_item(item) {
$('#searchbox').val(item);
$('#interest_list_id').hide();
}
/*Input*/
input.interestsearch {
margin: auto;
margin-top: 30px;
width: 540px;
height: 30px;
font-size: 22px;
display: block;
padding: 2px 2px 2px 8px;
outline: none;
}
.input_container {
padding: auto;
margin: auto;
margin-top: -10px;
width: 520px;
display: block;
outline: none;
font-size: 20px;
}
.input_container ul {
list-style: none;
border-radius: 15px;
padding: 5px;
color: black;
}
.input_container ul li:hover {
border: 1px solid black;
border-radius: 15px;
cursor: pointer;
width: 500px
}
<!DOCTYPE html>
<html lang = "en">
<head>
<title>Testsite</title>
<link rel="stylesheet" type="text/css" href="./css/main.css">
<script src ="./js/search.js"></script>
<script type="text/javascript" src="js/jquery.min.js"></script>
</head>
<body">
<!-- SEARCH BAR -->
<div id="searchdisappear" style="display:block;">
<center><h1> INTEREST SEARCH </h1></center>
<input class="interestsearch" id="searchbox" maxlength="200" type="text" title="Search for an interest" onkeyup="autocomplet();" autocomplete="off" onkeypress="enterPressed(event, searchbox);" placeholder="Search for an interest.."/>
<div class="input_container">
<ul id="interest_list_id"></ul>
</div>
</div>
<!-- CONNECTING PEOPLE WITH SAME INTEREST-->
<div id="searching" style="display:none;">
<center> <p>Finding people..</p></center>
</div>
</html>
不要犹豫,问任何关于代码的问题。我很乐意回答任何问题!
我真的很感激每个人的时间。这已经让我抓狂太久了添加
<div id="response"></div>
添加到HTML中,它将显示结果,然后在enterPressed函数中添加success:参数。ie .
function enterPressed(e, field) {
if (e.keyCode == 13) {
var tb = document.getElementById("searchbox");
if (field.value.length > 0) {
document.getElementById('searching').style.display='block';
document.getElementById('searchdisappear').style.display='none';
$.ajax({
type: 'POST',
url: './php/phprefresh.php',
data: {interestinput: field.value, counter: "counter"},
success: function() {
$("#response").html("<p>User Exists</p>");
}
});
}
}
}
如果你想从phprefresh.php中显示回显文本(以HTML形式),将success:改为
success: function(data) {
$("#response").html(data);
}
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 使用javascript从数据库中添加表
- 使用ASP.NET将谷歌地图添加到项目中,并从数据库中检索位置
- 如何使用PHP将javascript变量添加到mysql数据库中
- 将行从数据库添加到表视图
- 为什么我可以添加一个新主题,但我可以't向SQLite数据库添加新注释
- 已经设置了mongodb,猫鼬等,但是当我尝试向数据库添加一些东西时,它实际上并没有添加它
- 将php数据库添加到java脚本文件中
- 如何在数据库添加调用后重新呈现页面而不刷新
- 向firebase数据库添加身份验证数据
- 如何在向SQL数据库添加新数据后更新我的$作用域
- 如何正确地使用AngularJS和Laravel 5向数据库添加新记录
- 如何为php选择数据库添加SLIDE DOWN/SLIDE UP功能
- 在不创建新数据库的情况下向数据库添加更多信息
- 如何在向数据库添加附加行时插入附加信息
- 通过ajax向数据库添加单选按钮选择
- 向MySQL数据库添加文本块
- 当使用 JavaScript 动态添加数据库时,如何使用 PHP 向数据库添加信息
- 如何从mysql插入数据后,从数据库添加一个内容HTML没有刷新php
- 向数据库添加数据文本文件