2014-11-04 99 views
0

我有一个窗体可以帮助用户将值插入到数据库中。我已经在服务器端创建了一个检查,确保在数据库中没有输入重复标题。一切正常。但是我希望做一些修改,我希望当用户试图提交表单在窗体上打印错误消息

<form class="form-horizontal" role="form" action="insert_project1.php" enctype="multipart/form-data" method="post"> 
    <div class="form-group"> 
     <label class="col-lg-3 control-label">Title</label> 
      <div class="col-lg-8"> 
       <input class="form-control" name="title" value="" type="text"> 
      </div> 
    </div> 

    <div class="form-group"> 
     <label class="col-lg-3 control-label">Title</label> 
      <div class="col-lg-8"> 
       <input class="form-control" name="title" value="" type="text"> 
      </div> 
    </div> 
</form> 

代码,我在声明中echo "title already exists";我打印的消息应该得到的形式显示,在标题框的前insert_project1.php页

<?php 
include('session.php'); 

$con=mysqli_connect("localhost","root","","db"); 
if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$title = mysqli_real_escape_string($con, $_POST['title']); 
$categoryname = mysqli_real_escape_string($con, $_POST['categoryname']); 
$goal = mysqli_real_escape_string($con, $_POST['goal']); 

if($_POST) 
    { 
     $title = $_POST['title']; 
     $sql1 = "SELECT title from project"; 
     $result = mysqli_query($con, $sql1); 
     if (mysqli_num_rows($result) > 0) 
      { 
       echo "title already exists"; 
      } 
     else 
      { 
       $sql="INSERT INTO project (title, category, goal) VALUES ('$title', '$categoryname', '$goal')"; 
       if (!mysqli_query($con,$sql)) 
        { 
         die('Error: ' . mysqli_error($con)); 
        } 
       header("Location: create_project.php"); 
       exit; 
      } 
    } 

mysqli_close($con); 
?> 
+0

为什么混合'的mysql/mysqli'? – Ghost 2014-11-04 07:03:19

+1

@Ghost Cuz,这是新事物。 OP改变了代码。 – 2014-11-04 07:06:14

+0

'$ query = mysqli_query($ sql1);'顺便说一句,会失败。但你知道,对吗? – 2014-11-04 07:06:41

回答

0

在你的HTML:

<?php 
    if(isset($title_error)){ 
?> 
    <?php echo $title_error ?> 
<?php } ?> 
<label class="col-lg-3 control-label">Title</label> 

在你的PHP文件:

if (mysqli_num_rows($result) > 0) 
{ 
    $title_error = "title already exists"; 
} 
1

试试这个:

session_start() 
 
$con=mysqli_connect("localhost","root","","db"); 
 
if (mysqli_connect_errno()) 
 
    { 
 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
 
    } 
 

 
$title = mysqli_real_escape_string($con, $_POST['title']); 
 
$categoryname = mysqli_real_escape_string($con, $_POST['categoryname']); 
 
$goal = mysqli_real_escape_string($con, $_POST['goal']); 
 

 
if($_POST) 
 
    { 
 
     $title = $_POST['title']; 
 
     $sql1 = "SELECT title from project"; 
 
     $result = mysqli_query($con, $sql1); 
 
     if (mysqli_num_rows($result) > 0) 
 
      { 
 
       $_SESSION['error_msg']='title already exists'; 
 
      } 
 
     else 
 
      { 
 
       $sql="INSERT INTO project (title, category, goal) VALUES ('$title', '$categoryname', '$goal')"; 
 
       if (!mysqli_query($con,$sql)) 
 
        { 
 
         die('Error: ' . mysqli_error($con)); 
 
        } 
 
       header("Location: create_project.php"); 
 
       exit; 
 
      } 
 
    } 
 

 
mysqli_close($con); 
 
?>
<form class="form-horizontal" role="form" action="insert_project1.php" enctype="multipart/form-data" method="post"> 
 
    <div class="form-group"> 
 
     <label class="col-lg-3 control-label">Title</label> 
 
      <div class="col-lg-8"> 
 
       <input class="form-control" name="title" value="" type="text"> 
 
\t \t \t \t <?php session_start(); if(isset($_SESSION['error_msg'])) echo $_SESSION['error_msg']; ?> 
 
      </div> 
 
    </div> 
 

 
    <div class="form-group"> 
 
     <label class="col-lg-3 control-label">Title</label> 
 
      <div class="col-lg-8"> 
 
       <input class="form-control" name="title" value="" type="text"> 
 
      </div> 
 
    </div> 
 
</form>