2014-10-10 115 views
1

我有一个2页的表单。第一页从用户接收关于财产和商店的输入retailer_add_property表。在该页面之后,用户被重定向到下一页admin_add_property_images.php,其中用户可以存储在前一页中输入的属性的多个图像(表名是propertyimages)。我所试图做的是获取将在第一种形式创建retailer_add_property表的最后插入的ID,并将其存储在propertyimages表从一个表中获取id并使用php将其存储到另一个表中

形式之一:admin_add_property.php

<form class="form-horizontal" role="form" action="admin_insert_property.php" enctype="multipart/form-data" method="post"> 
    <div class="form-group"> 
     <label class="col-lg-3 control-label">Property name:</label> 
      <div class="col-lg-8"> 
       <input class="form-control" name="propertyname" value="" type="text" required> 
      </div> 
    </div> 

    <div class="form-group"> 
     <label class="col-md-3 control-label">Property Type:</label> 
      <div class="col-md-8"> 
       <select name="cancellation" id="cancellation" required>      
        <option value="yes">Yes</option>    
        <option value="no">No</option>     
       </select>    
      </div> 
    </div> 


    <div class="form-group"> 
     <label class="col-md-3 control-label"></label> 
      <div class="submit"> 
       <input class="btn btn-primary" value="Save " type="submit" name="submit"> 

       <span></span> 
      </div> 
    </div> 

</form> 

“admin_insert_property .PHP”

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

$con=mysqli_connect("localhost","qwe","pwd","qwe"); 

if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$propertyname = mysqli_real_escape_string($con, $_POST['propertyname']); 
$propertytype = mysqli_real_escape_string($con, $_POST['propertytype']); 


$sql="INSERT INTO retailer_add_property (propertyname,propertytype) VALUES ('$propertyname','$propertytype')"; 

if (!mysqli_query($con,$sql)) 
    { 
     die('Error: ' . mysqli_error($con)); 
    } 

mysqli_query($con, $sql); 

header("Location: admin_add_property_images.php"); 

mysqli_close($con); 

?> 

第二形态:admin_add_property_images.php

<form class="form-horizontal" role="form" action="admin_insert_property_images.php" enctype="multipart/form-data" method="post"> 
    <div class="form-group"> 
     <label class="col-md-3 control-label">Upload Image:</label> 
     <div class="col-md-8"> 
      <input class="form-control" name="file" id="file" value="" type="file" required> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="col-md-3 control-label"></label> 
      <div class="submit"> 
       <input class="btn btn-primary" value="Save " type="submit" name="submit"> 
      </div> 
    </div> 

</form> 

admin_insert_property_images.php

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

$con=mysqli_connect("localhost","qwe","pwd","qwe"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
//Replace $mysqli with your $con then. $con->query($sql); 
$allowedExts = array("gif", "jpeg", "jpg", "png"); 
$temp = explode(".", $_FILES["file"]["name"]); 
$extension = end($temp); 

if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg") 
|| ($_FILES["file"]["type"] == "image/x-png") 
|| ($_FILES["file"]["type"] == "image/png")) 
&& ($_FILES["file"]["size"] < 2000000) 
&& in_array($extension, $allowedExts)) 
    { 
     if ($_FILES["file"]["error"] > 0) 
      { 
       echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
      } 
     else 
      { 
       if (file_exists("propertyimages/" . $_FILES["file"]["name"])) 
        { 
         echo $_FILES["file"]["name"] . " already exists. "; 
        } 
       else 
        { 

         $imagepath = "propertyimages/" . $_FILES["file"]["name"]; 
         move_uploaded_file($_FILES["file"]["tmp_name"], $imagepath); 
         $sql="INSERT INTO propertyimages(propertyimage) VALUES ('".$imagepath."')"; 
         if (!mysqli_query($con,$sql)) 
          { 
           die('Error: ' . mysqli_error($con)); 
          } 
        } 
      } 
    } 
else  
    { 
     echo "Invalid file"; 
    } 
?> 

我试图从一个页面进行到下一个ID,但它并没有制定出我想要的方式。一个人告诉我怎么可以做

回答

2

使用mysqli_insert_id($con)保存在$_SESSION['']并通过在顶部添加session_start();在任何页面上使用它。

**注意:**插入查询后使用mysqli_insert_id()函数;

看看下面

您quesiton部分**文件名:** admin_insert_property.php”

试想一下,在查询secion有它必须是这样

$sql="INSERT INTO retailer_add_property (propertyname,propertytype) VALUES ('$propertyname','$propertytype')"; 

if (!mysqli_query($con,$sql)) 
    { 
     die('Error: ' . mysqli_error($con)); 
    } 

mysqli_query($con, $sql); 

$_SESSION['insert_id']=mysqli_insert_id($con); 
//save the value in the $_SESSION 


header("Location: admin_add_property_images.php"); 

。现在,您可以在任何页面使用$_SESSION['insert_id'];,如果您使用 在顶部使用session_start();

检查此链接更多信息http://php.net/manual/en/mysqli.insert-id.php

+0

所有这些工作都是在用户登录后完成的,所以我使用admin_session创建了登录系统,我可以存储该会话中的id值或我必须创建另一个? – Sam 2014-10-10 10:45:08

+0

k,我试过了,但当我试图以第二种形式回显id的值时,我得到的值为'0' – Sam 2014-10-10 11:04:00

+0

我已经做了多个条目并在每个条目后检查了值,无论是第一条还是第五条id 0的值只有 – Sam 2014-10-10 11:08:30

0

使用$mysqli->insert_idadmin_insert_property.php页面,并修改这样的代码,并获得该id在dmin_add_property_images.php页面,并根据您的要求使用它。

mysqli_query($con, $sql); 

$lastId = $mysqli->insert_id; 

header("Location: admin_add_property_images.php?id=".$lastId); 
+0

我已经试过这个,但问题是,我在第二种形式使用另一个表,所以当我使用这种方法,我得到了一个这样的网址:../admin_add_property_images.php? id = 3,并且我收到一条消息,指出该页面不存在 – Sam 2014-10-10 10:49:02

+0

然后正确检查您的页面名称和位置。它没有任何错误,因为传递变量 – 2014-10-10 10:50:30

+0

我得到这个错误,因为admin_add_property_images。PHP页面有另一个表,它没有行存在谁有ID 3 – Sam 2014-10-10 11:18:04

0

您需要使用$ _GET变量。 第一次插入后,只需在标头中添加插入项目的ID。

header("Location: admin_add_property_images.php?id=". $inserted_id; 

这样你就可以将它传递给其他页面。

+0

我已经尝试过这一点,但问题是,我在第二种形式使用另一个表,所以当我使用这种方法,我得到一个类似的URL这:../admin_add_property_images.php?id=3,我收到一条消息,说这个页面不存在 – Sam 2014-10-10 10:49:19

相关问题