在线运行页面时出现mysql_fetch_array()错误

时间:2014-10-12 09:50:33

标签: php mysql

当我使用IIS7在本地运行我的网站时它运行正常,但现在我已将其上传到webhost我从页面的菜单部分得到此错误。

警告:mysql_fetch_array():提供的参数不是第8行/srv/disk13/1572246/www/iansdrivingschool.atspace.cc/includes/menulearner.php中的有效MySQL结果资源

<?php
    include("includes/connect.php"); 

   // get value of id that sent from address bar
   $id=$_GET['id'];

   $sql="SELECT * FROM 'apply' WHERE id =".$id;
   $result = mysql_query($sql) or die(mysql_error()); 
   while($row = mysql_fetch_array($result)){
?>

<!--navigation menu-->
<div id="navcontainer">
    <ul id="navlist">
        <li><a href="prices.php?id=<?php echo $row['id']; ?>">Home</a></li>
        <li><a href="profile.php?id=<?php echo $row['id']; ?>">Profile</a></li>
        <li><a href="profile_update.php?id=<?php echo $row['id']; ?>">Edit Profile</a> </li>
        <li><a href="includes/logout-activation.php">Log Out</a>
    </ul>
</div>

<?php
    } 
?>

4 个答案:

答案 0 :(得分:0)

请修理:

$sql="SELECT * FROM apply WHERE id = ".(int)$id;

答案 1 :(得分:0)

您必须在表名中使用反引号而不是引号。使用修改后的代码 -

$sql="SELECT * FROM `apply` WHERE id = $id";

您也可以在不使用反引号的情况下执行此操作。但是必须使用反引号转义保留的关键字,例如FROMTODATE等。否则,没有引号的代码也可以使用 - &gt;

$sql="SELECT * FROM apply WHERE id = $id";

编辑:此外,您正在以错误的方式呈现从mysql接收的数据。使用 - &gt;

while($row=mysql_fetch_array($result)){
?>

<!--navigation menu-->
<div id="navcontainer">
    <ul id="navlist">
        <li><a href="prices.php?id=<?php echo $row['id']; ?>">Home</a></li>
        <li><a href="profile.php?id=<?php echo $row['id']; ?>">Profile</a></li>
        <li><a href="profile_update.php?id=<?php echo $row['id']; ?>">Edit Profile</a>         </li>
        <li><a href="includes/logout-activation.php">Log Out</a>
    </ul>
</div><?php
} ?>

答案 2 :(得分:0)

在你的数据库中连接你的php

在你的php文件顶部设置

$username = "root";
$password = "";
$hostname = "localhost";


$dbhandle = mysql_connect($hostname, $username, $password)
  or die("Unable to connect to MySQL");

//select a database to work with
$selected = mysql_select_db("android_app",$dbhandle)
  or die("Could not select DB");

但设置数据库配置用户名密码和数据库名称

并将您的查询字符串转换为

$sql="SELECT * FROM 'apply' WHERE id =".$id;

答案 3 :(得分:0)

看了一下数据库,忘记了我将表名更改为课程而不是申请 - 谢谢大家的帮助。