2010-08-31 210 views
1

從用戶的形式:我想插入下列數據: 1)名2)姓氏3)主要4)畢業年份插入用戶數據到數據庫使用INSERT語句

我能夠連接到數據庫,然後選擇我需要的數據庫 - 但我無法從表單插入數據。我可以創建記錄,但數據不會保存到數據庫中。基本上,現在我正在創建空白表單。

變量$ uInput保存用戶數據。我嘗試將$ uInput傳遞給函數doAction(),但我相信這是問題所在。我試圖弄清楚如何將用戶數據傳遞給函數doAction()。

<?php 

    //Call function mainline 
    mainline(); 

    // Declare the function mainline 
    function mainline() { 

     $uInput = getUserInput(); 

     $connectDb = openConnect(); // Open Database Connection 
     selectDb($connectDb); // Select Database 
     doAction($uInput); 
     //closeConnect(); 
     //display(); 

    } 

    //Declare function getUserInput ------------------------------------------------------------------------------------ 
    function getUserInput() { 

     echo "In the function getUserInput()" . "<br/>"; 

     // Variables of User Input 
     $idnum = $_POST["idnum"];    // id (NOTE: auto increments in database) 
     $fname = $_POST["fname"];    // first name 
     $lname = $_POST["lname"];   // last name 
     $major = $_POST["major"];   // major 
     $year = $_POST["year"];   // year 
     $action = $_POST["action"];  // action (select, insert, update, delete) 

     $userInput = array($idnum, $fname, $lname, $major, $year, $action); 
      //echo "info from getUserInput: " . $action;  
     return $userInput; 
    } 


    function doAction($pUserInput) { 
     // if user selects INSERT from dropdown menu, then call function insert 
     //and pass $uInput 
     if ($pUserInput[5] == "ins") { 
      insert($uInput);  
     } 

    } 

    // Create a database connection -------------------------------------------------------- 
    function openConnect() { 
     $connection = mysql_connect("localhost", "root_user", "password"); 
      echo "Opened Connection!" . "<br/>"; 

     if(!$connection) { 
      die("Database connection failed: " . mysql_error()); 
     } 

     return $connection; 
    } 

    // Select a database to ---------------------------------------------------------------- 
    function selectDb($pConnectDb) { 
     $dbSelect = mysql_select_db("School", $pConnectDb); 
     if(!$dbSelect) { 
      die("Database selection failed: " . mysql_error()); 
     } else { 
     echo "You are in the School database! <br/>"; 
     } 

    } 


    // function insert --------------------------------------------------------------------- 
    function insert($pUInput) { 

     $sql="INSERT INTO tblStudents (first_name, last_name, major, year) 
       VALUES 
      ('$pUInput[1]','$pUInput[2]','$pUInput[3]', '$pUInput[4]')"; 

      if (!mysql_query($sql)) 
       { 
       die('Error: ' . mysql_error()); 
       } 
      echo "1 record added"; 
    } 

    ?> 
+0

當你print_r($ pUInput)時,一切看起來很酷? – Mikey1980 2010-08-31 17:54:43

回答

1

您的doAction()功能是越野車。您正在將函數的參數作爲$pUserInput,但發送到insert()函數爲$uInput

你應該做的是這樣的:

function doAction($pUserInput) 
{ 
    // if user selects INSERT from dropdown menu, then call function insert 
    //and pass $uInput 
    if ($pUserInput[5] == "ins") 
    { 
      insert($pUserInput); // <-- FIXED: Not using correct parameter. 
    } 
} 
+0

啊!只是注意到了!謝謝,我知道這個變量是如何傳遞的。 1記錄添加:不是空白! – jc70 2010-08-31 18:03:34

+0

/hmm,但數據庫中的年份爲0000-00-00。看起來我正在處理一個不同的問題。用戶從下拉菜單中選擇一年(即2010,2011,2012等等......) – jc70 2010-08-31 18:06:54

+0

@ crewof1,請爲此發佈單獨的問題。 – shamittomar 2010-08-31 18:14:14

0

更改插件($ uInput);函數來插入($ pUserInput);

相關問題