新手,第一次做新闻发布,在新闻浏览界面的时候出现了问题
以下是在网上看到的一种写法include "connect.php"; 
$id=$_GET["id"];
$query="SELECT * from news Where id=".$id;
$result=mysql_query($query,$conn);
$row=mysql_fetch_array($result);
报错是 Warning: mysql_fetch_array() expects parameter 1 to be resource其实我对这个写法中得变量id不甚理解,为什么新定义的一个变量能拿来和数据库表中的id比较呢?
怎样改这个错误呢?
谢谢~~

解决方案 »

  1.   

    加一行, echo mysql_error();
    估计八成是news表不存在怎的
      

  2.   

    1.跟楼上说的一样,mysql_error()看一下2.$id变量是用来接收页面通过get传递的值,你的网页地址应该是:http://xxx.com?id=1,这里id值1就是要获取的值,通过这个id值跟数据表对比来获得新闻列表3.你可以把connect.php贴出来看一下
      

  3.   

    你把你的sql在mysql编辑器调式看看,你的代码应该没什么问题。就是不知道你连接数据库的代码是否有毛病。
      

  4.   

    $result=mysql_query($query,$conn) or die(mysql_error());贴出提示信息。
      

  5.   

    其实楼主已经说的很清楚了只要传入id,就不会出错了
    设程序文件为 test.php,则
    http://localhost/test.php?id=1
    就能取得 news 表中 id 等于 1 的记录
      

  6.   

    说的很有道理。楼主八成是没有传递id,导致sql为“SELECT * from news Where id=”。一个错误的sql会有返回值。
    基本步骤是:
    请求:http://xxx.com?id=1$id=$_GET["id"];//这里接受id的值,即1
    //查询SELECT * from news Where id=1的记录
    $query="SELECT * from news Where id=".$id;
    $result=mysql_query($query,$conn);
    $row=mysql_fetch_array($result);
    呵呵,我有点多此一举了
      

  7.   

    友情提醒下...在正式的开发工作中,如果对传入的参数不进行正确性检查的话....后果将是毁灭性的...
    $_GET 和 $_POST获得的原始数据,不能直接拼接在sql中...必须进行正确性检查,这是常识...
      

  8.   


    嗯,是的 那些个什么注入就是从 id 开始..养成良好的习惯,也就是那句看了不知道多少回的 
    Never Trust User Input 永远不要相信用户输入
    必须对传递过来的数据进行检测.
      

  9.   


    输入:SELECT * from news where id=$_GET[id]
    弹出:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[id] LIMIT 0, 30' at line 1
      

  10.   


    <?php$db_host='localhost';
    $db_user='root';
    $db_pass='';$conn = mysql_connect($db_host,$db_user,$db_pass)or die(mysql_error()."failed to connect to database!"); 
    $db = mysql_select_db('news1',$conn);?>
      

  11.   

    2、大概理解了,谢^^
    3、connect.php<?php$db_host='localhost';
    $db_user='root';
    $db_pass='';$conn = mysql_connect($db_host,$db_user,$db_pass)or die(mysql_error()."failed to connect to database!"); 
    $db = mysql_select_db('news1',$conn);?>
      

  12.   

    看你的提示应该是sql语法错误了,你没有加上id吧
      

  13.   


    在哪儿加id?
    我直接按 http://xxx.com?id=1的输入能看到view的那个内容呐,但是直接打开view.php就不行- -
      

  14.   

    加了句
    if(isset($id))
    就空白了……
    怎么会没有数据呐?我有向数据库里添加东西的说……
      

  15.   


    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
      

  16.   

    哥们,估计你刚学没多久,
    希望你先把PHP基础看完再提问