我所做的是,当我输入一个数量为5的数据时,例如将其命名为“ ABC-1000”,结果是ABC-1001 … ABC-1005,现在我的目标是当我记录另一组数据时并输入ABC-1005中应该开始的任何数量,这对我来说有点棘手。我尝试在使用子查询来获得最大结果的地方进行查询,但是它仍然存在一些错误
这是我的HTML代码
<div class="form-group"> <label> Tools Name: </label> <select class="form-control selectpicker" name="tools_name" placeholder="Enter Tools Name" data- live-search="true" onchange="ToolsChange(this)"> <option value="" selected>Select Tools Name</option> <?php $result = mysqli_query($con, "CALL GetInformationUsingToolSpec()"); $con->next_result(); if(mysqli_num_rows($result)>0) { while($row=mysqli_fetch_assoc($result)) { echo '<option value="'.$row['tools_name'].'">' . $row['tools_name'].'</option>'; } } ?> </select> </div>
这是我的ajax调用中的查询。
<?php include("../include/connect.php"); if(isset($_POST['tools_id'])){ $ID = $_POST['tools_id']; $query = "SELECT tools_masterlist.control_no, tools_masterlist.tools_id, tools_masterlist.tools_name, tools_spec.model_num,tools_spec.model_num_val FROM tools_spec LEFT JOIN tools_masterlist ON tools_spec.tools_id = tools_masterlist.tools_id WHERE tools_name = '$ID'"; // $result=mysqli_query($con, "CALL GetAjaxForToolsRegistration('$ID')"); $con->next_result(); $result=mysqli_query($con, $query); if(mysqli_num_rows($result)>0) { while($row=mysqli_fetch_assoc($result)) { echo $row['control_no'] . " " . $row['model_num']; } } } ?>
首先,我想将您的意图用于SQL注入,因为您的用户可以在输入字段中输入任何内容。您是在手动构建查询,而不是使用参数化的预处理语句。您应该知道如何使用 htmlspecialchars() 函数。
所以 .......
$ID = $_POST['tools_id'];
应该转换为
$ID = htmlspecialchars($_POST['tools_id'], ENT_QUOTES);
您应该在调用存储过程之后调用 next_result() 函数。
另外,您应该添加一个单独的列来存储数值,而不是与其他合并或串联。