这是代码.........
<?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
数据库结构就像 -
____________________________________________________
| 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 :(得分:1)
你搞砸了$query
和$result_query
,他们在代码中出现twice
错误位于while($row = mysql_fetch_assoc($result_query)){
行..此处$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 />";
}
?>
答案 1 :(得分:0)
此调用mysql_query($query)
返回FALSE,而不是结果集,这意味着您的查询中存在错误。使用以下代码查看错误:
$result_query = mysql_query ($query);
if ($result_query === FALSE)
{
echo (mysql_error ());
die (1);
}
看起来我错了。执行更新查询时,您确实会覆盖$result_query
的原始值。
答案 2 :(得分:0)
您可以使用内联IF
UPDATE tableName
SET b_status = IF(a_status = 1, 1 , b_status )
如果您执行此操作,则无需在数据库上进行两次通信。