2010-08-31 4 views
1

С пользовательской формой: Я пытаюсь вставить следующие данные: 1) Имя 2) Фамилия 3) Major 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

все выглядит круто, когда вы печатаете_r ($ pUInput)? – Mikey1980

ответ

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

+0

/хмм, но год в базе данных 0000-00-00. похоже, что я имею дело с другой проблемой. пользователь выбирает год из выпадающего меню (например, 2010, 2011, 2012 и т. д. и т. д.) – jc70

+0

@ crewof1, пожалуйста, напишите отдельный вопрос для этого. – shamittomar

0

Изменить вставку ($ uInput); функция для вставки ($ pUserInput);

Смежные вопросы