Jump to content


Photo

Strange Loop Result


  • Please log in to reply
No replies to this topic

#1 Sops21

Sops21
  • New Members
  • Pip
  • Newbie
  • 1 posts

Posted 01 May 2006 - 07:49 PM

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.


<?
$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();
?> 


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....




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users