用PHP插入SQL

时间:2016-04-14 16:23:17

标签: php html mysql checkbox

基本上我想:

  • 从mySQL服务器提取信息
  • 创建一个学生表,其中包含姓名,电话号码和考试日期
  • 我希望从mySQL中拉出每个学生旁边的复选框,当点击该复选框并且用户点击提交时,它会在特定学生的“联系”栏中插入一个值。该值将为“是”或“NULL”
  • 我使用自动递增的主键(id)为每个学生创建唯一的复选框名称

应用程序:用户将检索我们学生的表格及其考试日期。用户将致电(通过电话)学生并询问他们的考试。一旦用户联系了该学生,他们就会选中复选框以显示该特定学生已经联系过。该信息将存储在mySQL中,供该特定学生使用,以显示该学生已被联系。

这是我的代码:

<?php

define('DB_NAME', 'Students');
define('DB_USER', 'admin');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

$sql = sprintf("SELECT id,f_name,l_name,phone,exam_date FROM Student_data");

$result = mysql_query($sql);

$table_count = 0;

$student_id = array();

echo "<script>
function DoTheThing()
{
" .
for($x = 0; $student_id[$x] != NULL; $x++) 
  { 
$in = sprintf("INSERT INTO Student_data (contacted) VALUES ('". $_POST[$row['id']] ."') WHERE id = '" . $row['id'] . "';" );
$db_selected->mysql_query($in)
  }
. "
}
</script>";

echo "<table width= 400 border=1><form action=\"DoTheThing()\" method=\"POST\">
     <tr>
       <th width='175' scope='col'>Name</th>
       <th width='150' scope='col'>Phone</th>
       <th width='125' scope='col'>Exam Date</th>
     </tr>";
while($row = mysql_fetch_array($result))
  { 
       echo "<tr>";
       echo "<td><center>"  . $row['f_name'] . "&nbsp;". $row['l_name']. "</center></td>";
       echo "<td><center>". $row['phone'] ."</center></td>";
       echo "<td><center>". $row['exam_date'] ."<input type=\"checkbox\" name=\"" . $row['id'] . "\" value=\"yes\"></center></td>";
     echo "</tr>";
     $student_id[$table_count] = $row['id']
     $table_count = +1;

  }
   echo "</form></table>
   <br/><br/><input style = \"height:35px;width:95px;font-size:20px;\" type=\"submit\" name=\"submit\" value=\"Submit\">
   ";

 mysql_close($link);
?>

编辑:对不起,意识到我从来没有发过我的问题

当我尝试将“yes”或“NULL”值插入mySQL时,它停止工作。我对mySQL很新,并且想知道我的任何陈述是否错误。

1 个答案:

答案 0 :(得分:1)

这应该是一个非常大的帮助,基本上是一个shell。剩下要做的就是将数据插入SQL服务器。

我对代码进行了评论,因此您可以看到发生了什么,何时以及在哪里。

此外,你应该放弃远离mysql_ *,因为它已被弃用。我的例子是使用mysqli_ *制作的。另一个选择是PDO。

    <?php

    //Set variables (Can be done on another file for more security)
    $Host = "Localhost";
    $User = "admin";
    $Pass = "password";
    $DB = "Students";

    //Connect to the databse using mysqli. NOT MYSQL WHICH IS DEPRECATED
    $con = mysqli_connect($Host, $User, $Pass, $DB);

    // Check connection
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    //if submitted
    if(isSet($_POST['submit'])) {

        //submit data using mysqli_query and then reload the page.


        //clear POST variables before you reload the page.
        unset($_POST);

       //reload the page
       echo "<META http-equiv='refresh' content='0'>";

    } else { //if not submitted

    //define search variable, and query it.
    $db_selected = mysqli_query($con, "SELECT id,f_name,l_name,phone,exam_date FROM Student_data");

    //Start table
        echo "<form method='POST'>";
        echo "  <table>";
        echo "      <tr>";
        echo "          <th>Name</th>";
        echo "          <th>Phone</th>";
        echo "          <th>Exam Date</th>";
        echo "          <th></th>";
        echo "      </tr>";

    //Loop through sql database
    while($row = mysqli_fetch_array($check)) {
        echo "      <tr>";
        echo "          <td>".$row['f_name']."&nbsp;".$row['l_name']."</td>";
        echo "          <td>".$row['phone']."</td>";
        echo "          <td>".$row['exam_date']."</td>";
        echo "          <td><input type='checkbox' name='checkbox['".$row['id']."']' value='1'></td>";
        echo "      </tr>";
    }

    //end table
        echo "  </table>";
        echo "<input type='submit' value='Submit' name='submit'>";
        echo "</form>";

    }

?>