使用PHP显示MySQL数据

时间:2013-12-18 11:15:08

标签: php mysql mysqli

我最近开始编程以获得乐趣,如果对此问题的解决方案很简单,那就很抱歉。

我有一个mysql表,其中存储了客户销售票据。我想要做的就是让你可以优化下拉列表中显示的票证。我可以从mysql表中填充下拉列表,但是当我单击“提交”以过滤掉并按所选客户名称显示时。我收到以下错误: -

警告:mysqli_fetch_array()要求参数1为mysqli_result,第16行的C:\ xampp \ htdocs \ result.php中给出布尔值

以下是我使用的两个PHP页面。第一页是填充下拉列表的位置。

<?php
//db connection 
mysql_connect("********","********","********");
mysql_select_db("salesys");

//query
$sql=mysql_query("SELECT DISTINCT CustomerName FROM ticket ORDER BY CustomerName ASC");
if(mysql_num_rows($sql)){

$select= '<select name="select">';  
while($rs=mysql_fetch_array($sql)){
      $select.='<option value="'.$rs['CustomerName'].'">'.$rs['CustomerName'].'</option>';
  }
}

$select.='</select>';

?>  

<form name="input" action="result.php" method="POST">
<?php echo $select; ?>
<input type="submit" value="Submit">
</form>

以下是第二页。

<?php
$customerName = $_POST['select'];
echo "Showing Results For: ", $customerName;
echo "<BR>";
echo "<BR>";

$con=mysqli_connect("localhost","root","********","********");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM ticket WHERE CustomerName = $customerName");

while($row = mysqli_fetch_array($result))
  {
  echo $row['TicketID'] . " | " . $row['CustomerName'] . " | " . $row['BriefDesc'];
  echo "<br>";
    echo "<br>";
  }

mysqli_close($con);
?>

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

如果您最近开始编程,您必须先学习如何编程。在您开始使用任何特定语言或API之前。

基本程序员的能力之一是使用谷歌的技能。这并不难:只需将您拥有的错误消息(不仅是这一个,而是每个错误)复制并粘贴到谷歌搜索栏中。你会发现数百人已经面临同样的问题,并以某种方式解决了他们。而且很可能你会找到答案。它非常简单但有用,但非常必要

顺便说一下,评论中唯一正确的答案是:使用准备好的陈述

答案 1 :(得分:0)

您必须在while($row = mysqli_fetch_array($result))之前检查查询是否正确,以帮助您调试代码。

您可以检查$result是否有效。请参阅下面的简单代码(仅用于调试目的,因为在生产中显示mysql错误不安全)

在你的情况下,错误可能是$customerName是一个字符串,并且必须用引号括起来

$customerName = '"'.mysqli_escape_string($con, $customerName).'"';
$result = mysqli_query($con, "SELECT * FROM ticket WHERE CustomerName = $customerName");
if (!$result)
{
  echo mysqli_error(); 
}
在生产中

编辑,除非验证了某些必要条件,否则不应显示错误。如果您的站点具有登录系统,则只有在您(而非其他任何人)登录时才能显示错误。