2012-03-11 26 views

Trả lời

11

Bên cạnh những câu trả lời chính xác, có nhiều cách để xử lý này:

  • Nếu bạn thêm LIMIT 1, tập hợp kết quả sẽ chỉ chứa một hàng và vòng lặp while sẽ chấm dứt sau một lần lặp:

    $q = "select whatIwant FROM table where id = 'myId' LIMIT 1"; 
    $r = mysql_query($q); 
    while($i = mysql_fetch_array($r)) { 
        $j = $i['whatIwant']; 
    } 
    echo $j; 
    
  • Nếu bạn gọi mysql_fetch_array mà không có một vòng lặp, bạn sẽ nhận được hàng đầu tiên của tập kết quả:

    $q = "select whatIwant FROM table where id = 'myId'"; 
    $r = mysql_query($q); 
    $i = mysql_fetch_array($r); 
    $j = $i['whatIwant']; 
    echo $j; 
    
  • Nếu bạn thêm break cho cơ thể vòng lặp, vòng lặp sẽ chấm dứt sau một lần lặp.

    $q = "select whatIwant FROM table where id = 'myId'"; 
    $r = mysql_query($q); 
    while($i = mysql_fetch_array($r)) { 
        $j = $i['whatIwant']; 
        break; 
    } 
    echo $j; 
    

Bạn cũng có thể kết hợp các phương pháp (mặc dù sử dụng break là không thực sự thanh lịch trong trường hợp này).

Cách tiếp cận tốt nhất là sử dụng LIMIT và bỏ qua vòng lặp while, dưới dạng @zaf shows in his answer. Điều này làm cho mã rõ ràng hơn và tránh các hoạt động không cần thiết trong cơ sở dữ liệu.

2
select whatIwant FROM table where id = 'myId' limit 1 
2

Vậy thì bỏ qua vòng lặp:

$q = "select whatIwant FROM table where id = 'myId'"; 
$r = mysql_query($q); 
$i = mysql_fetch_array($r); 
$j = $i['whatIwant']; 
echo $j; 

này sẽ chỉ lấy dòng đầu tiên.

8

Bạn có thể chỉ định số hàng trong truy vấn sql sử dụng cú pháp 'LIMIT'.

Ngoài ra, bạn chỉ có thể xóa vòng lặp while và nhận hàng đầu tiên được trả lại - nếu đó là tất cả những gì bạn muốn.

Ví dụ (không kiểm tra giá trị trả về):

$q = "select whatIwant FROM table where id = 'myId' LIMIT 1"; 
$r = mysql_query($q); 
$i = mysql_fetch_array($r); 
print_r($i); 
0
$sql224="select * from z_category order by id asc LIMIT 1"; 
$res224=mysql_query($sql224); 
$rw224=mysql_fetch_array($res224); 
$activeid2= $rw224['pkid']; 
+3

Chào mừng bạn đến Stack Overflow! Trong khi đoạn mã này được chào đón, và có thể cung cấp một số trợ giúp, nó sẽ được [cải thiện rất nhiều nếu nó bao gồm một lời giải thích] (// meta.stackexchange.com/q/114762) của * how * nó giải quyết các câu hỏi. Nếu không có điều đó, câu trả lời của bạn có giá trị giáo dục ít hơn nhiều - hãy nhớ rằng bạn đang trả lời câu hỏi cho độc giả trong tương lai, không chỉ là người hỏi bây giờ! Vui lòng [sửa] câu trả lời của bạn để thêm giải thích và đưa ra chỉ dẫn về những giới hạn và giả định được áp dụng. –

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