我希望你能帮助我。我的数据库中有一个名为lno的列,它是许可证号的快捷方式。每次将新许可证添加到我的数据库时,该数字基本上会增加1。为了让自己的生活更轻松我试图创建一个按钮,生成下一个可用的许可证号码,当然这将是现有的最高版本+1。这是我的PHP代码:
if($nextlic){
global $lno,$rec;
$query= mysql_query ( "SELECT MAX(lno)+1 FROM mlicense_table ");
$rec = mysql_fetch_array($query);
$lno = $rec['lno'];//serial number
mysql_free_result($query);
$message="Successful";
}
和我的按钮的简单html:
<td align="center"><input type="submit" name="nextlic" value="Next available
license" /></td>
这两个不断出现并且未生成数字
警告:mysql_fetch_array()要求参数1为资源,在第431行的C:\ xampp \ htdocs \ license_db \ miramo2.php中给出布尔值
警告:mysql_free_result()要求参数1为资源,布尔值在第433行的C:\ xampp \ htdocs \ license_db \ miramo2.php中给出
任何人都可以就我做错了什么给我建议吗?我还是那么新鲜。感谢
答案 0 :(得分:2)
第一个错误是由查询中的错误引起的。也许是不存在的列或表。使用var_dump(mysql_error())
找出正在发生的事情。
然而,一旦你开始工作,你将遇到其他问题。你的数组看起来像这样:
array(1) {
["MAX(lno)+1"] => 12345
}
这意味着你必须引用$lno = $rec['MAX(lno)+1'];
。
这令人头疼,所以只是让它变得更加轻松:
$rec = mysql_fetch_row($query);
$lno = $rec[0];
编辑:
每次将新许可证添加到我的数据库时,该数字基本上会增加一个
那么将lno
设为AUTO_INCREMENT
会出现什么问题?
答案 1 :(得分:1)
您也可以使用 $ query = mysql_query(&#34; SELECT MAX(lno)+1 as lno FROM mlicenses_table&#34;);
代替 $ query = mysql_query(&#34; SELECT MAX(lno)+1 FROM mlicenses_table&#34;);答案 2 :(得分:0)
所以这是一件现在有效的漂亮作品
if($nextlic){
global $lno,$rec;
$query= mysql_query ( "SELECT MAX(lno)+1 FROM mlicenses_table ");
var_dump(mysql_error());
$rec = mysql_fetch_row($query);
$lno = $rec[0];
mysql_free_result($query);
$message="Successful";
}
谢谢大家