2013-02-18 95 views
1

下面是代码.........我一个,得到错误 - 警告:mysql_fetch_assoc()预计参数1是资源

<?php 
include('../inc/php/inc/dbc.php'); 
$query = "SELECT * FROM available_fsv WHERE a_status = '1'"; 
$result_query = mysql_query($query); 

while($row = mysql_fetch_assoc($result_query)){ 

     $billingid = $row['billingid']; 

$query = "UPDATE available_fsv SET b_status = '1' WHERE billingid = '$billingid'"; 
$result_query = mysql_query($query); 
echo $result_query; 
} 
?> 

我收到错误..... ......

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\php\fsv_shutdown_cron.php on line 6 

数据库结构like--

____________________________________________________ 
| id | a_status | b_status | billingid | 
|--------|------------|-------------|--------------| 
| 1 | 1  |  0  |  1  | 
|--------|------------|-------------|--------------| 
| 2 | 0  |  0  |  12  | 
|--------|------------|-------------|--------------| 
| 3 | 0  |  0  |  9  | 
|--------|------------|-------------|--------------| 
| 4 | 1  |  0  |  3  | 
|________|____________|_____________|______________| 

我想做的事是,如果a_status是1,那么更新b_status为1

我正在学习PHP,我知道这是一个愚蠢的问题,但请帮助我。在此先感谢.. :)

+0

你确定你已经连接到db?在做'include'后试试'echo mysql_error' – 2013-02-18 09:17:32

+0

请在phpmyadmin上运行这个查询并检查结果。 – vin 2013-02-18 09:21:55

+0

你把'$ query'和'$ result_query'搞乱了,它们在代码中出现两次,看到我的回答在 – 2013-02-18 09:22:41

回答

0

此调用mysql_query($query)返回FALSE,而不是结果集,这意味着您的查询中有错误。使用以下代码查看错误:

$result_query = mysql_query ($query); 
if ($result_query === FALSE) 
{ 
    echo (mysql_error()); 
    die (1); 
} 

看起来我错了。当您执行更新查询时,您确实覆盖原始值$result_query

0

,你可以,如果你正在执行这个使用内联IF

UPDATE tableName 
SET b_status = IF(a_status = 1, 1 , b_status) 

直接更新,你并不需要在数据库上两次沟通。

+0

可能是他想要的,但如果billingid在表中重复,则不会执行完全相同的操作。 – 2013-02-18 09:25:18

1

你搞乱了$query$result_query,他们在代码

错误是在while($row = mysql_fetch_assoc($result_query)){线出现twice ..这里你$result_query不过你update查询的响应..

试试这个:

<?php 
include('../inc/php/inc/dbc.php'); 
$query = "SELECT * FROM available_fsv WHERE a_status = '1'"; 
$result_query = mysql_query($query); 

while($row = mysql_fetch_assoc($result_query)){ 
    $billingid = $row['billingid']; 
    $update_query = "UPDATE available_fsv SET b_status = '1' WHERE billingid = '$billingid'"; 
    $update_result_query = mysql_query($update_query); 
    echo $update_result_query; 
    echo "<br />"; 
} 
?> 
+0

谢谢队友..:D非常感谢... – 2013-02-18 09:56:07

+0

它工作完美吗? – 2013-02-18 09:57:30

+0

是的...它的工作.... – 2013-02-18 10:09:58

相关问题