2012-11-13 74 views
-1

您好,我将从for获取数组数据。我有一个代码,但它的工作原理并不好 在前面的代码CS = 2如何正确获取数据

for($k=0;$k<$cs;$k++) 
{ 


$SQL = "SELECT duration FROM core_network WHERE location=('".$location_c[$k]."')"; 
$result = mysql_query($SQL); 


$cks="0"; 
$duration=array(); 
while ($db_field = mysql_fetch_array($result)) { 
$duration_c[$cks]= $db_field['duration']; //*here must save to data 
$cks++; 

} 
} 

我已经在search_l.php在这里要打印2期保存这段代码

<?php include("lib/search_l.php"); ?> 



    <?php 
if($cs!=0){ 
for($i=0;$i<$cs;$i++) 
{ 

?> 



<div id="alarmdisplay"> 
    <table class width="634" border="0" cellspacing="3" cellpadding="3"> 
    <tr class="search"> 
    <td width="256"><?php echo $location_c[$i] ?></td> 
    <td width="154" class="247"><?php echo $duration_c[$i] 
?></td> 
    <td width="194">&nbsp;</td> 
    </tr> 
</table> 

。但它只打印一个其他人有错误注意:未定义偏移:1在如何正确打印它?

当我进行测试,以检查纠正我注意到:

$result)) { 
$duration_c[$cks]= $db_field['duration']; 
$cks++; 

} echo $duration_c[$cks] //*it prints correct i meant prints 2 test data 
} 

$result)) { 
$duration_c[$cks]= $db_field['duration']; 
$cks++; 

} 
} 
echo $duration_c[$cks] //*it prints not correct i meant prints only first test data 

如何纠正呢?

+0

你很可能想要循环访问数组,并在每次在循环中获得新结果时发出回声。 – Rob

+0

是的,我想要得到2个数据每个相应的CS,但现在我只能得到其中一个Bt此代码 –

回答

0
$duration_c=array();//Should be declared outside loop 

for($k=0;$k<$cs;$k++) 
{ 
    $SQL = "SELECT duration FROM core_network WHERE location=('".$location_c[$k]."')"; 
    $result = mysql_query($SQL); 
    $cks = 0;//String variable 
    while ($db_field = mysql_fetch_array($result,MYSQL_ASSOC)) { 
                //^---------returns associative array 
     $duration_c[$cks]= $db_field['duration']; 
     $cks++; 
    } 
} 
+0

嗨,感谢您的回答,但我仍然无法解决。我只在for循环之外打印最后的数据。在里面它打印确定。 –

+0

@Batnasanganpurev在for循环之外使用var_dump($ duration_c)来检查值应该得到的值你能告诉我完整的代码 – Sibu

+0

你好我已经找到了错误,谢谢你你的声明在外面帮助我很多谢谢 –

0

如果你想有一个密钥类型导致(缔合阵列),使用

mysql_fetch_assoc(); 

代替

mysql_fetch_array(); 
+0

我测试它,但也有同样的结果。唯一的区别是我焕使用mysql_fetch_array();它打印第一个数据,向下投票接受 \t 如果你想要一个密钥类型导致(缔合阵列),使用 mysql_fetch_assoc();它只打印第二个数据 –

0

好吧,那就试试这样的事情,这将让你在数组中插入的结果。

<?php 

for($i = 0; $i < count($duration); ++$i) { 
    echo $duration[$i]; 
?> 
+0

我需要在循环外echo $ duration。在里面是正常的,但在外面只打印最后的数据。 –

0

有一个在你的代码的简单错误类型:

$duration=array(); 

应该

$duration_c=array(); 

,否则这将是作用域的问题,因为$duration_c不会知道外面的while循环。

相关问题