mysql query help

Discussion in 'PHP' started by izlik, Dec 26, 2007.

  1. #1
    Hello.

    This code/query bellow is supposed to give a featured bonus to users on my page each day. atm it sets +2 on "featured_profile" and i wonder if it's possible to make it so that if "featured_profile" is not 0, it should only setw "featured_profile" +1 ? and if it is 0, it should do as it does right now and set "featured_profile" +2?

    i hope someone can help.


    <?php
    
    $sql = mysql_query("SELECT fid FROM fc_users ORDER BY today_points DESC LIMIT 1") or die (mysql_error());
    $result = mysql_fetch_array($sql);
    
    $update_user = mysql_query("update fc_users set featured_profile = featured_profile + 2 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    
    $update_status = mysql_query("update fc_users set featured_status = 1 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    
    ?>
    PHP:

     
    izlik, Dec 26, 2007 IP
  2. kmap

    kmap Well-Known Member

    Messages:
    2,215
    Likes Received:
    29
    Best Answers:
    2
    Trophy Points:
    135
    #2
    do it like this



    $sql = mysql_query("SELECT fid,featured_profile FROM fc_users ORDER BY today_points DESC LIMIT 1") or die (mysql_error());

    $result = mysql_fetch_array($sql);
    if ($result['featured_profile ']!=0)
    $update_user = mysql_query("update fc_users set featured_profile = featured_profile + 1 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    else

    $update_status = mysql_query("update fc_users set featured_status = 1 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());?>
     
    kmap, Dec 26, 2007 IP
  3. coderbari

    coderbari Well-Known Member

    Messages:
    3,168
    Likes Received:
    193
    Best Answers:
    0
    Trophy Points:
    135
    #3
    <?php
    
    $sql = mysql_query("SELECT fid FROM fc_users ORDER BY today_points DESC LIMIT 1") or die (mysql_error());
    $result = mysql_fetch_array($sql);
    
    if($result["featured_profile"] == 0)
    $update_user = mysql_query("update fc_users set featured_profile = featured_profile + 2 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    else
    $update_user = mysql_query("update fc_users set featured_profile = featured_profile + 1 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    
    $update_status = mysql_query("update fc_users set featured_status = 1 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    
    ?>
    PHP:
     
    coderbari, Dec 26, 2007 IP
  4. izlik

    izlik Well-Known Member

    Messages:
    2,399
    Likes Received:
    50
    Best Answers:
    0
    Trophy Points:
    185
    #4

    thanks a lot! :D
     
    izlik, Dec 26, 2007 IP
  5. izlik

    izlik Well-Known Member

    Messages:
    2,399
    Likes Received:
    50
    Best Answers:
    0
    Trophy Points:
    185
    #5
    This code/query right now it seets +2 even if "featured_profile" not 0 why is this ? :(

    <?php
    
    $sql = mysql_query("SELECT fid FROM fc_users ORDER BY today_points DESC LIMIT 1") or die (mysql_error());
    $result = mysql_fetch_array($sql);
    
    if($result["featured_profile"] == 0)
    $update_user = mysql_query("update fc_users set featured_profile = featured_profile + 2 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    else
    $update_user = mysql_query("update fc_users set featured_profile = featured_profile + 1 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    
    $update_status = mysql_query("update fc_users set featured_status = 1 where fid = " . $result["fid"] . " limit 1") or die (mysql_error());
    
    ?>
    PHP:
     
    izlik, Dec 29, 2007 IP
  6. Dagon

    Dagon Active Member

    Messages:
    122
    Likes Received:
    6
    Best Answers:
    0
    Trophy Points:
    60
    #6
    make sure featured_profile is in your first query:
    $sql = mysql_query("SELECT fid, featured_profile FROM fc_users ORDER BY today_points DESC LIMIT 1") or die (mysql_error());
    PHP:
    other tip: that last query is pretty useless. Add the status update to the queries above.
     
    Dagon, Dec 29, 2007 IP