2014-10-10 60 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

相關問題