通过HTML按钮显示SQL查询

问题描述:

我很抱歉如果这是多余的,我搜索了相关的主题,但是在任何一个主题中都找不到答案。我正在寻找对我创建的数据库运行SQL查询并在HTML按钮单击上显示结果。我已经开始了一个简单的场景,我只是从我的“客户”表中选择所有实体。我创建了下面的PHP代码来实现:通过HTML按钮显示SQL查询

<?php 
define('DB_NAME', 'mis630db'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', ''); 
define('DB_HOST', 'localhost'); 

$link = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
     die('Could not connect: ' . mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) { 
     die('Can\'t use ' . DB_NAME . ': ' . mysql_error()); 
} 

$resultset = mysql_query("SELECT * FROM Customer"); 
if($resultset->num_rows !=0) { 
    while($rows = $resultset->fetch_assoc()) 
    { 
     $idCustomer = $rows['idCustomer']; 
     $CustomerFName = $rows['CustomerFName']; 
     $CustomerLName = $rows['CustomerLName']; 
     $CustomerAddress = $rows['CustomerAddress']; 
     $CustomerPhone = $rows['CustomerPhone']; 
     $CustomerEmail = $rows['CustomerEmail']; 

     echo"<p> Customer ID: $idCustomer<br />Customer Name: $CustomerFName $CustomerLName<br />Customer Address: $CustomerAddress<br />Customer Phone: $CustomerPhone<br />Customer Email: $CustomerEmail</p>"; 
    } 
} 
else{ 
     echo "No results."; 
} 
?> 

当我测试,我收到此错误:

“ 注意:试图让非对象的属性在C:\ XAMPP \ htdocs中\ report.php 20行 没有结果。“

我不知道为什么它应该返回多个结果。一旦整理出来我想这个连接到HTML按钮显示的结果,在那里我将有我创建了运行各种SQL查询几个按钮:

<html> 
<head> 
    <title> Reports</title> 
</head> 
<body> 
<div class="header"> 
    <h1>Reports</h1> 
</div> 
<form action="report.php" method="post" /> 
    <table> 
    <tr> 
     <td><input type="submit" value="Customers" /><td> 
    </tr> 
</form> 
</body> 
</html> 

任何有识之士将不胜感激。

谢谢。

+0

'var_dump($ resultset);'给你什么?此外,如果刚开始你应该使用PDO或mysqli。 – chris85

+0

不要忘记选择哪个答案是正确的(如果其中一个答案是正确的),以帮助其他有类似问题的用户。如果没有答案是正确的,请告诉我们你是如何解决它的。 –

看起来像SQL查询SELECT * FROM Customer失败,因此$resultset不是一个对象 - 它可能是null

SQL表,列等区分大小写。您确定您的餐桌名称为Customer,而不是customer

请注意,扩展名mysql自PHP 5.5开始已被弃用,并已在PHP 7中删除。您应该使用mysqliPDO-MySQL来代替。

+0

我不知道它们区分大小写,而表格实际上是小写字母“customer”,所以我修正了这个问题。谢谢!这表示它似乎没有解决我的问题。 – NinePoundHammer

改变这一行:

if($resultset->num_rows !=0) { 

if (mysql_num_rows($resultset) != 0) { 

因为我不认为你可以访问一个从MySQL结果对象调用num_rows直接方法。

而改变这一行:

while($rows = $resultset->fetch_assoc()) 

while($rows = mysql_fetch_assoc($resultset)) 

因为我不认为你可以访问一个从MySQL结果对象调用fetch_assoc直接方法。

并且结束了另一件事。 Mysql_函数已弃用我建议您开始使用mysqli_函数。 http://php.net/manual/en/book.mysqli.php

+0

感谢您的反馈,我实际上一直在使用mysqli_函数,但在教程后改变了这些,并且从未调整过它们。我一定会继续向前发展。我更新了引用的代码,它看起来像是让我朝着正确的方向发展。我现在得到这个错误“ 警告:mysqli_query()需要至少2个参数,第1行给出的C:\ xampp \ htdocs \ report.php 警告:mysql_num_rows()期望参数1是资源, null在第20行的C:\ xampp \ htdocs \ report.php中给出了 没有结果。“我很困惑,因为表格有20个单独的条目和5个字段。 – NinePoundHammer

+0

嗨,好吧,如果你已经切换到mysqli_函数,那么你必须阅读文档。因为mysqli_query期望第一个参数是mysqli链接。所以你必须输入mysqli_query($ link,“SELECT * FROM Customer”);但是你必须确保你没有任何mysql_函数,只有mysqli_ –