2014-01-13 29 views
0

這裏是我的代碼如何調用在MySQL中值,則變成一個可變

<?php 
require("db.php"); 
$datetoday = date("Y-m-d"); 
if (isset($_POST['submit'])) 
    {  
    include 'db.php'; 
    $loginid =$_REQUEST['loginid']; 

$result = mysql_query("SELECT * FROM info WHERE id = '$loginid'"); 
$test = mysql_fetch_array($result); 
$testid=$test['id']; 
$fnameloginsuccess1=$test['firstname']; 
$mnameloginsuccess1=$test['middlename']; 
$lnameloginsuccess1=$test['lastname']; 
$departmentloginsuccess1=$test['department']; 
echo'<input type="text" name="fname" value="<?php echo $fnameloginsuccess1 ?>"/></td>'; 
if (!$loginid) 
{header("location:../index.php"); } 






    $natureofleave =$_POST['group1']; 
    $datestart=$_POST['startofleave']; 
    $dateend=$_POST['endofleave']; 
    $reason=$_POST['reason']; 
    $status= 'pending'; 





    mysql_query("INSERT INTO `request`(id,natureofleave,dateofleavestart,dateofleaveend,reasons,datesubmitted,department,status,firstname,middlename,lastname) 
     VALUES('$log','$natureofleave','$datestart','$dateend','$reason','$datetoday','$departmentloginsuccess1','$status','$fnameloginsuccess1','$mnameloginsuccess1','$$lnameloginsuccess1')"); 





    } 

我的主要問題是我不能忍受的fnameloginsuccess1 $,$ mnameloginsuccess1' 值,‘$ lnameloginsuccess1’, $ departmentloginsuccess1在我的數據庫.. 但我可以「回聲」他們..有些值正在工作,但4個值沒有工作! 我已經試過fname = $ fnameloginsuccess1';可悲地說,它沒有工作.. 幫助!

回答

0
<?php 
    require("db.php"); 
    $datetoday = date("Y-m-d"); 
    if (isset($_POST['submit'])) 
    {  
     include 'db.php'; 
     $loginid =$_REQUEST['loginid']; 

     if (!$loginid) {header("location:../index.php"); }  

     $result = mysql_query("SELECT * FROM info WHERE id = '$loginid'"); 
     $test = mysql_fetch_array($result); 
     $testid=$test['id']; 
     $fnameloginsuccess1=$test['firstname']; 
     $mnameloginsuccess1=$test['middlename']; 
     $lnameloginsuccess1=$test['lastname']; 
     $departmentloginsuccess1=$test['department']; 
     echo'<input type="text" name="fname" value="'.$fnameloginsuccess1.'"/></td>'; 

     $natureofleave =$_POST['group1']; 
     $datestart=$_POST['startofleave']; 
     $dateend=$_POST['endofleave']; 
     $reason=$_POST['reason']; 
     $status= 'pending'; 

     mysql_query("INSERT INTO `request` (id, natureofleave, dateofleavestart, dateofleaveend, reasons, datesubmitted,department,status,firstname,middlename,lastname) VALUES('$log','$natureofleave','$datestart','$dateend','$reason','$datetoday','$departmentloginsuccess1','$status','$fnameloginsuccess1','$mnameloginsuccess1','$lnameloginsuccess1')"); 

    } 

?> 
0
<?php 
require_once("db.php"); 
$datetoday = date("Y-m-d"); 

if ($_SERVER['REQUEST_METHOD'] == "POST") 
{ 
    $loginid = $_REQUEST['loginid']; 
    if (!$loginid) 
    { 
     header("Location: ../index.php"); 
     exit; 
    } 

    $result = mysql_query("SELECT * FROM `info` WHERE `id` = '$loginid'"); 
    $user = mysql_fetch_array($result); 
    $id  = $user['id']; 
    $first = $user['firstname']; 
    $middle = $user['middlename']; 
    $last = $user['lastname']; 
    $dept = $user['department']; 
    $nature = $_POST['group1']; 
    $start = $_POST['startofleave']; 
    $end = $_POST['endofleave']; 
    $reason = $_POST['reason']; 
    $status = 'pending'; 

    $sql = <<<SQL 
     INSERT INTO `request` 
      (`id`, `natureofleave`, `dateofleavestart`, `dateofleaveend`, `reasons`, `datesubmitted`, `department`, `status`, `firstname`, `middlename`, `lastname`) 
     VALUES 
      ('$id', '$nature', '$start', '$end', '$reason', '$datetoday', '$department', '$status', '$first', '$middle', '$last'); 
SQL; 
    mysql_query($sql) or die ('There was an error processing your data.'); 
} 
?> 

有幾點我覺得有必要指出:

  1. 正如你 「規定」 的分貝。 PHP,你不應該需要「包含」它。
  2. 命名變量時,最好讓它們變得簡單。更容易調試和追蹤。
  3. 在標題重定向後退出腳本。標題中的延遲可能允許進一步的代碼執行。
  4. 不能使用PHP PHP標籤的標籤裏面 - 它只是不解析方式
  5. 我建議寫SQL請求mysql_query()包裝之外,因爲你可以再回聲出SQL
    • ,如果你寫
  6. 日誌不直接定義裏面的mysql_query(),它無法做到的,所以它不會輸入。我會假設這應該是用戶ID和編輯適合。
  7. 你必須在查詢(lnameloginsuccess1)2個美元符號

無論如何,如果你運行上面的代碼,並得到「有一個錯誤處理您的資料。」,你可以很容易地調試這。

  1. 更改 mysql_query($ sql)或死('有處理您的數據時出錯'。 到 mysql_query($ sql)或die(mysql_error());

如果它報告的錯誤是模糊的,那麼你會得到更好的結果,將查詢直接運行到管理面板(PhpMyAdmin和類似的東西),所以做到這一點;

  1. 在mysql查詢之前的行上,只需添加「echo $ sql;」並再次運行該頁面。複製查詢的整個輸出並在數據庫管理面板中運行。

如果沒有錯誤,你需要看的連接問題 - 就像在連接數據錯誤

+0
+0

我確實提供了有關調試的信息,因此請嘗試使用這些信息並將結果回傳。 – MrMarlow

相關問題