<?php
$id = $goods['id'];
$conn=mysql_connect('localhost','291121289','1356641830');
mysql_query("set names utf8");$db_selected = mysql_select_db("tgtzbucom",$conn);
$sql="select * from fanwe_suppliers  where id=$id";
$result=mysql_fetch_array(mysql_query($sql,$conn)); 
?>
列表页调用的数据不对应,$goods['id']值是对应的,为什么在列表页里数据表里调出来的不对应比如$goods['id']=1时
$result['arer']是能调出数据,但不对应$goods['id']=1的数据,而是调用出$goods['id']=2的数据
请高手帮忙查下,是哪句出错了?
直接给我代码!谢谢了

解决方案 »

  1.   

    $result=mysql_fetch_array(mysql_query($sql,$conn));  修改为 
    while 结构.你这样result就是最后一条的内容,所以你就认为出错了.
      

  2.   

    result出来的不是最后一条内容,因为是在列表页,每篇的$goods['id']里的$result['arer']不对应,完全是乱的,但好象大布份调用的是$goods['id']-1里的数据,但有些也不是,不知道什么原因while 结构怎么写,麻烦楼上的大哥直接给代码好吗
    我不懂PHP的
      

  3.   

    $sql="select * from fanwe_suppliers where id=$id";
    $result=mysql_query($sql,$conn);
    while($row=mysql_fetch_array($result)){
    print_r($row);}
      

  4.   

    调出来一列内容
    那单独调其中area里的值,代码应该怎么写
      

  5.   

    调出来是这样的Array ( [0] => 5 [id] => 5 [1] => 5 [goods_id] => 5 [2] => [name] => [3] => [address] => [4] => [area] => [5] => [map_address] => [6] => 0 [longitude] => 0 [7] => 0 [latitude] => 0 [8] => [tel] => [9] => [desc] => [10] => 1340351999 [end_time] => 1340351999 ) 
    似乎不是我的意思
      

  6.   

    确认你的SQL语句和搜索出来的结果是你要的,然后直接输出
    如果你的记录只有一条(id=1) 那么你上面的代码应该也能正常.你先弄清楚你数据库里的id=1的数据是不是跟取出来的不一样吧.
    输出你的SQL语句 到mysql 终端执行一下看看. 
      

  7.   

    老大,直接把你的sql语句输出来,拿到数据库你去执行,真像就出来了
      

  8.   

    还是看手册,深入的学学基础语法比较好。这样遇到问题,就能很快找到解决方法
    说明
    array mysql_fetch_array ( resource $result [, int $ result_type ] )
    返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。 mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。 如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,必须用该列的数字索引或给该列起个别名。对有别名的列,不能再用原来的列名访问其内容(本例中的 'field')。 Example #1 相同字段名的查询select table1.field as foo, table2.field as bar from table1, table2
    有一点很重要必须指出,用 mysql_fetch_array() 并不明显 比用 mysql_fetch_row() 慢,而且还提供了明显更多的值。 mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。 如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)。 Note: 此函数返回的字段名大小写敏感。Example #2 mysql_fetch_array 使用 MYSQL_NUM<?php
        mysql_connect("localhost", "mysql_user", "mysql_password") or
            die("Could not connect: " . mysql_error());
        mysql_select_db("mydb");    $result = mysql_query("SELECT id, name FROM mytable");    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
            printf ("ID: %s  Name: %s", $row[0], $row[1]);
        }    mysql_free_result($result);
    ?> 
    Example #3 mysql_fetch_array 使用 MYSQL_ASSOC<?php
        mysql_connect("localhost", "mysql_user", "mysql_password") or
            die("Could not connect: " . mysql_error());
        mysql_select_db("mydb");    $result = mysql_query("SELECT id, name FROM mytable");    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
        }    mysql_free_result($result);
    ?> 
    Example #4 mysql_fetch_array 使用 MYSQL_BOTH<?php
        mysql_connect("localhost", "mysql_user", "mysql_password") or
            die("Could not connect: " . mysql_error());
        mysql_select_db("mydb");    $result = mysql_query("SELECT id, name FROM mytable");    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
            printf ("ID: %s  Name: %s", $row[0], $row["name"]);
        }    mysql_free_result($result);
    ?> 
      

  9.   

    首先我觉得
    如果是多条查询,可以用while
    比如
    $sql="select * from fanwe_suppliers where id>=$id";
    $result=mysql_query($sql,$conn);
    while ($row = mysql_fetch_array($result, MYSQL_assoc)) {
            $return[]=$row;    }

    $sql="select * from fanwe_suppliers where id=$id";
    $result=mysql_fetch_array(mysql_query($sql,$conn));  
    这样只有一条查询,所以$result肯定能返回SELECT的结果。
    那出现问题的原因只能是第一句$id = $goods['id'];
    楼主不妨检查下$goods数组print_f($goods),看是如何存储数据的,如果数组从0开始,那么你的$goods[id] 没准就正好是下一条。