按id选择mysql php

按id选择mysql php,php,mysql,Php,Mysql,我想按id选择行并显示它。我的表名为text 这是桌子上的东西 BookID Type init Title Author PublisherName CopyrightYeare 我想这样称呼他们 text id 10 通过这个动作,我得到了第10行,我得到了所有的信息 BookID, Title, Author, PublisherName, CopyrightYeare 如果我质疑这一点 text id 14 通过这个动作,我得到了第14行,我再次得到了所有的信息 <?p

我想按id选择行并显示它。我的表名为text 这是桌子上的东西

BookID Type init 
Title
Author 
PublisherName
CopyrightYeare
我想这样称呼他们

text id 10
通过这个动作,我得到了第10行,我得到了所有的信息

BookID, Title, Author, PublisherName, CopyrightYeare
如果我质疑这一点

text id 14
通过这个动作,我得到了第14行,我再次得到了所有的信息

<?php
function text($id){

$query = "SELECT * FROM text WHERE BookID =" .$id ;  

$result = mysql_query($query) or die(mysql_error()); 


$row = mysql_fetch_assoc($result); 
}

?>

<?php

echo text (14) ;
?>

您正在调用名为displaytext的函数,但该函数名为text


函数文本不返回值,因此回显将无需打印。

您有一些问题

您正在使用过时的mysql_*函数。考虑升级到 您容易受到SQL注入攻击。再一次,看看mysqli,了解如何正确使用准备好的语句。 您的函数名为text,您正在调用displaytext 您的函数没有返回结果。在函数末尾,添加return$row;为了得到结果
很抱歉,回复太晚了,我刚刚收到了另一封信,这是一个工作代码。 问题wre

您没有从函数中返回任何内容 您没有逃逸$id,这将使其易于SQL注入 前面提到的函数名, 我希望这能帮你解决问题。参见下面的代码

<?php

function text($id){
$id = mysql_real_escape_string($id);
$query = "SELECT * FROM text WHERE BookID = $id";  
$row = mysql_fetch_assoc(mysql_query($query));
return $row;
}
print_r(text('1'));
?>

那么,这里的问题是什么呢?您的函数名与您的函数调用名不匹配您正在调用displaytext,但您的函数定义是文本,这是不同的,它应该是匹配的。您的代码有很多错误。我建议您学习一个不错的PHP/MySQL教程,阅读编程基础知识,然后再试一次。如果您仍然无法让它工作,请向我们说明问题、您尝试了什么以及它是如何失败的。您的函数已声明为text,然后您调用的是displaytext,这是一个完全不同的函数,函数text根本没有返回值,所以不要期望值,在您当前的代码中,根本没有与mysql的连接