2012-10-23 133 views
1

可能重复:
Why do I get “Resource id #4” when I apply print_r() to an array in PHP?获取一个值单元格中Squl

赦免这个简单的问题,但是我是菜鸟到SQL和PHP。简单地说,我试图获得一个单元格的值,我知道它所在的列以及它所在的行,以便我可以在简单的减法问题中使用该值。这里是我的:

$outtime = mysql_query("SELECT `Event1CheckOut1` 
    FROM attendance 
    WHERE ID = '1234'"); 

$intime = mysql_query("SELECT `Event1CheckIn1` 
    FROM attendance 
    WHERE ID = '1234'"); 

$dur = $outtime - $intime; 

使用echo它返回第一个结果为“资源ID#4”。做一些研究我认为这可能是因为它向我返回了一个结果表格,而不仅仅是一个价值。值得注意的是,我试图获取的值是24小时格式的时间。

回答

0

使用反引号,而不是单引号逃脱列/表名:

SELECT `Event1CheckIn1` FROM `attendance` WHERE ID='1234' 

另外,请不要使用mysql_*功能的新代码。他们不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDOMySQLi。如果你不能决定,this article将有助于选择。如果你在意学习,here is a good PDO tutorial

+0

我改变了所有的人,并没有解决这个问题,因为我曾以为反引号是一样apostropies – user1767087

+0

我,我虽然欣赏的意见我做了一些更多的研究,发现[this](http://stackoverflow.com/questions/1777801/why-do-i-get-resource-id-4-when-i-apply-print-r-to-一个阵列功能于PHP)。请注意,这些功能已过时(我上面的编辑)。 – SomeKittens

0

您需要循环结果集

$outtimeR = mysql_query("SELECT `Event1CheckOut1` 
    FROM attendance 
    WHERE ID = '1234'"); 
while($row = mysql_fetch_assoc($outtimeR)){ 
    $outtime = $row['Event1CheckOut1']; 
} 

$intimeR = mysql_query("SELECT `Event1CheckIn1` 
    FROM attendance 
    WHERE ID = '1234'"); 

while($row = mysql_fetch_assoc($intimeR)){ 
    $intime = $row['Event1CheckIn1']; 
} 

$dur = $outtime - $intime; 
相关问题