2017-10-20 63 views
0

我试图从数据库中返回一个名称,但请求我做的名字在数据库回报每一位。PHP返回名字

的PHP与请求我需要执行:

<?php 
$servername = "localhost"; 
$username = "********"; 
$password = "********"; 
$dbname = "dbtest"; 

$FNAME = (isset($_POST['FNAME']) ? $_POST['FNAME'] :''); 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

$sql = "SELECT FNAME,LNAME FROM `accounts` where FNAME = `FNAME`"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    //output data of each row 
    while ($row = $result->fetch_assoc()) { 
     printf ("%s, %s<br>", $row["LNAME"], $row["FNAME"]); 
    } 
} 

// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 
echo "</br>Connected successfully"; 
?> 

与形式的HTML:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
    <form action="php_dbtest.php" method="POST" id="FNAME"> 
    Search: <input type="text" name="name" /><br /> 
    <input type="submit" name="find" value="Search" id="add" /> 
    </form> 
</body> 
</html> 
+0

'“SELECT FNAME,LNAME从那里FNAME =‘FNAME’LIMIT 0,1‘账户’”'将在你请求返回表中的第一个名字,如果你有一个列表,这意味着有多个具有相同名称的条目。 – pirs

+0

你也应该检查POST的值。 – pirs

回答

-1

您需要更改在enter image description here更改查询报价类型,因为您使用落后的报价计算为where FNAME = FNAME这始终是真,将返回所有的名字。还需要在查询中使用一个变量,如where FNAME = '$FNAME'因为'FNAME'只会查找名为'FNAME'一个名字。

此外,表单将发布您的输入为name,并且form元素上的id="FNAME"未被考虑。所以,你需要改变你的形式是这样的:

<form action="php_dbtest.php" method="POST"> 
    Search: <input type="text" name="FNAME" /><br /> 
    <input type="submit" name="find" value="Search" id="add" /> 
    </form> 
0
$sql = "SELECT FNAME,LNAME FROM `accounts` where FNAME = '$FNAME'"; 

您需要$FNAME可变检查查询。

而你需要检查if(isset($_POST['find']){ put your query in here }

因为你的提交按钮点击无动作在你的代码的工作了。您必须检查是否点击提交按钮。如果点击,您可以使用其他代码和查询。希望这会帮助你。

+0

如果这项工作投票并批准我的答案。 –

+0

它不适合我 – CoryT87

0

你不需要HTML声明,php文件也。你可以用它<?php ?>工作,并保存你的PHP代码