2012-02-27 36 views
8

Tôi đang tạo một mã ngẫu nhiên và tôi cần kiểm tra để chắc chắn rằng mã đó chưa có trong cơ sở dữ liệu. Tôi giả định điều này đòi hỏi một số loại vòng lặp. Tôi có truy vấn tất cả các thiết lập của tôi và tôi cần nó để chạy một khối mã một lần nữa nếu mysql_num_rows == 0.Vòng lặp cho đến khi được trả về đúng với PHP

Trả lời

14
$key = true; 

    while($key){ 
     // Do stuff 
     if(mysql_num_rows($result) > 0) $key = false; 
    } 
+1

tôi cần điều này để chạy một lần nữa nếu có một hàng hiện có, vì vậy tôi sẽ đặt $ key = đúng ở cuối và đặt thành false nếu 'mysql_num_rows == 0' đúng không? – DannyF247

+0

Yep .. ngay trên. Chỉ cần thay đổi> thành == rồi –

24

Sử dụng một vòng lặp do...while:

do { 
    // Your logic 
} while (condition); 
2

Simple nâng cấp của James L. kịch bản - vòng lặp kịch bản cho kiểm tra nếu tồn tại ID đăng nhập vào cơ sở dữ liệu. Nếu tồn tại, sẽ bổ sung thêm 1 sau khi đăng nhập:

$key = true; 
    $a = 1; 
    $login_test_origin=$login_test; 

    while($key){   
    $query_test="SELECT count(*) as 'all' FROM user WHERE login='$login_test'"; 
    $row_test=mysql_fetch_array(mysql_query($query_test)); 
    $error=$row_test[all];  

      if($error > 0) { 
       $key = true; 
       $login_test=$login_test_origin.$a; 
       $a++;    
          } 

      else { 
       $key = false; 
       $login=$login_test; 
       } 
     } 

echo"Used login ID: $login"; 
0

Đây là một con đường hoàn toàn khác nhau:

while(true){ 
    if(/* Your logic which you expect to be true */){ 
     break; 
    } 
} 
+0

@jisaak Đây là câu hỏi mới như thế nào? Đó rõ ràng là câu trả lời cho câu hỏi ban đầu. – Anders

Các vấn đề liên quan