【问题标题】:SELECT with WHERE condition using html search and php post. Returns blank table使用 html 搜索和 php post 选择 WHERE 条件。返回空白表
【发布时间】:2012-08-03 18:35:30
【问题描述】:

任务非常简单。使用 html 表单,将姓氏发布到连接到 myAdmin 数据库的 php 代码中,并从 html 搜索返回与发布的姓氏表单相关联的名字和姓氏。 我已经仔细检查了我的数据库以及我正在使用的连接 php。信息在数据库中,我的 connection.php 文件对于访问和操作同一数据库的其他文件来说效果很好。 无论如何,这是我的 html 代码:

<html>
<body>
<form action="where.php" method="post">
Lastname: <input type="text" name="lastname" />
<input type="submit" name="search" />
</form>
</body>
</html>

还有我的 php 代码:

<?php
include('connection.php');

$sql = "SECLECT * FROM PERSONS WHERE LastName ='$_POST[lastname]'";
$result = mysql_query($sql);
?>

<table border='1'>
<tr>
    <td>Firstname</td>
    <td>Lastname</td>
</tr>

<?php
while($row = mysql_fetch_array($result))
{
?>
  <tr>
  <td><?php echo $row['FirstName'] ?></td>
  <td><?php echo $row['LastName'] ?></td>
  </tr>

<?php
}
?>
</table>

<?php
mysql_close($con);
?>

有人知道为什么当我搜索有效的姓氏时,我会得到一个只有标题但没有值的表格吗?

【问题讨论】:

  • 您应该停止使用mysql_* 函数。它们正在被弃用。请改用PDO(PHP 5.1 起支持)或mysqli(PHP 4.1 起支持)。如果您不确定要使用哪一个,read this SO article.
  • 您遇到了什么错误?尝试回应您的输入。
  • 我没有收到错误,我只是得到了一个带有名字和姓氏标题的表格,里面没有实际值。我必须使用 mysql 函数 b/c 这是一门课,这是我的教授教我们的:/
  • 所以知道 PDO 或 mysqli 是什么,因为我们一直在使用 mysql
  • 在你的 $sql 之前尝试 echo 并复制查询并让它在你的 myadmin 数据库中执行: echo $sql = "SECLECT * FROM PERSONS WHERE LastName ='$_POST[lastname]'";跨度>

标签: php mysql select phpmyadmin where


【解决方案1】:

您在查询中添加了“SECLECT”。我是SELECT

【讨论】:

  • 是的,我的脚本有时会出现阅读障碍,哈哈,但我解决了这个问题,它仍然返回一个空白表
  • $_POST[lastname] -> $_POST["lastname"] 也许吧?
  • 试过了,但它只是给我一个服务器错误而不是返回任何东西
  • 在我看来,更好的方法是:$sql = "SELECT * FROM PERSONS WHERE LastName ='".$_POST['lastname']."';
  • 这真的很奇怪。当我按照您的建议将其放入“”时,出现服务器错误。我去掉了引号,现在我的脚本运行良好并返回了一个填写好的表格!这可能是一堆小东西的组合。谢谢帮助!
【解决方案2】:

尝试将您的查询更改为 -

$sql = "SELECT * FROM PERSONS WHERE LastName like '%$_POST[lastname]%'";

如果它显示一些结果,那么您可能在完全匹配的情况下遇到问题

【讨论】:

    【解决方案3】:

    试试这个:

    $sql = ("SELECT * FROM PERSONS WHERE LastName ='".$_POST['lastname']."'");
    

    也看看这个。我知道这是一个 android/json 教程,但如果您使用 print 函数,请进行更多调整并将您的查询更改为没有变量的内容。

    $sql = ("SELECT * FROM PERSONS WHERE LastName ='Doe'");
    

    然后您可以通过导航到此“测试”页面进行测试。结果将显示在屏幕上。这可能有助于查明您的问题

    【讨论】:

    • 原来我的主要问题是阅读障碍,并且不知何故在过去的一个小时里不断忽略 SECLECT 而不是 SELECT :( 我觉得很愚蠢
    【解决方案4】:
     <td><?php echo $row['FirstName'] ?></td>
      <td><?php echo $row['LastName'] ?></td> 
    

    两者都需要;的(分号) 例如:

    <td><?php echo $row['FirstName']; ?></td>
    <td><?php echo $row['LastName']; ?></td>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多