2009-10-13 44 views

回答

1

您可以使用mysql_data_seek()檢查第9行存在:

if(mysql_data_seek($result, 8) !== false) { 
    // success, internal pointer is now at 9 
    // still need to call mysql_fetch to get the row 
} 

但你不能在內部指針得到你自己的數。使用for循環保持它有點整潔:

for($i = 0; $row = mysql_fetch_assoc($result); $i++) { 
    if($i == 8) // success 
} 
+0

謝謝。我知道$ i ++是做這件事的一種方式,我只是希望有一種更乾淨的方式。 – Matthew 2009-10-14 00:03:03

1
$i=0; 

while ($row = mysql_fetch_assoc($result)) 
{ 
    ++$i; 
    if($i==9) 
     echo "success"; 
} 
+0

反正是有要做到這一點而不涉及$ i?無法訪問$ result內的位置? – Matthew 2009-10-13 18:18:03

+0

在我之前缺少$ var以及您在檢查之前遞增計數器,因此數組索引零將被跳過 – 2009-10-13 18:18:10

+1

我假設他的「第9行」是基於1的,所以我從1開始計數。你對$ tho是正確的,我的PHP是生鏽的。 – Blindy 2009-10-13 18:45:14

0
$i = 0; // Or 1 if need be 
while ($row = mysql_fetch_assoc($result)) 
{ 
    // echo "success" when i get to the 9th row 
    if($i == 9) { 
     echo "success"; 
    } 
    $i++; 
} 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) 
{ 
    if($row[8] != '') { 
    echo "success"; 
    } 
} 

while ($row = mysql_fetch_assoc($result)) 
{ 
    if($row['column_name_of_the_ninth_field'] != '') { 
    echo "success"; 
    } 
} 
+1

第二個例子會在$行中引用8,而不是$ result – Matthew 2009-10-13 18:44:26

+0

已修復,應該現在訪問第9個數組索引 – 2009-10-13 19:00:01

+0

我想你誤解了 – Matthew 2009-10-13 19:11:27

0

在其他的答案已經詳細介紹的方法都是有效的方式來做到這一點。

如果你真正希望做的是移動內部指針到第9個結果,而不必經過一個循環,那麼這就是你可能會尋找:

if (mysql_data_seek ($result,9)) echo "success"; 
相關問題