此文件包含搜索表单的代码:
search.php
<?php
session_start();
?>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<?php
echo"WELCOME ".strtoupper($_SESSION['user']);
?>
<form method="get" action="searched.php">
<label for="ques"></label>
<input type="text" name="title" id="title" placeholder="Search...">
<button type="submit" name="search"><i class="fa fa-search"></i></button>
</form>
<form method="post" action="question.php">
<button type="submit" name="ask_ques">Ask a Question</button>
</form>
</body>
</html>
此文件从搜索栏获取输入,并显示标题以及问题和答案(如果有)。它还包含一个用于回答问题的评论框:
searched.php
<?php
session_start();
?>
<html>
<head>
</head>
<body>
<?php
$conn=new mysqli("localhost","khushank","sethi","q&a");
if($conn->connect_error){
echo "unable to connect";
}
if($_SERVER['REQUEST_METHOD']=='GET'){
if(isset($_GET['search'])){
$title=$_GET['title'];
$qsel=" SELECT title,qemail,ques FROM question WHERE title='$title' ";
if($qresult=$conn->query($qsel)){
if($qresult->num_rows==0){
header('location:question.php');
}
else{
while($qres=$qresult->fetch_assoc()){
echo "<strong>".ucfirst($qres['title'])."</strong><br><br>";
echo $qres['qemail'];
?>
<textarea cols="65" id="qdes"><?php echo $qres['ques']; ?></textarea><br><br>
<?php
$asel=" SELECT answer.aemail,answer.ans FROM question JOIN answer ON question.ques=answer.ques ";
if($aresult=$conn->query($asel)){
if($aresult->num_rows>0){
while($ares=$aresult->fetch_assoc()){
echo"Answer:";
?>
<textarea cols="65" id="ades"><?php echo $ares['ans']; ?></textarea><br><br>
<?php
}
}
?>
<form method="get" action="insertA.php?$ques='$qres['ques']'">
<label for="ans"><?php
echo $_SESSION['user'];
?></label>
<textarea cols="90" name="ans" placeholder="Your Answer"></textarea>
<input type="submit" name="comment" value="submit">
</form>
<?php
}
else{
echo "answer not selected";
}
}
}
}
else{
echo"not selected";
}
}
}
$conn->close();
?>
</body>
</html>
在此文件中,答案使用get方法存储,但无法插入数据库:
insert.php
<?php
require 'searched.php';
$conn=new mysqli("localhost","khushank","sethi","q&a");
if($conn->connect_error){
echo "unable to connect";
}
echo"connected";
if($_SERVER['REQUEST_METHOD']=='GET'){
if(isset($_GET['comment'])){
$ans=mysql_real_escape_string($_GET['ans']);
$username=$_SESSION['user'];
//$ques=$_GET['$ques'];
$insa=" INSERT INTO answer(aemail,ans) VALUES('$username','$ans') " ;
if($conn->query($insa)){
echo"inserted";
echo"<script type='text/javascript'>".'alert("your answer is posted successfully");
</script>';
}
else{
echo"not inserted";
}
}
}
else{
echo"1";
}
$conn->close();
?>
我无法插入存储在中的值 $ans
.
2条答案
按热度按时间oxcyiej71#
这是解决你问题的正确方法。虽然我没有看到您的模式,但它看起来有点错误,因为您是使用question字段加入表的,根据您的问题,question字段可能是string数据类型。因此,建议的数据库结构如下:
问题表:
答题表:
我们在答案表中添加问题id,因为我们需要它来连接两个表。这意味着我们需要使用问题id。
将search.php更改为:
提交上述表单时,根据数据库中搜索词的可用性,可以转到question.php或searched.php。如果希望将搜索词与存储在问题表中的确切数据相匹配,可以使用以下代码:searched.php
如果要进行部分匹配,则必须更改代码的这部分:
至
将insert.php更改为:
数据库连接.php
把它们放在同一个目录下,就行了。希望这对你有帮助。
93ze6v8z2#
问题是不能将php直接写入html。注意search.php表单标签。用这个。
还有一点,您的页面名称只是insert.php,而不是inserta.php