2012-11-02 162 views
0
if ($resultdetails == FALSE) { 
    $querynewid = "select * from customer_det order by ID desc limit 1"; 
    $resultnewid = mysql_query($querynewid); 
    while ($row=mysql_fetch_row($resultnewid)) { 
     $uid = $row['id']; 
     echo $uid; 
    } 
} 

这是一个有效的嵌套的声明做什么呢?由于某种原因,它不会回应$ uid?MySQL的嵌套声明

+0

第一步:的Exchange“回响”与“的var_dump”。另外,'var_dump'$行。原因:您的查询很可能因某种原因失败,或者根本找不到任何东西。代码本身看起来有效。 – ATaylor

+0

@ATaylor感谢好友 – smada

+0

如果$ resultnewid等于'NULL'(使用var_dump进行检查),这意味着您的查询有问题。在这种情况下,echo mysql_error。这会给你提示有什么不对。 – ATaylor

回答

1

您应该使用mysql_fetch_assoc而不是mysql_fetch_row。最后一个返回数字索引数组,因此id不是该结果集中的键。 mysql_fetch_assoc返回一个关联数组,所以字段名称也是该键的名称。从你的代码看,这就是你想要的。

看到区别herehere

+0

尼斯@Oldskool,这完美地拉了ID。 – smada

+0

我的不好,我完全没有看到他使用fetch_row而不是fetch_assoc。 – ATaylor

1

如何我通常在PHP处理这低于:

if ($resultdetails == FALSE) { 
    $querynewid = mysqli_query($dbc,"select * from customer_det order by ID desc limit 1";) or die (mysql_error()); 

    while ($row = mysqli_fetch_array($querynewid)) { 
     $uid = $row['id']; 
     echo $uid; 
    } 
} 

有两件事情知道的是$ DBC是我的数据库连接,并且mysql_error会让你知道,如果它本身的查询是碎

+0

抱歉,$行= mysqli_fetch_array($ resultnewid)应为$行= mysqli_fetch_array($ querynewid) – Alex

+1

编辑答案包括代替。 – Oldskool