Jump to content

Archived

This topic is now archived and is closed to further replies.

Sops21

Strange Loop Result

Recommended Posts

I am writing a php script the stores contact info in a database and then ranks the by the rank that i give them. I am having a problem when it comes to changing their ranks. Let me give you an example:
Joe Smith has a rank of 1
John Doing has a rank of 2
Beth Franks has a Rank of 3
Jim Johnson has a Rank of 4

Now what should happen is that if i want Jim to have a rank of 2 it should bump down everyone elses score. Instead when i run it, it gives Jim a score of 2 and everyone else a score of 4. For the life of me i can't figure out why.


[code]
<?
$ud_id=$_POST['ud_id'];
$ud_name=$_POST['ud_name'];
$ud_address=$_POST['ud_address'];
$ud_city=$_POST['ud_city'];
$ud_state=$_POST['ud_state'];
$ud_phone=$_POST['ud_phone'];
$ud_rank=$_POST['ud_rank'];
$rank=$ud_rank; // copies the ud_rank to rank, rank  is used in the while loop

$username="********";
    
$password="*********";
    
$database="*********";
    
mysql_connect(localhost,$username,$password);
    @mysql_select_db($database) or die("Unable to Connect to database");
    $query="SELECT * FROM spots ORDER BY rank";
    $result=mysql_query($query);
    $num=mysql_numrows($result); //gets the number of rows in the table
    
    $newrank=$rank; //copies the current records rank to newrank
    $runs= ($num - $rank); //tells how many times the while loop needs to run
    
    while ($runs > 0){
     echo "Rank = $rank <br>";
    
    $newrank=($newrank + 1); //adds one to the new rank
    echo "New Rank =$newrank <br><br>";
    
    $query="UPDATE spots SET rank='$newrank' WHERE rank='$rank'"; //stores the new values
    @mysql_select_db($database) or die ("Unable to connect to Database");
    mysql_query($query);
    $rank=($rank + 1); //addes 1 to the newrank
    
    $runs=($runs -1); //subtracts one to limit the rumbers of runs...
    
    }

// tell mysql to update the changes
$query="UPDATE spots SET name='$ud_name', address='$ud_address', city='$ud_city', state='$ud_state', phone='$ud_phone', rank='$ud_rank' WHERE id='$ud_id'";
//do not forget this it is needed to connect to the data base
@mysql_select_db($database) or die ("Unable to conect to Database");
mysql_query($query);
echo "Record Updated";

mysql_close();
?>
[/code]


Any thoughts? For life of me i can't figure it out... if i need to i can post the previous page where the updated information is given....

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.