【发布时间】:2011-01-09 21:57:57
【问题描述】:
我想从数据库记录中查询单个帖子(标题、正文、日期)
例如我有我的查询..
$query = 'SELECT * FROM posts WHERE id=$post_id';
从该查询中,我如何在没有 while 或 foreach 循环的情况下回显标题?
【问题讨论】:
-
如果只返回一行,有什么关系?
-
你真的需要一切吗? (*)?
我想从数据库记录中查询单个帖子(标题、正文、日期)
例如我有我的查询..
$query = 'SELECT * FROM posts WHERE id=$post_id';
从该查询中,我如何在没有 while 或 foreach 循环的情况下回显标题?
【问题讨论】:
您可以只调用 mysql_fetch_assoc() (或任何类似函数)之一。像这样:
$sql = "SELECT * FROM table";
$row = mysql_fetch_assoc( mysql_query($sql) );
echo $row['title'];
这是使用 MySQL 函数执行此操作的最简单和最易读的方法。
【讨论】:
你可以使用mysql_result:
$sql = 'SELECT * FROM posts WHERE id=$post_id';
$query = mysql_query($sql);
echo mysql_result($query, 0, 'title');
这将在第一 (0) 行回显字段 title。
【讨论】:
您可以在不使用 while 循环的情况下使用此代码进行选择查询:
$conn 是一个数据库连接
$sql = "SELECT * FROM teacher_details";
$row = mysqli_fetch_assoc($conn->query($sql) );
$teacher_name = $row['teacher_name'];
【讨论】:
当您使用像 mysql_fetch_array 这样的函数时,您没有义务进行迭代。甚至,当你这样做时,你只是得到下一行可用的结果,直到它返回 null:
$query = mysql_query("SELECT * FROM table");
while($row = mysql_fetch_array($query)) {
var_dump($row);
}
因此,对查询中的每一行执行此操作在技术上是相同的:
$query = mysql_query("SELECT * FROM table");
$row = mysql_fetch_array($query)
var_dump($row);
// Array()
$row = mysql_fetch_array($query)
var_dump($row);
// Array()
$row = mysql_fetch_array($query)
var_dump($row);
// null < the "while" statment will stop here
然后,您可以拨打mysql_fetch_array 一次就可以了。
祝你好运!
【讨论】: