PHP MySQL查询结果变成一个变量然后回显($ variable)

时间:2014-06-10 14:49:41

标签: php html mysql

希望检查表(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')";
?>

7 个答案:

答案 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,因此当您添加新数据集时,此行将在数据库中自动完成。

More information here

答案 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是主键吗?如果是,您可以将该列设置为自动增量。你可以试试这个

https://php.net/manual/en/function.mysql-result.php