//refresh function
//refresh item status
function refresh()
{
$problem = false; $result = mysql_query("SELECT ITEM_ID FROM ITEM WHERE END > NOW() AND STATUS != 'SOLD'"); if($result)
{
while ($row = mysql_fetch_array($result))
{
$act_id = $row['ITEM_ID'];
mysql_query("UPDATE ITEM SET STATUS = 'ACTIVE' WHERE ITEM_ID = $act_id");
}

$result = mysql_query("SELECT ITEM_ID, WINNER_ID, END FROM ITEM WHERE END <= NOW() AND STATUS != 'SOLD'");

if($result)
{
while ($row = mysql_fetch_array($result))
{
$exp_id = $row['ITEM_ID'];
$win_id = $row['WINNER_ID'];
$time = $row['END'];

// Error here. There is only one row has been displayed. There should be 4 rows actully. 
                // Result:  7  0   2013-04-14 00:00:00 
echo $exp_id."<br>";
echo $win_id."<br>";
echo $time."<br>";

if($win_id == 0)
{
mysql_query("UPDATE ITEM SET STATUS = 'EXPIRE' WHERE ITEM_ID = $exp_id");
}
else
{
mysql_query("UPDATE ITEM SET STATUS = 'SOLD' WHERE ITEM_ID = $exp_id");
echo "INSERT INTO ITEM_SOLD VALUES($exp_id,$win_id,'".$time."','N')";
mysql_query("INSERT INTO ITEM_SOLD VALUES($exp_id,$win_id,'".$time."','N')");
}
}

$result = mysql_query("SELECT ITEM_ID FROM ITEM WHERE BEGIN > NOW() AND STATUS != 'SOLD'");

if($result)
{
while ($row = mysql_fetch_array($result))
{
$na_id = $row['ITEM_ID'];
mysql_query("UPDATE ITEM SET STATUS = 'NA' WHERE ITEM_ID = $na_id");
}
}
else
{
$problem = true;
}
}
else
{
$problem = true;
}
}
else
{
$problem = true;
} if($problem)
{
print '<p class = "error">Cannot refresh active item.</p>';
}
}Same query in phpMyadmin, but different result:SQL query: SELECT ITEM_ID, WINNER_ID, END FROM ITEM WHERE END <= NOW() AND STATUS != 'SOLD' LIMIT 0, 30 ; 
Rows: 4 ITEM_ID  WINNER_ID  END  
2              4              2013-04-14 00:00:00 
4              2              2013-04-13 00:00:00 
6              1              2013-04-14 00:00:00 
7              0              2013-04-14 00:00:00 
Anyone can help me to solve the problem? Thanks a lot!!!PHPMySQLmysql_fetch_array

解决方案 »

  1.   

    mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有 on the line 21 of you  code
      

  2.   


    I don't quite understand... Any suggested solution?
    (I don't have chinese input software on this computer, sorry about that...)
      

  3.   

    i mean the function mysql_fetch_array() just return one row result 
      

  4.   

    u use the funciton function mysql_fetch_array() in the code on 21 line has a error ...mysql_fetch_array — Fetch a result row as an associative array, a numeric array, or both http://www.php.net/manual/en/function.mysql-fetch-array.php
      

  5.   


    Thanks for taking time to answer my question. But I am new to php and mySQL, I cannot solve this myself.
    Can you just simply give me a solution?
      

  6.   


    I am so sorry!
    Something is wrong in my database connection header file...
    I choosed the wrong database. Now it is fixed.
      

  7.   


    I am so sorry!
    Something is wrong in my database connection header file...
    I choosed the wrong database. Now it is fixed.congratulation