如何正确获取数据

时间:2012-11-13 08:31:21

标签: php loops

你好我要从中获取数组数据。我有一个代码但它的效果并不好 在前面的代码中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

 <?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>

在这里必须打印2个持续时间。但它打印只有一个有错误注意:未定义的偏移: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

如何纠正?

4 个答案:

答案 0 :(得分:0)

如果您想要键类型结果(assoc数组),请使用

mysql_fetch_assoc();

而不是

mysql_fetch_array();

答案 1 :(得分:0)

好的,然后尝试这样的事情,这将得到你在数组中插入的结果。

<?php

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

答案 2 :(得分:0)

代码中存在一个简单的类型错误:

$duration=array();

应该是

$duration_c=array();

否则会出现范围问题,因为在$duration_c循环之外不会知道while

答案 3 :(得分: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++;
   } 
 }