希望检查表(cat_id
)中的最后一个id(category
)并将该结果插入到我可以回显的变量中。
我的目的是创建一个最后cat_id
+1的记录,只要它当然不存在。
我认为我应该做的是这样的事情;
<?php
require "mydbdetails.php";
$query="SELECT cat_id FROM category ORDER BY cat_id DESC LIMIT 1";
$result=mysql_query($query);
echo ($result);
?>
但是哦,不,没有那么简单。 echo
只是检查我有正确的结果(在phpmyadmin中它返回所需的数字)
然后我希望能够通过简单的html表单询问用户是否想通过文本框添加类别:
addrec.html
:
<form action="addrec.php" method="post">
Category: <input type="text" name="category">
<input type="submit">
</form>
addrec.php
:
<?php
require "mydbdetails.php";
$new_id = $result + 1;
$query="INSERT INTO category VALUES ($new_id, 'Fruits')";
?>
答案 0 :(得分:0)
echo $ result [0] ['cat_id']我认为
答案 1 :(得分:0)
请考虑使用PDO query语法而不是旧的已弃用的mysql_query。
如果您建立PDO连接并将其存储在$conn
对象中(非常类似于mydbdetails.php
中已有的对象),请执行以下操作:
$query=$conn->query("SELECT cat_id FROM category ORDER BY cat_id DESC LIMIT 1");
$result=$query->fetchAll(PDO::FETCH_COLUMN,0);
echo ($result[0]);
答案 2 :(得分:0)
首先,您应该使用mysqli
而不是mysql
,因为mysql
已弃用,将在PHP 5.5中删除。
当然PDO会更好,但我认为你是如此新鲜,以至于它现在有点太多了。
基本上,您正在触发查询,但是您没有告诉查询到什么连接。你这样做了:
$result=mysql_query($query);
应该是什么
$result=mysqli_query($link, $query);
其中$link
是您在mydbdetails.php
文件中设置数据库连接的变量。
如果没有连接,Query就不知道从哪里获取数据。
但是如果OOP对你来说并不陌生,那么@amenadiel的回答会更好,因为它是一种OOP方式。
此外,您无需$new_id = $result + 1;
行。
ID几乎总是设置为数据库中的Auto Increament
,因此当您添加新数据集时,此行将在数据库中自动完成。
答案 3 :(得分:0)
希望这有帮助
<?php
require "mydbdetails.php";
$query="SELECT cat_id FROM category ORDER BY cat_id DESC LIMIT 1";
$result=mysql_query($query);
$i;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
var_dump($row); /* dump rows*/
/* or add to array to use later */
$results[$i] = $row; // add to array
$i++; // +1 the counter to increment the array
}
?>
答案 4 :(得分:0)
你必须首先知道作为开发人员,将来完全弃用php中的mysql扩展,因为它已经在较新的php版本中。因此,使用Mysqli扩展和PDO作为数据库的卫生和安全代码。
问题如下: - 尝试以下方法;
// Make a MySQL Connection
$query = "SELECT cat_id FROM category ORDER BY cat_id DESC LIMIT 1";
//assign result to a variable
$result = mysql_query($query) or die(mysql_error());
//fetch result as an associative array
$row = mysql_fetch_array($result) or die(mysql_error());
echo $row['cat_id'];
您可以将其指定为可变$row['cat_id'] = $catId;
并使用它。
答案 5 :(得分:0)
尝试在mysqli_ 或pdo函数中编写脚本。在mysql _ 函数中使用(不推荐)
<?php
require "mydbdetails.php";
$query="SELECT cat_id FROM category ORDER BY cat_id DESC LIMIT 1";
$result=mysql_query($query);
if (mysql_num_rows($result) > 0) {
$row = mysql_fetch_array($result);
$cat_id = $row['cat_id'] + 1;
} else {
$cat_id = 1;
}
?>
答案 6 :(得分:-1)
cat_is是主键吗?如果是,您可以将该列设置为自动增量。你可以试试这个