如何从html转换为php

时间:2019-04-02 14:51:20

标签: php html5

我必须生成下一个可用的ID,该ID是表中的主键,但为此,我必须在输入标签的value属性内将html转换为PHP。

此操作无效,因为PHP文件介于两者之间,并且不允许加载整个页面。

我尝试了以下代码:

<input type="number" id="id" class="textbox" name="s_id" onkeyup="showAvailableId(this.value)" min="10000" max="999999" 
value ="<?php $mysqli = new mysqli('localhost', 'root', '', 'project_db');
   if($mysqli->connect_error) {
        exit('Could not connect');
       }
   $sql = 'SELECT student_id from students WHERE student_id = 11120';
   $stmt->execute();
   $stmt->store_result();
   $stmt->bind_result($result);          
   $stmt->fetch();
   $stmt->close();

   if ($result != NULL){
          echo ++$result;
   }?>" required><label id="demo"></label>

2 个答案:

答案 0 :(得分:2)

我不认为您想这样做,如果100个人同时运行此代码,他们都获得相同的下一个可用ID,但实际上只有1个人可以执行任何操作,因为这是一个主键,因此谁先提交表单,谁就得到了id,但其他所有人都返回false,他们陷入了一个循环,直到足够多的人放弃或等待足够长的时间来提交表单。

您应该重新考虑您要实现的目标

答案 1 :(得分:0)

我不太了解需求,我将使用mysql的自动增量功能,如果在此代码段之前有插入,则将使用“选择最后一个ID”。 但是您必须谨慎使用这种生成ID的方式。 您必须提交不带ID的表单,并在MySQL中生成ID

    <?php 
  $nextID = array("student_id"=>0);

  $mysqli = new mysqli('localhost', 'root', '', 'project_db'); 

  /* check connection */
  if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
  }

  $sql = 'SELECT MAX(student_id) + 1 AS student_id from students';  
  if ($result = $mysqli->query($sql)) {
    while ($row = $result->fetch_row()) {
        $nextID = $row[0]['student_id'];
    }  
    $result->close();
  }
  $mysqli->close();

?>

<input type="number" id="id" class="textbox" name="s_id" onkeyup="showAvailableId(this.value)" min="10000" max="999999" 
value="<?php echo $result['student_id']; ?>" required><label id="demo"></label>