0

很抱歉浪费您的时间,但我正在尝试将数据库表中的数据存储到数组中并显示在表中。我不断收到同样的错误。我已经更改了"'s 并删除了变量。我仍然得到

警告:mysql_fetch_array():提供的参数不是第 41 行 /home/a3656574/public_html/Home.php 中的有效 MySQL 结果资源

<?php
if ($_POST['search_projects']){

    $con= mysql_connect("host","username","password","a3656574_opacmin") or die ('Error: ' . mysql_error()); 
    $sql= "SELECT * FROM searchedWords WHERE accessDate LIKE '%" . $_POST['search'] . "%' ORDER BY accessDate DESC";
    $result= mysql_query($sql); 

    while($row= mysql_fetch_array($result))
    { 
        $Date =$row['AccessDate']; 
        $Key=$row['keyWord']; 
        $Count=$row['count']; 

        echo "<tr>"; 
        echo "<td>" .$Date ."</td> ". " <td>" . $Key.  " </td>" . " <td>" . $Count.  " </td>"; 
        echo "</tr>";  

    }
}
?>

我不知道如何解决这个问题。有人可以帮忙吗?

4

4 回答 4

3

Mysql 连接函数接收 3 个参数(mysql_server、mysql_user、mysql_password)

并且您应该使用 mysql_select_db(database, connection_resource_id); 选择数据库

还要确保你的凭证

尝试:

$con= mysql_connect("host","username","password");
mysql_select_db("a3656574_opacmin",$con);
于 2013-09-23T04:24:21.617 回答
0

请检查您的数据库凭据,然后尝试:

<?php
  if ($_POST['search_projects'] && !empty($_POST['search']))
  {
    $con= mysql_connect("host.com","opacmin","password","opacmin") or die ('Error: ' . mysql_error()); 

    $sql= "SELECT * FROM searchedWords WHERE accessDate LIKE '%" . $_POST['search'] . "%' ORDER BY accessDate DESC";
    $result= mysql_query($sql); 

    while($row= mysql_fetch_array($result))
    { 
      $Date =$row['AccessDate']; 
      $Key=$row['keyWord']; 
      $Count=$row['count']; 

      echo "<tr>"; 
      echo "<td>" .$Date ."</td> ". " <td>" . $Key.  " </td>" . " <td>" . $Count.  " </td>"; 
      echo "</tr>";  
    }
  }
?>
于 2013-09-23T04:22:28.417 回答
0

0) 首先,我会敦促您开始使用 PDO 而不是 mysql_connect (和朋友),因为后者已被弃用。这里有帮助您开始迁移的教程。

1)我不确定您期望 mysql_connect() 的第四个参数为您做什么。根据 PHP 文档,这应该是一个布尔值:

mysql_connect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false...

2) 在继续 mysql_fetch_array() 之前检查错误情况:

$sql= "SELECT * FROM searchedWords WHERE accessDate LIKE '%" . $_POST['search'] . "%' ORDER BY accessDate DESC";
$result= mysql_query($sql); 

if (! $result) {
    // use something like mysql_error() to find out why it failed, log it, etc.
} else {
    while( ... ) { ... }
}
于 2013-09-23T04:26:28.233 回答
0

首先,我想建议您开始使用“mysqli”。你可以在这里寻找这个

然后您应该首先检查您的凭据是否正确。如果这是正确的,请到 phpmyadmin 并尝试您的查询,看看它是否工作正常。也许你错过了一些东西。祝你好运。

于 2013-09-23T04:29:39.030 回答