2013-09-23 53 views
0

对不起,浪费你的时间,但我试图将数据从数据库表存储到数组中并显示在表中。我不断收到相同的错误。我更改了"'并删除了变量。不过我得到对mysql_fetch_array()的警告

警告:mysql_fetch_array():提供的参数不是在/home/a3656574/public_html/Home.php一个有效的MySQL结果资源上线41

<?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>"; 

    } 
} 
?> 

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

+3

请确保这些不是您的真实凭据 –

+0

请确保您的查询是正确的,$ sql =“SELECT * FROM searchingWords where accessDate LIKE'%”。 $ _POST ['search']。 “%'ORDER BY accessDate DESC”; 只是打印它并直接在控制台上运行 –

+3

你应该使用'mysqli_ *'函数,'mysql_ *'functins从MySQL 5.5弃用如果我没有弄错。 在任何公共论坛中发布时,从您的mysql控制台删除实际凭据。 你必须选择一个数据库; 'mysql_query'之前选择了一个吗? – Maz

回答

3

MySQL连接功能,接收3个参数(mysql_server,mysql_user,mysql_password)

,你应该使用mysql_select_db选择数据库(数据库,connection_resource_id) ;

另外,还要确保您的凭证

尝试:

$con= mysql_connect("host","username","password"); 
mysql_select_db("a3656574_opacmin",$con); 
+0

好的调用,mysql_select_db()是一个非常好的猜测,他对第四个参数的期望是什么。 – TML

+0

谢谢你这个凡人世界的好人。 –

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>"; 
    } 
    } 
?> 
+1

也许删除OP错误地提供的凭据? – andrewb

+0

谢谢你的回应。 –

0

0)首先,我会劝你开始使用PDO来代替的mysql_connect(朋友),因为后者已被弃用。有教程可以帮助您在此迁移中开始here

1)我不确定你期待mysql_connect()的第4个参数为你做什么。每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(...) { ... } 
} 
+0

感谢您的快速回复。我终于明白了。亲自找人帮助我。我也读过关于PDO的知识,而且mysql_fetch_array()和类似的函数很快就会被移除。我现在开始调整。无论如何,再次感谢你。 –

0

首先我想向你推荐开始使用“mysqli”。你可以找这个here

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

相关问题