2015-11-06 71 views
0

變量的值傳遞到另一個頁面,我初學PHP MySQL的,
我想問我怎麼能傳遞變量的值 另一個頁面,例如:

我有所有下拉式的輸入表格將用於搜索條件。 它可以調用的變量與SQL查詢這樣的值:
使用按鈕PHP MySQL的

在此示例中,我設置了$sqlPage1.php,我想它調用Page2.php

$sql = "SELECT * table 
WHERE column1 = '".$variable1."' 
AND column2 = '".$variable2."' 
AND column3 = '".$variable3."' "; 

OR

如果這種情況可以被調用或轉移或傳遞到另一個頁面?

if ($result=mysql_query($sql)) { 
      $query_num_rows = mysql_num_rows($result); 
      if($query_num_rows == 0){ 
       echo "<script> alert('No Records Found!')</script>"; 
     } else { 
      while($row=mysql_fetch_array($result)){ 

我這樣做,因爲我想有單獨的代碼生成到CSV因爲如果我用這個在同一個頁面,由於FF:

  • 它只是提示空白頁面,並自動生成報告,而無需詢問條件。
  • 我無法查看搜索表單的用戶界面
  • 它還生成代碼的CSV

欲瞭解更多信息,這裏是我的所有代碼:
報告。 php

<?php 
    session_start(); 
    include_once "dbconnect.php"; 
    date_default_timezone_set('Hongkong'); 

      //Validate Login 
      $res=mysql_query("SELECT * FROM accounts WHERE user_id=".$_SESSION['user']); 
      $userRow=mysql_fetch_array($res); 
      if(!isset($_SESSION['user'])) 
      { 
       header("Location: index.php"); 
      }//end of Validation Login 

      //Setting up Variables for Search form 
      if (isset($_POST['generate'])) { 

      $month = htmlentities(mysql_real_escape_string($_POST['month'])); 
      $year = htmlentities(mysql_real_escape_string($_POST['year'])); 
      $status = htmlentities(mysql_real_escape_string($_POST['status'])); 


      if (empty($month) && empty($year) && empty($status)) { 
      echo '<script>alert(\'Select atleast 1 filter\')</script>'; 
      exit;   
     } 

     //condition of search 
     //Single Search 
     if (!empty($month)) { 
     $sql = "SELECT `subscribers`.`cus_id`, `subscribers`.`fName`, `subscribers`.`lName`,`transactions`.`month`, 
     `transactions`.`year`, `transactions`.`subscriptionStart`,`transactions`.`subscriptionEnd`,`transactions`.`subsStatus` 
      FROM `subscribers` 
      INNER JOIN `transactions` 
      ON `subscribers`.`cus_id` = `transactions`.`cus_id` 
      WHERE 
      `transactions`.`month` = '".$month."' 
      ORDER BY `cus_id` ASC "; 

     } if (!empty($year)) { 
      $sql = "SELECT `subscribers`.`cus_id`, `subscribers`.`fName`, `subscribers`.`lName`,`transactions`.`month`, 
     `transactions`.`year`, `transactions`.`subscriptionStart`,`transactions`.`subscriptionEnd`,`transactions`.`subsStatus` 
      FROM `subscribers` 
      INNER JOIN `transactions` 
      ON `subscribers`.`cus_id` = `transactions`.`cus_id` 
      WHERE 
      `transactions`.`year` = '".$year."' 
      ORDER BY `cus_id` ASC "; 

     } if (!empty($status)) {    
     $sql = "SELECT `subscribers`.`cus_id`, `subscribers`.`fName`, `subscribers`.`lName`,`transactions`.`month`, 
     `transactions`.`year`, `transactions`.`subscriptionStart`,`transactions`.`subscriptionEnd`,`transactions`.`subsStatus` 
      FROM `subscribers` 
      INNER JOIN `transactions` 
      ON `subscribers`.`cus_id` = `transactions`.`cus_id` 
      WHERE 
      `transactions`.`status` = '".$status."' 
      ORDER BY `cus_id` ASC "; 

     //Compound Search 

     } if (!empty($month) && !empty($year)) { 
      $sql = "SELECT `subscribers`.`cus_id`, `subscribers`.`fName`, `subscribers`.`lName`,`transactions`.`month`, 
     `transactions`.`year`, `transactions`.`subscriptionStart`,`transactions`.`subscriptionEnd`,`transactions`.`subsStatus` 
      FROM `subscribers` 
      INNER JOIN `transactions` 
      ON `subscribers`.`cus_id` = `transactions`.`cus_id` 
      WHERE 
      `transactions`.`month` = '".$month."' 
      AND `transactions`.`year` = '".$year."' 
      ORDER BY `cus_id` ASC "; 

     } if (!empty($month) && !empty($status)) { 
      $sql = "SELECT `subscribers`.`cus_id`, `subscribers`.`fName`, `subscribers`.`lName`,`transactions`.`month`, 
     `transactions`.`year`, `transactions`.`subscriptionStart`,`transactions`.`subscriptionEnd`,`transactions`.`subsStatus` 
      FROM `subscribers` 
      INNER JOIN `transactions` 
      ON `subscribers`.`cus_id` = `transactions`.`cus_id` 
      WHERE 
      `transactions`.`month` = '".$month."' 
      AND `transactions`.`status` = '".$status."' 
      ORDER BY `cus_id` ASC "; 

     } if (!empty($month) && !empty($status) && !empty($year)) { 
      $sql = "SELECT `subscribers`.`cus_id`, `subscribers`.`fName`, `subscribers`.`lName`,`transactions`.`month`, 
     `transactions`.`year`, `transactions`.`subscriptionStart`,`transactions`.`subscriptionEnd`,`transactions`.`subsStatus` 
      FROM `subscribers` 
      INNER JOIN `transactions` 
      ON `subscribers`.`cus_id` = `transactions`.`cus_id` 
      WHERE 
      `transactions`.`month` = '".$month."' 
      AND `transactions`.`status` = '".$status."' 
      AND `transactions`.`year` = '".$year."' 
      ORDER BY `cus_id` ASC "; 

     } 

     //Is this possible to transfer to another page? I'll be using this for generate.csv 
     //FROM here 
     if ($result=mysql_query($sql)) { 
      $query_num_rows = mysql_num_rows($result); 
      if($query_num_rows == 0){ 
       echo "<script> alert('No Records Found!')</script>"; 
     } else { 
      while($row=mysql_fetch_array($result)){ // is this possible to move in another page? 
      echo "I removed the Table here because it's not important"; 
      //Please any tips what I can add here? 
     }// end of while 
    }//end of else 
// TO HERE 

}//end of POST, setting up of variables 

?> 

<html> 
<body> 
    <form action="generate-csv.php" method="POST"> 
    <label>Month</label> 
     <select> 
     <option>JANUARY</option> 
     <option>fEBRUARY</option> 
     <option>MARCH</option> 
     <option>so on...</option> 
    </select> 
    <label>Year</label> 
     <select> 
     <option>2015</option> 
     <option>2014</option> 
    </select> 
    <label>Status</label> 
     <select> 
     <option>FRESH</option> 
     <option>RENEWAL</option> 
     <option>WINBACK</option> 
    </select> 
    <input type="submit" name="generate" value="GENERATE"> 
    </form> 
</body> 


generate.php

  <?php 
     include_once "dbconnect.php"; 
     include_once "report.php"; 

     //$sql will came from report.php 
     if($result = mysql_query($sql)){ 
     if (mysql_num_rows($result) > 0) { 
      $columns_total = mysql_num_fields($result);  

     // Get The Field Name 
     for ($i = 0; $i < $columns_total; $i++) { 
     $heading = mysql_field_name($result, $i); 
     $output .= '"'.$heading.'",'; 
     } 
     $output .="\n";      
     } while($row = mysql_fetch_array($result)) { 
          for ($i = 0; $i < $columns_total; $i++) { 
     $output .='"'.$row["$i"].'",'; 
     } 
     $output .="\n"; 
     } 
     $filename = "myFile.csv"; 
     header('Content-type: application/csv'); 
     header('Content-Disposition: attachment; filename='.$filename); 
     echo $output; 
     exit; 
     }?> 
+1

'$ _GET'變量,'$ _POST'變量或'$ _SESSION'變量(一個或多個),每個人都可以解決你的問題。 –

+0

您可以使用'$ _SESSION'變量 – sandeepsure

回答

2

report.php存儲SQL在$_SESSION變量。

//Put your code here. 

$_SESSION['sql_query'] = $sql; 

//Is this possible to transfer to another page? I'll be using this for generate.csv 
    //FROM here 
    if ($result=mysql_query($sql)) { 
     $query_num_rows = mysql_num_rows($result); 
     if($query_num_rows == 0){ 
      echo "<script> alert('No Records Found!')</script>"; 
    } else { 
     while($row=mysql_fetch_array($result)){ // is this possible to move in another page? 
     echo "I removed the Table here because it's not important"; 
     //Please any tips what I can add here? 
    }// end of while 
}//end of else 

和訪問它generate.php

if($result = mysql_query($_SESSION['sql_query'])) // first line of your code after include. 
+0

嗨,先生,所以我會在** generate.php **中刪除它? '<?php include_once「dbconnect.php」; include_once「report.php」; // $ sql將來自報告。($ result = mysql_query($ sql)){ if(mysql_num_rows($ result)> 0){ $ columns_total = mysql_num_fields($ result); ' – Edmhar

+0

@ JJ-SAMA你需要替換'if($ result = mysql_query($ sql)){'code with'if($ result = mysql_query($ _ SESSION ['sql_query'])){'in your generate.php 。休息將保持不變。如果這個答案適合你,那麼他們將其標記爲已接受。 – sandeepsure

+0

謝謝,它的工作,但它也''report.php''''導出'csv' – Edmhar