2016-09-22 111 views
1

我需要循环中的第一个ID。从循环中获取第一个条目/ while

循环:

while ($row = $db->sql_fetchrow($result)) 
{ 

echo ($row['post_id']) . '<br /><br />'; 

} 

回声结果:

817856<br /><br />817865<br /><br />817870<br /><br />817871<br /><br />817873<br /><br />817874<br /><br /> 

在这种情况下,我只需要数

的var_dump

var_dump($row['post_id']); 

的var_dump结果:

string(6) "817856" string(6) "817865" string(6) "817870" string(6) "817871" string(6) "817873" string(6) "817874" 

我想:

复位并没有成功array_shift。谢谢

+0

使用一个变量来跟踪你的行并从这里得到的第一个ID。 –

+0

只是不要在一个while循环中执行它......只要执行'$ row = $ sql_fetchrow($ result);' – Farkie

+0

但我需要一段时间,而这段时间更长,我只能缩短它。 – labu77

回答

2

您需要使用一个变量来跟踪循环,并在循环时获取第一个ID。默认情况下,你必须将一个变量赋值为true,并在循环中获取ID,并使该变量为false,以便该变量始终保持为false。使用IF条件,它会好的。

$flag = true; 
while ($row = $db->sql_fetchrow($result)){ 
    if($flag === true){ 
     $ID = $row['post_id']; 
     $flag = false; 
    } 
    echo ($row['post_id']) . '<br /><br />'; 
} 

echo $ID; // 817856 

如果你只需要第一个ID,那么它将会缩短版本。导致查询只在我们不使用循环时返回第一行。

$row = $db->sql_fetchrow($result); 
echo $row['post_id']; //817856 
+0

的时候谢谢。第一个解决方案有效。大。第二个也应该可以工作,但它显示了不同的数字。首先给817856 - 第二个解决方案给:817865 - 你有一个想法为什么? – labu77

+0

你是否同时运行这两个查询?如果然后单独尝试它们...... –

+1

是的,我做了,但后来我需要两个querys而不是1.第一个解决方案完美,谢谢。我拿这个:) – labu77

0

你可以做这样的事情

$i = 0; 
$result; 

while ($row = $db->sql_fetchrow($result)) 
{ 

    if ($i > 0) 
    { 
     break;  
    } 

    echo ($row['post_id']) . '<br /><br />'; 

    $result = $row['post_id']; 

    i++; 
} 
+0

也谢谢你的工作。作品也很好:) – labu77

+0

欢迎:) – Dsenese1