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

データベースの構造は次のようなものです-

____________________________________________________
|   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を学んでいて、これがばかげた質問であることを知っていますが、助けてください。前もって感謝します.. :)

4

3 に答える 3

1

andを台無しにする$query$result_querytwiceコードに表示されます

エラーは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 />";
 }
?>
于 2013-02-18T09:20:15.827 に答える
0

この呼び出しmysql_query($query)は、結果セットではなく FALSE を返しました。これは、クエリにエラーが含まれていたことを意味します。エラーを表示するには、次のコードを使用します。

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

私が間違っていたようです。$result_query更新クエリを実行すると、元の値が実際に上書きされます。

于 2013-02-18T09:16:52.993 に答える
0

インラインを使用して直接更新できますIF

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

これを実行している場合、データベースで 2 回通信する必要はありません。

于 2013-02-18T09:17:23.293 に答える