2011-10-12 73 views
2

我想获取我输入的最后一个值。mysql查询中奇怪的错误

我正在尝试获取我的文章的编号。所以我用这个查询:

$totalPages= mysql_query("SELECT page FROM `easy_db`.`article` ORDER BY article_id DESC LIMIT 1") or die(mysql_error()); 

,我得到的是6

为什么6的价值?我截断table..and再次尝试,我得到6再次..这应该是1

还有一个问题,我想执行的PHP类..

我试图执行一个Int,但它似乎没有工作:

$page=(int) $totalPages/10; 
+1

如果您发布了一些数据,这可能会有所帮助。对于最后一篇article_id,页面是什么? –

+1

您可能会考虑在另一个问题上询问另一个问题,因为它与您的第一个无关。 – brenjt

+0

好的。有人回答我有关第一个问题 –

回答

4

mysql_query返回资源句柄,而不是查询本身的结果。请参阅PHP手册以获取how to query a database的一些基本示例。例如:

$result= mysql_query("SELECT page FROM `easy_db`.`article` ORDER BY article_id DESC LIMIT 1") or die(mysql_error()); 

if ($row = mysql_fetch_assoc($result)) { 
    $totalPages=$row['page']; 
} 

关于你提到的第二个问题,要注意operator precedence rules - 中(INT)运算符具有优先级高于划分,所以在分割前进行。因此,你可以得到一个浮点结果。或者试试这些

$page = (int)($totalPages/10); #rounds down 

$page=round($totalPages/10); #rounds up or down as appropriate 

一个又签floor()ceil()以替代圆形,因为他们写分页计算时,往往是有用的。

+0

谢谢。你能告诉我如何在php中强制类型吗? –

1

可以使用mysql_insert_id()函数在PHP中检索最后插入行的ID。

mysql_insert_id

+0

问题是我需要检索不是id的页面编号。并且只在执行select语句之后才执行插入操作。所以这不是一个解决方案 –

+0

那么使用ID,你可以很容易地检索页码。 – brenjt

1

您应该使用mysql_insert_id();您的插入语句后立即。